【问题标题】:See instructions executed by a compiled code?看到编译代码执行的指令了吗?
【发布时间】:2015-04-09 04:23:01
【问题描述】:

在我大学的一个实验室中,我们使用了一个名为 IAR 的程序,它允许我们查看每条指令(在汇编程序中)由特定代码执行,但在这种情况下,我们知道程序的代码,所以我想知道是否是否存在任何工具或方法来查看正在处理的指令或程序正在更改的内存,这可能吗?

【问题讨论】:

  • 你能澄清一下这个问题吗?您想查看当前正在执行的指令吗?在 PC 上还是在微控制器上?
  • 我想在PC上查看PC上执行的程序的指令。感谢您的关注

标签: instructions instruction-set


【解决方案1】:

您正在寻找的(软件)工具称为调试器。它可以逐步执行程序、检查内存、进行寄存器转储等。IAR 生产商业调试器,但也有其他的。 Microsoft 的商业产品 Visual Studio 内置了一个调试器,在免费/开源方面,您可以使用非常流行的 GNU GDB,它可以在大多数操作系统上运行:

https://www.gnu.org/software/gdb/

为了使调试器最有效,您的代码需要在编译时使用调试符号,如果您的原始源代码是用高级语言编写的,这有助于调试器为您提供函数和变量名称。

希望这会有所帮助!

【讨论】:

  • 您好!感谢您的回答。我知道调试器的存在,我有时使用过 dgb,但我在想,查看执行的指令和已编译的程序更改的内存(没有“调试符号”)。 GDB 有可能允许我查看内存中存储(和更改)的信息,或者查看在没有调试符号的情况下编译的程序正在执行的指令?
  • 是的,这是可能的:使用“反汇编”命令查看说明。在 TUI 模式下 (sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.html#TUI-Keys) 反汇编窗口也可用。与往常一样,您可以使用“x”命令查看内存:sourceware.org/gdb/onlinedocs/gdb/Memory.html#Memory
猜你喜欢
  • 2012-04-28
  • 2022-01-23
  • 2016-03-14
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多