3

首先,我不能使用调试器[1]。但是我可以访问程序的程序计数器,也可以用我需要的所有标志编译二进制文件(用 C 编写)。我什至可以更改代码(尽管我不想这样做)。给定一台 PC,我希望能够知道它对应的是哪条线路。

我确信必须有一种自动化的、实用的、快速的方法来做到这一点。但我没有成功。

编辑:忘了提:Lin​​ux系统,二进制文件是PPC,主机是i386。我确实可以使用 PPC 硬件。

[1] 正在模拟应用程序,并且它是交叉编译的,我在主机模拟器中有一个 gdb。但我无法在模拟的来宾应用程序上连接 gdbserver。而且真正的硬件不是一个选择,我正在尝试基于模拟器构建一个模拟器。

4

1 回答 1

2

如果二进制文件是使用调试信息编译的,那么您可以使用 PC 通过探索包含调试信息的 ELF 部分来找到源代码中的正确位置。不过,自动化、快速和实用并不是这个过程中想到的术语!

于 2012-06-03T20:42:01.210 回答