首页 > 代码库 > gdb调试整理

gdb调试整理

调试环境:linux
调试工具:gdb

调试类别

1、调试core文件  gdb 应用程序名 core文件名
2、调试正在执行的程序 gdb 应用程序名 pid
3、gdb 应用程序名         
4、gdb --args 应用程序名 应用程序的运行参数


常用命令

* list 显示程序中的代码,常用使用格式有 l (+/-)n
* break :在程序中设置断点,当程序运行到指定行上时,会暂停执行。使用格式:break 要设置断点的行号
* clear :和break相反,clear用于清除断点。使用格式:clear 要清除的断点所在的行号
* run :启动程序,在run后面带上参数可以传递给正在调试的程序。
* whatis :显示某个变量或表达式的数据类型。使用格式:whatis 变量或表达式
* print :打印变量或表达式的值。使用格式:print
* frame :打印栈帧。使用格式: frame 栈帧号
* info frame :显示当前栈帧的详细信息。
* until(u) : 一直执行到当前行或指定位置,或是当前函数返回 until + 行号

 

线程操作:

info threads    #   查看所有线程信息
thread 线程id   #   切换到指定线程
thread apply [threadno | all ] 参数     #   对所有线程都应用某个命令

子进程调试:

set follow-fork-mode child|parent   #   fork后,需要跟踪谁
show follow-fork-mode
set detach-on-flow on|off           #   fork后,需要两个都跟踪吗

info forks                          #   显示所有进程信息
fork 进程id                         #   切换到某个进程
detach-fork 进程id                  #   不再跟踪某个进程
delete fork 进程id                  #   kill某个进程并停止对它的跟踪

检查点:     checkpoint/restart
查看停止原因:  info program

 

-------------------------待补充-----------------------------