什么是访问冲突(Access Violations),如何排除该类错误
来源:互联网 发布:日本代购正品淘宝店铺 编辑:程序博客网 时间:2024/05/21 08:51
无论何时碰到的访问冲突都意味着你的程序试图访问不能再为你的程序所获得的内存。请注意我用了“不再(No Longer)“获得。在很多场合中遇到访问冲突都是因为试图引用已经释放的对象的指针或者尚未创建的对象的指针。
幸运的是,Win32的内存结构中,每个进程拥有独立的地址空间,因此我们不必担心覆盖其他程序的内存(这个在Win16种是经常遇到的问题)。这也说明了我们如今(actually)可以利用错误对话框中的信息。
当我们碰到访问冲突对话框时,都会有个地址(例如:Access violation at address:?????)。记下这个地址,返回到应用程序中,打开CPU窗口,在CPU窗口中右击鼠标选择Goto address。当对话框出现的时候,输入刚才访问冲突发生的地方,你就到了引起访问冲突的指令。
尽管CPU窗口中所有的都是用汇编语言写的,这并不对你很重要。如果你把滚动条向上滚一点,就可以看到你当前所处的函数。现在,你就知道是哪个函数引起了访问冲突。一旦你知道引起访问冲突的函数,就可以着手在这个函数中设立断点。
不幸的是,不是所有的事情都那么容易,指针错误有时候非常难查找,总的规则是当指针所指向的对象被释放的时候,把这些指针都设置为NULL,你也许还想在厌恶的函数中使用指针前检查它是否为NULL,如果为NULL你可以输出一些排错信息来帮助你查明哪个指针在程序运行时引起了访问错误。
作为最后的手段,你需要能够在那个指针处设立数据断点(data break point) 来检查它何时设为NULL。
- 什么是访问冲突(Access Violations),如何排除该类错误
- Delphi会经常出现Access violations这样的内存访问错误
- 如何排除jar包冲突
- Matlab 如何排除安装错误
- Delphi Access violations 问题的解决之道
- Delphi Access violations 问题的解决之道[转]
- Delphi Access violations 问题的解决
- Delphi Access violations 问题的解决之道
- c#如何访问access
- 跟踪访问冲突Access Violation的位置
- 跟踪访问冲突Access Violation的位置
- 跟踪访问冲突Access Violation的位置
- 跟踪访问冲突Access Violation的位置
- maven依赖(范围、传递、排除、冲突)
- C++ 内存访问冲突错误
- 如何排除 Internet Explorer 中的脚本错误
- fatal error LNK1168 错误如何排除
- Access Violation(非法访问)错误的解决方法
- 体验:VC++ .NET 2003 –安装和使用Boost 1.30和Blitz++0.6 之二
- ccBoy 的.NET开发人员资源列表 V1.5 – 送给.NET开发人员的礼物
- ASP->ASP.NET 迁移的Guideline
- Java 面临的挑战--来自Sybase、Oracle、Novell、Sun、Borland、BEA、Motorola的11种观点
- ORA-12913: 错误简析,及处理心得
- 什么是访问冲突(Access Violations),如何排除该类错误
- C++BUILDER中一些实现界面效果的技巧。。不规则窗体等等。。
- Delphi 插件(Plug-ins)创建、调试与使用应用程序扩展(一)
- Delphi 插件(Plug-ins)创建、调试与使用应用程序扩展(二)
- 常见的FTP站点资源
- Jmail4.2语法参考大全
- 如何保护发行的软件中Access数据库不被别人打开
- VB中访问API函数之防错技巧
- 窗体特技效果