C++反汇编
C++
学习C++就要了解编译器,就要学会反汇编,要知道编译器自动做了哪些工作。
g++
使用预处理:
包括 条件编译(#ifdef),行控制(#pragma),文件包含(#include),宏定义(#define)。不包括模版实例化,目前主流编译器也没有模版实例化中间代码,实例化是在预处理之后的
1 | gcc -E hello.c -o hello.i |
使用汇编:
1
gcc -S hello.c -o hello.s
使用调试:
1
gcc -g hello.c -o hello
使用优化
1
gcc -O2 hello.c -o hello
使用交叉编译
1
gcc -m32 hello.c -o hello
assembly
g++
- 使用汇编:生产hello.s文件,可以查看该文件的汇编代码
1
gcc -S hello.c -o hello.s
gdb
也可以si单步进入到汇编
1 | (gdb) disassemble /m |
1 | 4 i=i++; |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.