gdb调试关键点记录

1.使用gcc时,需要使用gcc -g选项

2.如果想要把生成的可执行文件的调试信息去掉,可以使用strip命令.

3.调试程序时,最好把编译器的优化给关掉

 

gdb调试程序的三种方式:

1.gdb filename

2.gdb attach pid # 分离可以用detach

3.gdb filename corename  

 

gdb常用的命令:

命令(简写)含义
help command救命啊,命令
list(l)列出附近的代码,l -表示前面的.
break(b)打断点

b funcname

b LineNo

b filename:LineNo

run(r)运行
continue(c)运行到下一个断点处
print(p)

打印, 可以查看错误p strerror(errorno)

也可以用来修改变量,比如p a = 3.

也可以计算表达式, p 1+2

  
ptype打印类型,也可以打印结构体内容
info thread

打印线程的信息

切换用thread + 线程序号

info args打印参数信息
backtrace(bt)调用堆栈,可以使用 f 堆栈号 来切换
frame(f)切换到某个堆栈
  
info break(info b)查看断点信息
enable  

+断点编号(可以多个):表示对某个起作用; 

不加表示对所有起作用

disable
delete
  
next(n)单步步过
step(s)单步步入
utilutil LineNo 执行到某行
jump(j)j LineNo或者函数地址 跳转到某处
finish执行完当前层函数,返回到上一层
return当前层函数后面的直接不执行,返回到上一层.可以带返回值,返回值会赋给函数调用方.

相关文章