Linux调试器-gdb使用

目录

1:debug与release的介绍

                   release:

                    debug:

                   release编译配置更改为debug

2:dgb的使用命令


1:debug与release的介绍

在Linux下使用GBD(GNU Build Debugger)进行调试时,release, debug 是两种不同的编译选项,它们分别对应不同的编译配置。 只有将release编译配置更改为debug,才能使用gdb调试

                   release:

通常用于生产环境的编译,它通常会启用一些优化选项以提高编译速度和程序性能,同时可能会关闭一些调试信息。

                    debug:

则主要用于调试,它通常会包含更多的调试信息,以便于开发者在调试过程中查看和跟踪程序的运行状态。

                                   release编译配置更改为debug

要将默认的release编译配置更改为debug,你可以在GBD命令中添加相应的选项。具体的方法取决于你使用的GBD工具和构建系统。以下是一些常见的做法:                                                                  

     使用Makefile文件进行构建:   

  1. Makefile中添加  CFLAGS += -g -O0(其中-g表示启用调试信息,-O0表示禁用优化)

  2. 或者 Makefile中编译目标文件 末尾带上 -g                                                                                                                                             

  3. GBD命令行工具进行构建:

         gbd build -j <num_jobs> --debug( <num_jobs>是并行构建的线程数)
          
       

2:dgb的使用命令

gdb 的使用作用于可执行程序:

gdb binFile 退出: ctrl + d quit 调试命令:
list l 行号:显示 binFile 源代码,接着上次的位置往下列,每次列 10 行。
listl 函数名:列出某个函数的源代码。
rrun:运行程序。
n next:单条执行。
sstep :进入函数调用
finish:执行到当前函数返回,然后挺下来等待命令
print(p) :打印表达式的值,通过表达式可以修改变量的值或者调用函数
p 变量:打印变量值。
set var :修改变量的值 
info( i) locals :参看当前栈的变量
continue(c):从当前位置开始连续而非单步执行程序(到下一个断点)
bt:从当前位置开始生产栈堆跟踪
run(或 r) :从开始连续而非单步执行程序

break(b)  行号         :在某一行设置断点
break  函数名            :在某个函数开头设置断点
delete breakpoints   :删除所有断点
  
delete breakpoints n:删除序号为n的断点
disable breakpoints  :禁用断点
enable breakpoints  :启用断点
info break :查看断点信息。
info( i) breakpoints :参看当前设置了哪些断点

display 变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay:取消对先前设置的那些变量的跟踪
until X行号:跳至X
breaktrace( bt) :查看各级函数调用及参数
info i) locals :查看当前栈帧局部变量的值

quit :退出 gdb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值