使用GNUgdb调试Linux CC++可执行程序查看出错源代码、设置断点

使用GNUgdb调试Linux CC++可执行程序查看出错源代码、设置断点,第1张

gdb是GNU开源组织发布的一个强大的Linux程序调试工具,比图形化的调试工具更强大,主要来调试C/C++语言程序。

Debug 版本的可执行程序包含调试信息,用于程序员调试程序。

Release 版本的可执行程序往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以方便用户使用。

用gcc/g++编译时,要加上-g选项生成debug版本的可执行程序,否则就无法使用gdb调试了。

r 表示开始run, 如果在运行的过程中发生了错误,比如segmentation fault,可以查看此时的出错源代码:

通过b或者break设置断点,断点的设置可以通过函数名、行号、文件名+函数名、文件名+行号以及偏移量、地址等进行设置。

比如在function Peer_auto_save上设置断点,在peerc的第136行设置断点:

从断点处继续运行

退出gdb

Gdb调试

注意:在Gcc编译选项中一定要加入

–g

退出GDB:quit

Ctrl+d

调试过程:

1

查看文件

命令:

(gdb)

l

命令:(gdb)

b

行号

注:到第17行停止,并没有执行17行

3

查看断点情况

info

b

4

运行代码

r

命令:

(gdb)

r

(也可以指定行开始运行,在r后面加上行号)

5

查看变量值

p

命令:(gdb)

p

变量名

6

设置监视点:

watch

z

(变量名)

也可以是复杂的表达式

7

单步运行

命令:(gdb)

n

(逐过程)

8逐步,会进入函数

命令:(gdb)

s

9条件断点

将正常断点转变为条件断点:condition

如:condition

1

i

==

10

只有当满足条件i

==

1时,才会在断点1处暂停

10

恢复程序运行

c

命令:

(gdb)

c

(程序就会运行,如果没有断点,就运行剩下部分,如果有断点,就会运行到下一个断点)

11

去除断点

clear

line_number

clear

filename:line_number

12

help

121

help找出类别

122help从列表中

以上就是关于使用GNU/gdb调试Linux C/C++可执行程序查看出错源代码、设置断点全部的内容,包括:使用GNU/gdb调试Linux C/C++可执行程序查看出错源代码、设置断点、linux入门基础(四)Gdb调试程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/9595486.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存