gpt4 book ai didi

c - 如何在反汇编中查看局部变量符号名称? (来自 C 源)

转载 作者:太空宇宙 更新时间:2023-11-03 23:35:22 27 4
gpt4 key购买 nike

如果我像这样编译源代码,(使用 Clang、Mac OS X)

int main()
{
int a = 4;
int* b = &a;
int c = *b;
return 6;
}

编译后的目标文件会这样被反汇编。 (使用 otool,Mac OS X)

main.o:
(__TEXT,__text) section
_main:
0000000000000000 pushq %rbp
0000000000000001 movq %rsp,%rbp
0000000000000004 movl $0x00000006,%eax
0000000000000009 leaq 0xf8(%rbp),%rcx
000000000000000d movl $_main,0xfc(%rbp)
0000000000000014 movl $0x00000004,0xf8(%rbp)
000000000000001b movq %rcx,0xf0(%rbp)
000000000000001f movq 0xf0(%rbp),%rcx
0000000000000023 movl (%rcx),%edx
0000000000000025 movl %edx,0xec(%rbp)
0000000000000028 popq %rbp
0000000000000029 ret

是否可以在反汇编中看到局部变量 符号名称?就像调试器一样。如果可能,我该怎么做?

最佳答案

您的程序中除了_main 外没有其他符号。您必须同时执行这两项操作:制作一个实际使用符号的程序(定义一个(非内联)函数)并使用编译器的命令行参数使其转储调试​​信息。

关于c - 如何在反汇编中查看局部变量符号名称? (来自 C 源),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5281368/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com