在Win 7 64位中但不在Win 8中的Delphi XE2访问冲突

时间:2014-10-14 07:20:56

标签: delphi access-violation

我有一个在Windows 8计算机上运行的Delphi XE2应用程序(32位),但在带有6GB RAM的Windows 7 64位中出现访问冲突错误。

我会理解,如果我访问了大量数据,但它只是说明了一些内容:

    Access violation at address 0000CD31. Read of address 00000000.

地址始终一致。读地址也是如此。

通常从我读过的,这是一个试图访问不再有效/正在使用的内存部分的指针。但我怀疑它为什么适用于Windows 8而不适用于Windows 7 64位......

我无法在本地VM中重现这一点(如果是语言问题,则使用相同语言的相同Windows),这只发生在客户端的PC上。

另一个甚至是最糟糕的问题是我正在为同事调试这个问题,所以我无法访问代码,也无法尝试其他功能(我在这里读过的一个修复程序),看看它是否是不。所以我不能使用像madExpert这样的东西来实际调试代码。我需要一些遥控器,可以告诉我有关程序完全符合的信息,并在发生访问冲突时远程运行。

1 个答案:

答案 0 :(得分:1)

如果您无法构建像madexcept这样的内容,那么您的选择仅限于

  • WER
  • procdump
  • 反向设计源代码的地址

从那些开始,最简单的是procdump

procdump -ma -w yourprocess

获得转储后,您可以使用windbg

进行分析
!analyze  -v

这应该会显示导致问题的堆栈跟踪。