// 根据进程名查询进程id
pgrep -l <process_name>
// 运行gdb
gdb -p <process_id>
// 设置断点。可以直接指定函数名符号(注意如果使用C++语言,符号名非函数名,可以使用nm命令查看),也可以指定文件具体行号
b <func_symbol>
b <file>:<line>
// 查看断点信息
info b
// 使能断点
enable <break_num>
// 禁用断点
disable <break_num>
// 删除指定断点
delete <break_num>
// 逐行调试
next
// 逐语句调试
step
// 从当前函数返回上一层函数调用
finish
// 查看线程信息
info threads
// 选择指定线程
thread <tid>
// 查看指定线程堆栈
thread apply <tid> bt
// 选择指定栈帧
f <framenum>
// 查看动态库加载信息
info <sharedlibrary>
// 查看源代码。-表示向前显示10行源码,还可以按照行号,文件名:行号,函数名,文件名:函数名,*内存地址来显示源码
list <- | linenum | file:linenum | function | file:function | addr>
// 以指定格式查看内存。FMT指定进制格式,可以查看指定内存地址,函数名和变量名的内存
x /<FMT> <addr | function | variable>
// 修改指定内存的值
set *addr=value
// 以指定格式查看表达式或变量的值,同时也支持修改表达式或变量的值。
p /<FMT> <expr>
gdb调试常用命令
于 2024-01-25 21:38:17 首次发布