问题描述
我有以下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
之外,我在编译时还需要使用其他选项吗?我已经尝试过gcc
和clang
。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)