我收到有关我的应用在某些Vista计算机上导致GPF的报告。错误消息是这样的:
访问冲突0x75784062(试图写入0x00000006)
为了解决这个问题,我首先要确切知道是谁造成了这个GPF:我的主要exe,一些第三方组件,我自己的一个activex组件,一个dll等......
我怎么能找到这个?哪些工具可以精确定位造成这种混乱的确切模块?
非常感谢任何帮助。
PS我的应用程序是用VB6编写的,我的activex控件是用Delphi 2007编写的。
答案 0 :(得分:10)
我的建议是尝试使用MadExcept link text或Eurekalog link text。这些捕获未处理的异常并在问题发生时产生堆栈转储。
除了满意的客户之外,没有其他链接。 MadExcept使我能够追踪并消除程序中一些非常罕见的问题。
答案 1 :(得分:3)
我建议使用某种异常挂钩,例如Eurekalog或madExcept,在发生异常时会给你一个很好的callstack。
现在这需要你很多帮助,cource ......
我对“查找错误”对话框没有任何好运。通常,一致的失败案例和大量的步进是唯一/最快/最简单的解决方案。如果是未初始化指针或释放对象的情况,FastMM4可以帮助您进行正确的设置。
答案 2 :(得分:1)
当程序崩溃时,Windows应保存crash dump。然后,您可以在WinDbg中加载它,或者在紧凑的Visual Studio中加载它。有多种方法可以分析转储以找出问题所在。为了帮助您入门:
答案 3 :(得分:1)
安装Debug Diag并监控您的应用,他会为您生成DUMP文件并进行分析。
答案 4 :(得分:0)
您可以使用SysInternals网站上的Process Monitor或Process Explorer。
答案 5 :(得分:0)
跟踪AV可能很困难,因为真正的原因可能与实际发生异常的同一点不同。一些一般提示: