linux C编程 gdb的使用

通常来说,gdb是linux在安装时自带的,在命令行键入“gdb”字符并按回车键会启动gdb调试环境。

1、gdb的基本命令

命令 说明
file 装入想要调试的可执行文件
kill 终止正在调试的程序
list 列出产生执行文件的部分源代码
next 执行一行源代码但不进入函数内部
step 执行一行源代码且进入函数内部
run 执行当前被调试的程序
quit 退出gdb
watch 动态监视一个变量的值
make 不退出gdb而重新产生可执行文件
call name(args) 调用并执行名为name,参数为args的函数
break 在代码里设置断点,使程序执行到此处被挂起

2、gdb运行模式的选择

gdb提供了包括“批模式”或“安静模式”在内的一系列运行模式,可以通过gdb运行时在命令行通过选项来选择。

-n 不执行任何初始化文件中的命令(一般初始化文件称为.gdbinit)。

一般情况下载这些文件中的命令行会在所有的命令行参数都被传给gdb后执行
-q 设定gdb的运行模式为“安静模式”,可以不输出介绍和版权信息

这些信息在“批模式”中也不会显示
-batch 设定gdb的运行模式为“批模式”,gdb在“批模式”下运行时,会在执行命令文件中的所有命令,当所有命令都被成功执行后返回状态0

如果执行过程中出错,gdb返回一个非零值
-cd dir 把dir作为gdb的工作目录,而非当前目录(gdb缺省时把当前目录作为工作目录)
   

3、gdb使用步骤

(1)运行“gdb+待调试的可执行文件名称”命令来启动调试。

(2)使用“b”快捷键在程序开始处设置断点,然后使用“run”开始调试

(3)使用“n”快捷键即可执行下一条程序,期间还可以使用其他命令来观察相应的变量的运行情况。

(4)使用break+数字/break +该行代码名称 ,来设置断点

(5)使用c,表示continue的缩写

(6)使用p命令+变量,来打印当前变量的值

(7)使用finish来结束函数

(8)使用q来退出调试

最新文章

  1. WinNTSetup v3.8.7 正式版绿色增强版
  2. shell 和awk性能对比
  3. MySQL 获得当前日期时间 函数
  4. Swustoj题目征集计划
  5. QT5: QApplication, no such file or directory
  6. 玩转web之javaScript(五)---js和jquery一些不可不知的方法(input篇)
  7. golang sql database drivers
  8. [Spark内核] 第33课:Spark Executor内幕彻底解密:Executor工作原理图、ExecutorBackend注册源码解密、Executor实例化内幕、Executor具体工作内幕
  9. SpringBoot整合Dubbo,并实现dubbo实现动态调用
  10. 利用反射--调用一个按钮的Click事件
  11. 手把手教Electron+vue的使用
  12. 使用IEDA远程调试
  13. Spring依赖包
  14. 条款2:尽量以const, enum, inline替换#define
  15. jQuery ajax的jsonp跨域请求
  16. Jsp应用EL和JSTL实例对比。
  17. orcale 之pl/sql例外
  18. sysbench 环境安装,压测mysql
  19. java 基础 --Collection(Set)
  20. Mabatis入门案例

热门文章

  1. 文件权限设置与http,php的关系
  2. POJ 3169_Layout
  3. Linux下Apache服务部署静态网站------网站服务程序
  4. Codeforces 799E(贪心)
  5. spring history &design Philosophy
  6. Servlet的Cookies处理
  7. socker地址API
  8. 基于cocos2d-x-3.2学习Box2D(一)
  9. HDU 2870 Largest Submatrix (单调栈)
  10. 【智能路由器】让MT7620固件openwrt支持USB