GDB用法小结_gdb使用方法简介
GDB用法小结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“gdb使用方法简介”。
GDB用法小结
1.gdb exe 使得exe程序运行在debug环境下 2.break functiona 在functiona函数处设置端点
3.run 让程序从main入口执行到断点functiona 4.n next,单步执行,相当于VC中的调试命令step over 5.s step into,进入子函数,察看子函数的执行情况 6.bt backtrace查看堆栈的情况 7.p variant print出变量variant的值 8.l list命令,查看当前的行的上下文,默认显示10行 9.p variant=correct value 如果发现此时的variant的值不正确,我们可以给variant设置一个正确的值(correct value)然后,用第10项中的命令继续执行 10.c continue 继续执行,可以是经过按照更改后的值继续执行。相当于VC中的F5 11.quit or Ctrl+C 退出gdb
在gdb的命令行下,可以通过file exeprogram 载入要debug的文件 gdb-silent 表示不提示GDB的版权信息 or gdb-q(quiet)gdb-h 显示gdb的帮助 About Help gdb>help
apropos args //查找所有的GDB命令以及它的文档中包含args的表达式 complete i //列出所有以i开头的gdb命令
针对某一个命令的帮助是help command,例如help info 显示info的用法,info 可以查看args,breakpoints,stack......show命令只要是显示gdb的信息,如show version break break function 在某一个函数的地方设置端点
break linenum 在确定的某一行的地方设置断点
break +offset-offset
break *addre在某一个地址设置断点 14 watch watch expr 查看某一个表达式
rwatch expr 查看某一个表达式,并在读入该表达式的时候,设置断点查看源代码
list lineNum 在lineNum的前后源代码显示出来
list + 列出当前行的后面代码行
list=>;上次显示程序代码的前面的十行。
断点的设定与清除
1.设定断点(指令为 break,可简写为(b),格式计有:
(gdb)break filename.c:30 =>;在 filename.c 的第三十行处停止执行。
(gdb)break function =>;在进入 function 时中断程序的执行。
(gdb)break filename.c:function =>;在程序代码档 filename.c 中的函数 function 处设定断点。
(gdb)break =>;在下一个将被执行的命令设定断点。
(gdb)break...if cond =>;只有当 cond 成立的时候才中断。cond 须以 C 语言的语法写成。
2.显示各个断点的信息。
(gdb)info break
3.清除断点(命令为 clear),格式同 break。例如 :(gdb)clear filename.c:30
4.清除断点,NUM 是在 info break 显示出来的断点编号。
(gdb)delete NUM 全速及逐步执行程序
1.从程序开头全速执行程序,直到遇到断点或是程序执行完毕为止。
(gdb)run
2.在程序被中断后,全速执行程序到下一个断点或是程序结束为止(continue 指令可简写为 c)。
(gdb)continue
3.执行一行程序.若呼叫函数, 则将该包含该函数程序代码视为一行程序(next 指令可简写为 n)。
(gdb)next
4.执行一行程序.若呼叫函数, 则进入函数逐行执行(step 指令可简写为 s)。
(gdb)step
5.执行一行程序,若此时程序是在 for/while/do loop 循环的最后一行,则一直执行到循环结束后的第一行程序后停止(until 指令可简写为 u)。
(gdb)until
6.执行现行程序到回到上一层程序为止。
(gdb)finish 检视及更改变量值
1.print 叙述,显示该叙述执行的结果(print 指令可简写为 p)。如
(gdb)print a =>;显示 a 变量的内容.(gdb)print sizeof(a)=>;显示 a 变量的长度.2.display 叙述,在每个断点或是每执行一步时显示该叙述值。如
(gdb)display a
3.更改变量值:
(gdb)print(a=10)=>;将变量 a 的值设定为 10.检视程序执行状态
1.查看程序执行到此时,是经过哪些函数呼叫的程序(backtrace 指令可简写为 bt),也就是查看函数呼叫堆栈。(gdb)backtrace 读取 Core 文件信息
1.读入 PROGRAM 及 PROGRAM.CORE 档,可检视 Core Dump 时程序变量值及程序流程状态。gdb PROGRAM core
说明:'core' 档案是由 PROGRAM 档执行后,遇到 Core Dump 时产生的 Core 檔檔名。如果你还需要该 Core 档,我们建议你将该档案档名更改为 PROGRAM.core。在输入上述命令后,你可以用 GDB 提供的检视变量值以及检视程序执行状态来读取程序 Core Dump 时的状态。