我试图弄清楚这个objdump -d的所有元素是什么意思。
例如,我有:
08048b50 <phase_1>:
8048b50: 83 ec 1c sub $0x1c,%esp
8048b53: c7 44 24 04 68 a2 04 movl $0x804a268,0x4(%esp)
8048b5a: 08
8048b5b: 8b 44 24 20 mov 0x20(%esp),%eax
8048b5f: 89 04 24 mov %eax,(%esp)
8048b62: e8 63 04 00 00 call 8048fca <strings_not_equal>
8048b67: 85 c0 test %eax,%eax
8048b69: 74 05 je 8048b70 <phase_1+0x20>
8048b6b: e8 f5 06 00 00 call 8049265 <explode_bomb>
8048b70: 83 c4 1c add $0x1c,%esp
8048b73: c3 ret 具体来说,我不知道第一列和中心栏告诉我的是什么
发布于 2014-02-13 00:23:00
第一列告诉您代码在运行时所处的内存地址。
第二列有可执行指令的十六进制版本。
第三列(和第四列)有第二列的反汇编版本。即操作码和操作数。
发布于 2021-05-20 10:32:55
第一:地址,十六进制。两个相邻地址之间的区别是机器代码的数目。
第二:机器代码,十六进制。
第三:汇编程序代码,从机器代码中拆解。
执行'objdump -无前导-addr -S **.o',第一列将被隐藏。
objdump - Apple LLVM版本11.0.0 (clang-1100.0.33.17)
https://stackoverflow.com/questions/21742827
复制相似问题