在调用OS功能失败后获取访问冲突00000000

时间:2013-03-15 01:51:54

标签: delphi crash stack-trace access-violation

我们一直在努力解决导致程序崩溃的问题。但是,我们无法在内部重现崩溃。

来自客户端计算机的调用堆栈位于以下链接:

点击放大:

screenshot

它似乎没有任何对我们项目中的任何文件的引用,所以我们在哪里寻找解决方案有点迷失。

这可能是一个环境问题吗?遇到此问题的客户端正在使用Windows 7 SP1和Windows Server 2003.有时,在崩溃之前,客户一直在报告他们已经收到“调用操作系统功能失败”错误消息。这有关系吗?基于调用堆栈,任何人都可以理解它正在尝试做什么?

[更新]调用堆栈来自EurekaLog。另外,我在“调用操作系统功能失败”错误的调用堆栈下面附加了客户正在经历的错误。这似乎与客户获得的AV错误有关,但我们不确定。 http://postimage.org/image/jku5dlnuf/

1 个答案:

答案 0 :(得分:1)

根据图像中堆栈跟踪的部分,无法分辨。堆栈跟踪主要显示来自内核DLL的Windows API内部函数。

具有全零地址的异常是一个nil指针(在创建之前使用的对象),但是没有办法从该堆栈跟踪中分辨出它发生的位置。

您应该考虑向应用程序添加一个异常处理产品,例如MadExceptEurekaLog,这样可以为您提供可用的堆栈跟踪和更多错误信息。两者都相对便宜,特别是与没有它们时试图追踪这种类型的错误所花费的时间相比。 (我自己的经验是关于MadExcept,但我并不隶属于他们中的任何一个。)