gcc -g -o test test.c
gdb 或 gdb ./test
(gdb) file ./test
(gdb) r
Hello, World!
----------
调试代码:
run(r):运行代码
next(n):单步跟踪,函数调用当作一条简单语句执行
step(s):单步跟踪,函数进入被调用函数体内
finish : 退出进入的函数
until(u):退出一个循环体
continue(c):继续运行程序
查看运行时数据
print(p):打印变量、字符串、表达式等直
----------
设置断电
break(b)行号:设断点
b 函数名
i b :查看断电信息
whatis 内容:打印内容
d 编号:删除编号处(不是行号)的断点
b 行号 if i==9:设置条件断点
bt:打印栈帧信息
找不到源代码,可使用list
若使用list命令无效,记住gdb的调试信息中并不包含源代码,
这个需要通过directory命令实现,由于某中原因,源代码移动
位置,则需要告诉gdb,gdb就会根据指定的路进查找,查看gdb
的查找路径:
show directories
dir dirname1:dirname2:dirname3
有时使用-g没有调试信息,可改成
-gstabs试一试,若还是不太理想,可使用
-gstabs+
list(l)行号:显示行号
l :从main函数开始
l 函数名