首页 > 解决方案 > 使用 Eclipse 调试器单步执行编译的 C 代码反汇编时如何显示变量名?

问题描述

我有以下 C 程序。

// main.c

int main(void) {
    int x = 10;
    int y = 20;
    return 0;
}

当我在 Windows 上使用 Visual Studio 2019 的调试器逐步完成反汇编时,我看到以下输出,其中显示了 C 代码和相应的说明。

     7:     int x = 10;
 mov         dword ptr [rbp+4],0Ah  
     8:     int y = 20;
 mov         dword ptr [rbp+24h],14h  
     9:     int z = x + y;

当我Show Symbol Names从右键单击上下文菜单中选择时,堆栈上的地址显示为它们对应的变量名称(例如,[rbp+4]显示为[x])。

     7:     int x = 10;
 mov         dword ptr [x],0Ah  
     8:     int y = 20;
 mov         dword ptr [y],14h  

在 Linux 上使用 CDT 10.0.0.202009071455 在 Eclipse 2020-09 中进行调试时,我想启用类似的功能。我正在用gcc -g main.c.

无论是否Show Symbols从右键单击上下文菜单中选择,反汇编时都会显示以下内容。

  int x = 20;
mov     DWORD PTR [rbp-0x8],0xa
  int y = 30;
mov     DWORD PTR [rbp-0xc],0x14

是否有某种方法[rbp-0xc]可以显示为[y],就像在 Visual Studio 中一样?我尝试过使用gdb直接进行反汇编,但遇到了同样的问题,显示地址而不是标签。除了-g编译时需要使用的选项之外,还有其他选项吗?我都试过了gccclang

标签: cdebugginggdbeclipse-cdtdisassembly

解决方案


推荐阅读