gdb反汇编

比如我们有个.c,编译时并没有用-g生成调试信息:

#include <stdio.h>
int add(int a, int b) { return a + b; }
int main() { printf("%d\n", add(3, 5)); }

只要没有strip掉symbol,也可以用gdb看到函数的汇编代码:

复制代码
(gdb) disass add
Dump of assembler code for function add:
   0x00401360 <+0>:     push   %ebp
   0x00401361 <+1>:     mov    %esp,%ebp
   0x00401363 <+3>:     mov    0x8(%ebp),%edx
   0x00401366 <+6>:     mov    0xc(%ebp),%eax
   0x00401369 <+9>:     add    %edx,%eax
   0x0040136b <+11>:    pop    %ebp
   0x0040136c <+12>:    ret
End of assembler dump.
复制代码

[GDB disassemble - 枪侠 - 博客园

哦,土了,还有objdump.

disassembly - How to disassemble a memory range with GDB? - Stack Overflow

debugging - gdb - how to disassemble whole function including loops - Stack Overflow

Machine Code (Debugging with GDB) (sourceware.org)

Tutorial: Debugging with Intel® Distribution for GDB* on Linux

posted @   Fun_with_Words  阅读(182)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理









 和4张牌。

点击右上角即可分享
微信分享提示