一、什么是gdb:gdb是GNU debugger的缩写,是编程调试工具

二、gdb功能:
1、启动程序,可根据用户要求随心所欲的运行程序(比如带参数)
2、可让被调试的程序在用户指定的调试的断点处停住
3、当个程序停住,可以检查程序中发生的事(比如打印变量值)
4、动态改变变量程序的执行环境

三、使用实例:
gcc -Wall -g mian.c -o simple   注意:需要加上-g选项,以便生成调试信息。方便gdb调试,如果不加,只显示汇编代码,没有源文件代码。

gdb simple          #启动gdb
(gdb) list          #查看所有源代码  l 2,10
break  10                   #设置断点   b func   在函数func处设置断点
i  b                        #查看断点
info break                  #查看断点
l(list) 10                        #查看第10行代码
run                         #启动程序
s                           #单步跟踪
print  i                    #打印当前i的值
until                       #跳出循环,当厌倦了在一个循环体内单步跟踪时,这个命令可以直接运行程序直到退出循环。
p(print) result                    #查看result值
c                           #运行到下一个断点处 continue
step(s)                     #单步跟踪
next(n)                     #不进入函数内(单步)
finish                      #退出整个函数
q                           #退出gdb
break if<condition>         #条件成立时中断
watch expr                  #当expr值发生改变时,程序中断
delete  n                   #删除断点  n为第几个断点,n=1,删除第一个断点

接下来详细讲解下一:

1、run  arg1  arg2 :运行时,可以跟上参数。若未设置断点,则直接运行程序。否则运行到断点处。

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

3、break  行号:设置断点; break fun 在某函数处设置断点 ;        或者break file:行号  ;break  file:fun

4、continue(c)  运行到下一个断点

5、s单步跟踪,会跟踪到函数内部。

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

7、next(n):单步跟踪,不进入函数。

最新文章

  1. 萌新笔记——Cardinality Estimation算法学习(一)(了解基数计算的基本概念及回顾求字符串中不重复元素的个数的问题)
  2. VC++ 两种动态调整控件位置的方法(CButton设置为Radio形式会出现错误)
  3. EF更新指定字段...
  4. PHP导出Excel一个方法轻松搞定
  5. Bootstrap 响应式设计
  6. java 中 equals和==的区别
  7. json-lib date对象转json ,加入自定义日期格式处理
  8. Python_Day_5装饰器、字符串格式化、序列化、内置模块、生成器、迭代器之篇
  9. SQL中VARCHAR与NVARCHAR存储区别
  10. 浅析vb.net与vb6的不同
  11. android149 360 程序锁输入密码
  12. 用maven创建工程
  13. 深入理解JVM(七)&mdash;&mdash;性能监控工具
  14. PHP Filter 函数
  15. Activity的四种启动模式任务栈图解
  16. protobuf使用详解
  17. 《maven in action》部分知识点总结
  18. 一、zipkin
  19. tr 设置margin、padding无效
  20. [Android Security] 静态分析Android程序——smali文件解析

热门文章

  1. day08 Pyhton学习
  2. 使用 volatile 关键字保证变量可见性和禁止指令重排序
  3. 【转载】动态规划—各种 DP 优化
  4. swoole一键协程
  5. python 爬取简书评论
  6. spring注解@Transactional 和乐观锁,悲观锁并发生成有序编号问题
  7. JavaScript数字与字母相互转换
  8. Ⅰ Introduction to Reinforcement Learning
  9. Python入门教程完整版(懂中文就能学会)
  10. JavaWeb宿舍管理系统(附 演示、源码下载地址)