在使用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])。 / p>

     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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)