GDB调试常用代码汇总

#gdb常用代码汇总:
(整理的有点乱,勿喷)
gdb调试:如果需要使用gdb调试程序,请在gcc时加上-g选项
1)进入GDB  #gdb test
  test是要调试的程序,由gcc test.c -g -o test生成。进入后提示符变为(gdb) 。
2)查看源码  (gdb) l
  源码会进行行号提示。
  如果需要查看在其他文件中定义的函数,在l后加上函数名即可定位到这个函数的定义及查看附近的其他源码。或者:使用断点或单步运行,到某个函数处使用s进入这个函数。
3)设置断点  (gdb) b 6
  这样会在运行到源码第6行时停止,可以查看变量的值、堆栈情况等;这个行号是gdb的行号。
 4)查看断点处情况  (gdb) info b
  可以键入"info b"来查看断点处情况,可以设置多个断点;
5)运行代码  (gdb) r
6)显示变量值  (gdb) p n
  在程序暂停时,键入"p 变量名"(print)即可;
  GDB在显示变量值时都会在对应值之前加上" N " 标记,它是当前变量值的引用标记,以后若想再次引用此变量,就可以直接写作 " N"标记,它是当前变量值的引用标记,以后若想再次引用此变量,就可以直接写作" N"标记,它是当前变量值的引用标记,以后若想再次引用此变量,就可以直接写作"N",而无需写冗长的变量名;
7)观察变量  (gdb) watch n
 在某一循环处,往往希望能够观察一个变量的变化情况,这时就可以键入命令"watch"来观察变量的变化情况,GDB在"n"设置了观察点;
8)单步运行  (gdb) n
9)程序继续运行  (gdb) c
  使程序继续往下运行,直到再次遇到断点或程序结束;
10)退出GDB  (gdb) q
11)修改变量的值 set var
12) set args 可指定运行时参数。(如:set args 10 20 30 40 50)
13)clear + 要清除的断点行号 clear 10 用于清除对应行的断点,要给出断点的行号,清除时GDB会给出提示.
调试命令 (缩写) 作用
(gdb) break (b) 在源代码指定的某一行设置断点,其中xxx用于指定具体打断点位置
(gdb) run (r) 执行被调试的程序,其会自动在第一个断点处暂停执行。
(gdb) continue (c) 当程序在某一断点处停止后,用该指令可以继续执行,直至遇到断点或者程序结束。
(gdb) next (n) 令程序一行代码一行代码的执行。
(gdb) step(s) 如果有调用函数,进入调用的函数内部;否则,和 next 命令的功能一样。
(gdb) until (u)
(gdb) until (u) location 当你厌倦了在一个循环体内单步跟踪时,单纯使用 until 命令,可以运行程序直到退出循环体。
until n 命令中,n 为某一行代码的行号,该命令会使程序运行至第 n 行代码处停止。
(gdb) print (p) 打印指定变量的值,其中 xxx 指的就是某一变量名。
(gdb) list (l) 显示源程序代码的内容,包括各行代码所在的行号。
(gdb) finish(fi) 结束当前正在执行的函数,并在跳出函数后暂停程序的执行。
(gdb) jump(j) 使程序从当前要执行的代码处,直接跳转到指定位置处继续执行后续的代码。
(gdb) quit (q) 终止调试。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值