gdb调试
gdb FILE 调试程序
gdb run 运行程序
gdb list 查看代码
break num
设置断点
breac function
info b 查看断点
delete b
删除断点
break operator(函数名) 条件断点
step 单步
next 往下执行
finish
退出函数
info program 来查看程序的是否在运行,进程号,被暂停的原因
continue 继续运行程序,可简写为c
display
varible 检查变量
print varible 打印变量
set varible = 改变数据
backtrace 检查堆栈
b file:num thread 5
info threads
until
在一个循环体内单步跟踪时,这个命令可以运行程序直到退出循环体,可简写为u
thread num 指定线程
set
scheduler-locking on/off 锁定调度器来避开gdb根据优先权来改变当前线程
thread apply all
指定线程应用命令
attach pid 挂接进程
dettach pid 脱离进程
watch 监控变量改变
set follow-fork-mode [parent|child]
parent:
fork之后继续调试父进程,子进程不受影响。
child: fork之后调试子进程,父进程不受影响
set detach-on-fork [on|off]
on: 断开调试follow-fork-mode指定的进程。
off:
gdb将控制父进程和子进程。follow-fork-mode指定的进程将被调试,另一个进程置于暂停(suspended)状态。
方法一:适合临时向文件输出些信息的情况。
比如要用info
functions输出所有函数,结果往往有一大坨,所以可以将之输出到文件。
(gdb) set logging file <file
name>
(gdb) set logging on
(gdb) info functions
(gdb) set logging
off
方法二:适合整个gdb会话期间都重定向输出的情况。
gdb |tee newfile
show directories
查看源代码路径
dir dirname
将dirname加到代码搜索路径里面