c - 读取正在执行的指令

标签 c assembly machine-code

正如标题所暗示的,有什么方法可以在机器代码指令执行后读取它们吗?例如,如果我有一个任意的 C 代码块,并且我想知道在输入该 block 时编译和执行了哪些指令,那么是否有办法做到这一点?预先感谢您提供有关该主题的任何指示。

编辑: 关于我正在尝试做的事情的一些动机:我想要一个程序,它可以粗略地弄清楚它是如何编译的或者它当前正在运行什么指令,而不需要实际知道机器代码是如何制作的。 IE。我想利用一些编译器以前在编译程序时所做的辛勤工作,以便我可以复制并稍后使用正在执行的机器码。

最佳答案

鲜为人知的事实:GDB 内置了一个 curses 接口(interface)。

使用gdbtui或者gdb,Ctrl+X,Ctrl+A进入,然后< kbd>Ctrl+X,2 开始同时显示程序集和源代码。当前指令突出显示,您可以使用箭头键进行导航。

关于c - 读取正在执行的指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2038267/

相关文章:

c - 在 Arduino 中使用 PROGMEM 存储在闪存中的字符串数组

Linux 汇编 x86 |试图获取堆栈值,语法错误

c - 需要编写一个程序,该程序采用汇编语言程序并生成相应的机器语言

objective-c - 如何在运行时识别方法的返回类型?

c - Photoshop CS5对Wintab驱动的使用

c++ - 使用汇编加速位测试操作

debugging - 预期程序崩溃

c - AMD64——nopw 汇编指令?

c - 我的 Wayland 共享内存代码发现了一个段错误

c - 为什么arm-linux-gcc在进入IRQ模式时只保留r0-r4