gdb调试入门(上)

一、什么是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):单步跟踪,不进入函数。

posted on 2018-01-07 17:05  wsw_seu  阅读(232)  评论(0编辑  收藏  举报

导航