像这样的一段简单的代码
#include<stdio.h>
int main()
{
return 0;
}
用gdb查看“&main”中的值,得到0xe5894855,请问这是什么?
(gdb) x/x &main
0x401550 <main>: 0xe5894855
(gdb)
最佳答案
(gdb) x/x &main
0x401550 <main>: 0xe5894855
(gdb)
0xe5894855
是 main 中第一条指令的十六进制操作码,但是由于您使用了 x/x
现在 gdb
将其显示为十六进制数,并且由于 x86-64 是小端字节序而向后。 55
是push rbp
的操作码,也是main
的第一条指令。使用 x/i &main
查看说明。
https://stackoverflow.com/questions/63812837/