gcc / g++
gcc code1.c -o code1
显示编译的中间过程:
gcc -save-temps code1.c -o code1
(会生成 code1.i, code1.s, code1.o, code1 四个文件)
或:
gcc -E code1.c -o code1.i
生成 .i 预处理文件
gcc -S code1.i -o code1.s
生成 .s 汇编文件
gcc -C code1.s -o code1.o
生成 .o 目标文件
gdb 调试
gcc -g code1.cpp -o code1
(-g 用来 gdb 调试)gdb ./code1
(开始 gdb 调试)l
(list 出代码)b 8
(在第 8 行处 break 设置断点)r
(run 运行到断点处)p i
(print 出变量 i 的当前值)backtrace
(当发生错误时追溯错误,会以 #1、#2 …… 的形式列出错误)frame 3
(显示 backtrace 出的第 3 条错误的代码文本)quit
(退出 gdb 调试)man 7 signal
可以查看 SIG 信息,如man 7 signal | grep SEGV