linux下gdb调试之简单命令使用(一)

GDB调试技巧概览
本文介绍了《软件调试的艺术》一书中关于GDB的基本使用方法,包括设置和管理断点、单步调试、查看和修改变量值等核心功能。适合初学者快速上手GDB。

 最近通读了一下软件调试的艺术(The art of debugging with gdb,ddd,eclipse),总体来说是一般入门级的调试用书。我个人感觉对初学gdb的有一定的作用,有愧于题目art,调试能力的提高必须通过实践。我简单的做个总结,供入门参考。主要讲了gdb的常用命令以及常见bug的调试方法。

常用命令:

1. 暂停机制

    a.断点的使用

       设置断点的方法:break(b) funtion  例如:break main,表示在main函数入口处暂停

       break filename:line_num 例如:break 5 表示每到当前源文件第5行暂停

       临时断点 tbreak 6 ,表示第6行暂停一次

       删除断点 delete 断点编号

       清除断点 clear 要清除断点所在行号

       恢复暂时失效的断点 enable 断点编号

       使断点失效 disable 断点编号  

       条件断点 break break-args if condition ,等同 break break-args ,condition 1 condition

       获取所有的断点信息 info breakpoints (i b)

       断点命令列表

       commands breakpoint-number

      

       commandlines

      

       commands

 

       ends

      

   b.继续调试

     continue 继续运行直到下一个断点或结束

     step 单步进入,单步跟踪,进入具体函数

     next 单步不进入,单步跟踪,不进入具体函数 next 3

     finish(fin) 恢复执行,直到恰好在当前帧完成之后为止

     until 

   c. 监视点

     watch  var or expression

   d. 检查和设置变量

     查看变量 print var  ;print *pointer

                   print *array@len array为动态开辟的len长度的数组

                  display var  expression

                  使用上述的命令列表

                  使用call调用程序

     设置变量 set var =value

     查看栈信息 backtrace(bt) 

                      frame  n

     显示源代码 list

     显示源代码的行数  show linesize ,show一般用于显示gdb的环境变量

     设置显示源代码的行数 set linesize n

   e. 线程相关

      info threads

     thread  num

     break num thread num

     break num thread num  if condition

 

     简单的罗列了一下命令,命令是死的,更多的是实践和积累。

 

  

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值