Linux下的编译调试命令:
1.编译
-C: 只编译,不链接生成可执行文件
-o +output_filename: 确定输出文件的名称为output_filename,并且这个名称不能与源文件同名。默认情况下为:a.out
-g: 若想对源代码进行调试,就需要加入该选项
-O: 对程序进行优化编译、链接。
-O2: 比-O更好的优化编译、链接,但整个编译和链接过程会比较慢。
eg. g++ A.cpp
gcc -Wall test.c -o test
gcc -g -o test test.c
2.运行
默认: ./a.out
更名后: ./test
3.调试
(1) gdb + 可执行文件名
eg. gdb a.out
gdb test
或 先输入gdb , 再输入 file + 可执行文件名
eg. file test
(2) break (b) 设置断点
eg. break line5 运行到第五行停止
break function1 运行到function1函数停止
(3) step ( s / n )<=> 下一步
continue (c) <=> 跳过
(4) print + 变量/表达式 临时查看变量
display + 变量/表达式 永久查看变量
disable display 暂时不显示display
enable display 恢复display
delete dispaly 删除display
(5) show listsize 查看当前源代码的显示行数
(6) gdb中运行程序用run (r)
r 自动更新源代码状态,不用退出gdb编译再进来
(7) delete + 断点编号 / clear + 断点所在行号
watch + 变量 当变量值发生变化时,中断运行
info 查看所有断点
backtrace (bt) 回溯
(8) define 宏定义
eg. define pxy
> printf"%d,%d" ,X,Y
> end