gdb 调试

 -g 参数可以做到这一点

 

2. br: 设置断点
br filename:line_num

br namespace::classname::func_name

3. n: 单步跳过   s: 单步进入

4. finish:执行到函数retun返回

5. list: 列出当前位置之后的10行代码;list line_number: 列出line_number之后的十行代码

6. bt(backtrace):列出调用栈

7. info locals:列出当前函数的局部变量

8. p var_:打印变量值

9. info breakpoints:列出所有断点

10. delete breakpoints:删除所有断点;delete breakpoints id:删除编号为id的断点;disable/enable breakpoints id:禁用/启用断点

11. break ... if ... 条件中断

 

list(l) 查看最近10行源码

list fun 查看fun函数源码

list file:fun 查看file文件中的fun函数源码

list num1 num2 查看num1~num2行的源码

 

break 行号

break fun 在函数处设置断点

break file:行号 

break file:fun

break if <condition> 条件成立时程序停住

info break (i b)查看断点

watch expr 当expr的值发生改变时,程序停住

delete  n  删除断点

 

run/r 启动程序

continue(c) 运行至下一个断点

step(s) 单步跟踪,进入函数

next(n) 单步跟踪,不进入函数

finish 运行程序,直到当前函数完成返回,并打印函数返回时的堆栈地址和返回值及参数信息

until 运行程序直到程序退出循环体

print i (p i) 查看变量的值

ptype 查看变量类型

print array 查看数组

print *array@len 查看动态内存

print x=5 改变运行时的数据

print &array 查看数组的地址

回车代表上一个命令

 

core文件

在程序崩溃时,一般会生成一个文件叫core文件。core文件记录的是程序崩溃时的内存映像,并加入调试信息。core文件生成的过程叫做core dump

设置生成core文件

ulimit -c 查看core-dump状态

ulimit -c 数字 

ulimit -c unlimited 

gdb利用core文件调试

gdb 文件名 core文件

Backtrace(bt)   查看堆栈

 

多线程调试

info threads 显示当前可调试的所有线程

thread ID 切换当前调试的线程为指定ID的线程

attach process-id 在gdb状态下,开始调试一个正在运行的进程

thread apply all command 所有线程执行command

 

 

其他代码窗口相关命令:

info win    显示窗口的大小
layout next 切换到下一个布局模式
layout prev 切换到上一个布局模式
layout src   只显示源代码
layout asm   只显示汇编代码
layout split 显示源代码和汇编代码
layout regs   增加寄存器内容显示
focus cmd/src/asm/regs/next/prev 切换当前窗口
refresh     刷新所有窗口
tui reg next 显示下一组寄存器
tui reg system 显示系统寄存器
update      更新源代码窗口和当前执行点
winheight name +/- line 调整name窗口的高度
tabset nchar 设置tab为nchar个字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值