GDB调试命令总结-创新互联

1.调试命令:

成都创新互联是一家集网站建设,贵定企业网站建设,贵定品牌网站建设,网站定制,贵定网站建设报价,网络营销,网络优化,贵定网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
sudo gdb -p 工作进程的pid                 #查看工作进程的pid
sudo gdb -tui -p 工作进程的pid			#跟踪该pid的worker进程,可以加-tui可视化
list / l								#从第1行列出源码
list 函数                                #跳转到想要调试的函数
list 行号					  			#打印附近代码
b/break 设置断点 					    #设断点
info break                              #查看断点信息
d/delete 断点							#删除断点
c										#继续运行,触发断点
n/next  								#单条语句执行,不进入函数内部
s/step									#进入函数内部
start									#单步执行,运行程序,停在第一执行语句
p i										#打印变量i的值
finish 									#退出函数
q										#退出gdb
r										#重新开始运行文件
bt/backtrace							#查看当前调用堆栈
qcdmy									#查看当前栈中的所有信息
bt n									#显示栈顶几个层的信息
bt -n 									#显示栈底几个层的信息
f/frame 数字								#切换到第几个堆栈,0开始,0表示栈顶,1表示栈第二层
up n 									#向栈的上面移动n层,不打n,表示向上移动一层
down n 									#向栈的下面移动n层,不打n,表示向下移动一层
info f									#会打印出更为详细的当前栈层的信息
set print pretty on						#格式化输出样式,可以输出漂亮的结构体
layout									#用于分割窗口,可以一边查看代码,一边测试
display									#跟踪特定变量值
undisplay								#取消追踪观察变量
watch									#被设置观察点的变量发生修改时,打印显示
i watch									#显示观察点
set										#设置变量的值

2.break命令:

break 函数名 :在进入指定函数时设置中断点
break 文件名:函数名  : 设置指定文件中的相应函数为断点
break 行数:按照行数设置断点
break 文件名:行号 : 将指定文件的指定行数设置为断点
break *address :在程序正在运行的指定地址发出断点
break /- offeset :在当前行之前或之后中断点

break . if condition :在处理特定循环体时,可以使用此方法进行调试。 其中…是上述break lineNumber、break /-offset的参数。 其中,condition表示条件,是条件成立的时间
按顺序停止。 例如,如果设置break if i=100,则程序在I为100时停止。

3.print命令:

① 用于打印变量值,print可以输出很多类型的变量:全局变量,静态全局变量,局部变量,如果你的局部变量和全局变量发生冲突(也就是重名),一般情况下是局部变量会隐藏全局变量。
 ② 输出格式:
x 十六进制
d 十进制
u 十六进制无符号数
o 八进制
t 二进制
c 字符格式
f 浮点数格式
③ 查看变量值:
p "文件名"::全局变量        #查看相应文件中全局变量的值
p *数组的首地址@数据长度     #查看数组指定长度的值
p 数组名                   #查看数组值
info registers            #所有寄存器的值
p $寄存器				  #查看指定寄存器的值

4.layout命令:

layout用于分割窗口,可以一边查看代码,一边测试。

layout src :显示源代码窗口
layout asm :显示汇编窗口
layout regs :显示源代码/汇编和寄存器窗口
layout split : 显示源代码和汇编窗口
layout next :显示下一个layout
layout prev :显示上一个layout

文章引用:如何调试大型 Linux C/C++ 项目? - CharyGao - 博客园

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享标题:GDB调试命令总结-创新互联
文章起源:http://hbruida.cn/article/cegihe.html