1.什么是gdb
- 什么是gdb
gdb是GNU debugger的缩写,是程序的调试工具
2.gdb功能
- 启动程序,可以按照用户自定义的要求随心所欲的运行程序
- 可让被调试的程序在用户所指定的调试的断点处停住**(断点可以是条件表达式)**
- 当程序停住时,可以检查此程序中所发生的事
- 动态改变程序的执行环境,可以动态改变变量的值
3.运行程序
gcc -Wall -g simple.c -o simple
不加-g只会有汇编代码而没有源文件代码
参数列表:程序列表 程序启动参数a b c
- run®运行程序
- run arg1 arg2
4.查看源码
- list(l)-查看最近10行源码。l 2,10查看第2行到第10行代码
- list fun-查看fun函数代码
- list file:fun-查看file文件中的fun函数源码
5.设置断点与观察点
break 10,b func
info 10,i b
break 行号
break fun
break file:行号,eg:l search.c:10
break file:fun
break if <condition> 条件成立时程序停住,eg: break if i=50,然后执行c,表示程序运行到i=50停住了
info break(i b) 查看断点
watch expr 表达式expr值发生改变,程序停住,eg:watch i,然后执行c,只要i的值发生改变,程序就会停住
delete n 删除断点,n是断点号
5.单步调试
s 单步跟踪
until 跳出循环
finish 退出整个函数
continue© 运行至下一个断点
step(s) 单步跟踪,进入函数,类似VC中的step in
next(n) 单步跟踪,不进入函数,类似VC中的step out
finish 运行程序,直到当前函数完成返回。并打印函数返回时的堆栈地址和返回值及参数值等信息
until 当厌倦了在一个循环体内单步跟踪时,这个命令可以运行程序直到退出循环体
32:40