【发布时间】:2020-11-27 04:15:48
【问题描述】:
我有几个基本上想反汇编的 C 程序。我正在使用 objdump,但我意识到这是静态反汇编。有没有办法获得完整的程序集级跟踪按顺序执行的指令的程序?我在 x86-64 上运行。
【问题讨论】:
-
这就是调试器的目的。
-
一旦你点击了一个条件分支(依赖于程序外部的东西),那么你的执行顺序反汇编就结束了
-
等等,你不想要调用堆栈回溯,你想要每条指令按执行顺序吗?您的标签和标题使用的术语与 GDB 的
bt命令相匹配。但是您真正想要的是执行跟踪,而不仅仅是堆栈。如果这不是您想要的,请edit您的问题以删除“堆栈”内容。 -
我编辑了我的问题以删除堆栈内容。是的,我基本上只想要按顺序执行程序集的指令。如果我必须模拟它们或使用调试器,有没有办法将该信息转储到文件中?
-
How to run record instruction-history and function-call-history in GDB? 有一些关于 GDB 的详细信息,它使用 intel-pt 等硬件支持,而不是缓慢地单步执行每条指令。