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