0

我收到来自用户的崩溃报告,其中包含一些 Dr. Watson 信息,包括 EIP。我想开始调试,然后设置 EIP 并查看这会将我带到哪一行。我还在 Release 版本中启用了 Line Info。

我在源代码控制中有一个标签,因此我可以提取用于构建它的源代码,但我不知道链接器是否会生成具有相同偏移量的 EXE,否则 EIP 将无用。

4

1 回答 1

0

没有保证偏移量是相同的,除非您可以确保所有使用的库、所有源代码和链接器在您将代码签入版本控制后没有更改。这就是为什么许多公司实际上会竭尽全力将可执行文件置于配置管理之下。

根据经验,如果偏移量不同,那么它很快就会变得明显,因此您至少可以检查一下,如果事情没有意义,请忽略 EIP 和其他可执行地址偏移量。

如果您构建了一个映射文件并从崩溃报告的来源版本中保存了该文件,并从重新构建的源中保存了一个映射文件,那么您可以进行一些比较分析(实际上是逐个函数)以从可执行地址和偏移量。

于 2012-03-01T18:36:22.290 回答