gdb调试器的的操作
-
向程序中加入符号信息
gdb ./ main 加载main程序到gdb调试器中
-
run 运行程序 r
-
bt 查看函数调用栈——
-
start 开始调试
-
print/p 查看 print/p tmp 打印变量tmp的详细信息
-
list 是查看当前调试行前后5行代码 l 常见操作 l file:line (在本文件中可以简写成l 23,查看第23行附近的代码)
-
next/n 都是下一步的操作(不跟踪进入函数,直接将函数运行完毕)
-
s也是运行下一行 (跟踪进入函数)
-
until file :line 指定走到指定行 until mian.c:23 直接运行到mian.c文件的第23行 也可以简写 until 23
打断点
break / b 打断点
break funtion_name
b mian.c :15 在15行位置打断点
break test
info break /infob 查看断点列表信息 []
info break
continue /c 运行到下一个断点处
delete break_id delete 3 删除3号断点;delete删除所有断点
watch i 同时也打下一个断点 变量监控 当变量改变时停下来 (仅仅当运行到变量i才能watch i)
backtrace 函数调用栈 bt 踪迹回溯
gdb 加载程序的时候如果有程序运行参数,不能加载的时候给与,应该是在开始调试的时候给与
具体原因是main()是有参数的。
int main(int argc, char *argv[ ])
运行程序可以是 ./mian zhang wen chao -a -s
但加载gdb时,只能gdb ./mian 不能加参数
需要加参数可以在是
run zhang wen chao -a -s
或者 start zhang wen chao -a -s
文件在gcc编译的过程