GDB常用的调试指令

生成符合GDB调试要求的可执行文件

root@AliCloud:~/c++# gcc demo.c -o demo.exe -g
root@AliCloud:~/c++# gdb demo.exe

启动GDB调试器

        调用GDB调试器的方法有4种:

(1)直接使用gdb指令启动GDB调试器,需启动后借助 file 或者 exec-file 命令指定

root@AliCloud:~/c++# gdb

(2)调试尚未执行的程序

root@AliCloud:~/c++# gdb demo.exe
root@AliCloud:~/c++# gdb demo.exe --silent     // 加上 --silent可以屏蔽条款信息。

(3)调试正在执行的程序

root@AliCloud:~/c++# ./demo.exe
    <程序会在这里一直运行,重开个进程
root@AliCloud:~/c++# pidof demo.exe
9877
调试方法:
1) gdb attach PID
2) gdb 文件名 PID
3) gdb -p PID

分离过程:
       当调试完成后,如果想令当前程序进行执行,消除调试操作对它的影响,需手动将 GDB 调试器与程序分离,步骤分两步:

  1. 执行 detach 指令,使 GDB 调试器和程序分离;
  2. 执行 quit(或 q)指令,退出 GDB 调试。

(4)调试执行异常崩溃的程序

   

调试中查看数组指定区域的元素(这是我在Clion中最想用的功能了,数组不能查看确实麻烦):

(gdb) print first@len

其中,参数 first 用于指定数组查看区域内的首个元素的值;参数 len 用于指令自 first 元素开始查看的元素个数。

 

GDB调试器启动可用参数

参 数功 能
-pid number
-p number
调试进程 ID 为 number 的程序。
-symbols file
-s file
仅从指定 file 文件中读取符号表。
-q
-quiet
-silent
取消启动 GDB 调试器时打印的介绍信息和版权信息
-cd directory以 directory 作为启动 GDB 调试器的工作目录,而非当前所在目录。
--args 参数1 参数2...

向可执行文件传递执行所需要的参数。

GDB常用的调试指令

调试指令作 用
(gdb) break xxx
(gdb) b xxx
在源代码指定的某一行设置断点,其中 xxx 用于指定具体打断点的位置。
(gdb) run
(gdb) r
执行被调试的程序,其会自动在第一个断点处暂停执行。
(gdb) continue
(gdb) c
当程序在某一断点处停止运行后,使用该指令可以继续执行,直至遇到下一个断点或者程序结束。
(gdb) next
(gdb) n
令程序一行代码一行代码的执行。
(gdb) print xxx
(gdb) p xxx
打印指定变量的值,其中 xxx 指的就是某一变量名。
(gdb) list
(gdb) l
显示源程序代码的内容,包括各行代码所在的行号。
(gdb) quit
(gdb) q
终止调试。

 

其他更全的可以参考这篇学习文档: http://c.biancheng.net/view/8252.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值