【发布时间】:2011-06-29 07:29:05
【问题描述】:
当一个EXE抛出“地址XXXXXXXX的访问冲突...”这样的异常信息时,地址XXXXXXXX是一个十六进制值,我们可以通过查看映射文件得到导致异常的源代码行号.详情如下(by madshi at EE):
你需要减去图片库, 这很可能是 400000 美元。 此外,您需要减去 “代码基础”地址,即 存储在每个图像的nt头中 模块(exe/dll)。通常是 1000 美元。 您可以通过以下方式检查它的值 使用免费软件工具“PEProwse Pro”。它是“代码基础”中的字段 “可选”的“详细信息” 标头”。您还将找到图像 那里的基地址。
我的问题是:如何获取 DLL 的源代码行号?是否适用相同的计算?谢谢!
注意 1:地图文件是由 Delphi 生成的,我不确定这是否重要。
注意 2:我一直在使用 JCL DEBUG,但它无法捕获似乎在 DLL(实际上是 Office 加载项)启动时发生的异常。
【问题讨论】:
标签: delphi debugging exception-handling stack