【Linux】 调试器gdb

 调试器gdb

安装gdb

apt intsall gdb

测试代码

在mycode.c文件中编写一段简单代码。

编写自动化程序makefile。

         程序发布方式有两种,debug和release模型,Linux下gcc\g++出来的二进制程序,默认是release模式。       

        由于debug下的代码可以被调试,而release不可以被调试。同时debug形成的可执行程序会有调试信息,而release没有调试信息。

       

要使用gdb进行调试,必须在源代码生成二进制程序的时候,加上-g选项,如果没有添加,可能会导致程序无法被编译。

此时,代码属于debug模式

gdb常见选项使用

gdb mycode

进入调试,如果没有报错,就进入到了gdb的交互环节中,如果想要退出,使用q即可。

命令作用样例
list/l显示源代码,从上次位置开始,每次列出10行list/l 10

命令作用样例
list/l 函数名列出指定函数的源代码list/l main

命令作用样例
list/l 文件名:行号列出指定文件的源代码

list/l mycode.c:10

命令作用样例
r/run从程序开始连续执行

run

命令作用样例
break/b [文件名:]行号在指定行号设置断点

break 10

break test.c:10

命令作用样例
break/b 函数名在函数开头设置断点的信息

break main

命令作用样例
info break/b查看当前所有断点的信息

info break

命令作用样例
n/next单步执行,不进入函数内部,逐过程F10

next

命令作用样例
s/step单步执行,进入函数内部,逐语句F11

step

命令作用样例
finish执行到当前函数返回,然后停止

finish

命令作用样例
print/p 表达式打印表达式的值

print start+end

命令作用样例
p 变量打印指定变量的值p x

命令作用样例
set var 变量=值修改变量的值set var i =10

命令作用样例
continue/c从当前位置开始连续执行程序continue

命令作用样例
delete/d breakpoints删除所有断点delete breakpoints

命令作用样例
delete/d breakpoints n删除序号为n的断点delete breakpoints 1

命令作用样例
disable breakpoints禁用所有断点disable breakpoints

命令作用样例
enable breakpoints启用所有断点enable breakpoints

命令作用样例
info/i breakpoints查看当前设置的断点列表info breakpoints

命令作用样例
display 变量名跟踪显示指定变量的值(每次停止时)

dispaly x

命令作用样例
undiaplay 编号取消对指定编号的变量的跟踪显示undisplay 1

命令作用样例
until X行号执行到指定行号until 20

命令作用样例
backtreace/bt查看当前执行栈的各级函数调用及参数backtrace

命令作用样例
info/i locals查看当前栈帧的局部变量值info locals

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值