正如标题所暗示的,有什么方法可以在机器代码指令执行后读取它们吗?例如,如果我有一个任意的 C 代码块,并且我想知道在输入该 block 时编译和执行了哪些指令,那么是否有办法做到这一点?预先感谢您提供有关该主题的任何指示。
编辑: 关于我正在尝试做的事情的一些动机:我想要一个程序,它可以粗略地弄清楚它是如何编译的或者它当前正在运行什么指令,而不需要实际知道机器代码是如何制作的。 IE。我想利用一些编译器以前在编译程序时所做的辛勤工作,以便我可以复制并稍后使用正在执行的机器码。
最佳答案
鲜为人知的事实:GDB 内置了一个 curses 接口(interface)。
使用gdbtui
或者gdb
,Ctrl+X,Ctrl+A进入,然后< kbd>Ctrl+X,2 开始同时显示程序集和源代码。当前指令突出显示,您可以使用箭头键进行导航。
关于c - 读取正在执行的指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2038267/