gdb是什么意思(GDP的真正含义)

最近,该公司带来了几名实习生,当他们接受培训时,他们发现大多数人从未使用过GDB或不知道GDB。经过培训,我做了这个总结,分享给大家。

gdb是什么意思(GDP的真正含义)

GDB简介

不用调试器写程序最糟糕的情况是什么?编译时跪求不出错?或者在每行代码之间添加一个printf(“test”)语句来定位错误点?如你所知,不使用调试器写程序是不方便的。好在linux下调试很方便。大多数人使用集成调试器的IDE,但linux最著名的调试器是命令行形式的C/C++调试器GDB。然而,像其他命令行工具一样,DGB需要一些练习才能完全掌握它。在这里,让我们一起来学习GDB的基本情况和用法。

GDB 安装

Debian还是Ubuntu

1.$ sudo apt-get安装gdbArch Linux

1.$ sudo pacman-s gdb fedora、centos或RHEL:

1.$sudo yum install gdb如果在仓库里找不到可以从官网下载。

示例代码

gdb是什么意思(GDP的真正含义)

GDB简单使用

首先,您需要使用编译器的“-g”选项来编译程序,以便可执行程序可以通过GDB运行。

gdb是什么意思(GDP的真正含义)

使用以下语句开始调试:

1.交互式窗口:

gdb -tui [可执行程序名]

gdb是什么意思(GDP的真正含义)GD b-tui[可执行程序名]

使用“-TUI”选项在一个漂亮的交互式窗口中显示代码(所谓的“文本用户界面TUI”)。在这个窗口中,你可以用光标来操纵,同时在下面的GDB外壳中输入命令。

gdb是什么意思(GDP的真正含义)

2.别管命令了

例如,只需记住是以B开头的命令,键入B并按TAB键两次,就会看到所有以B开头的命令:

(gdb) b回溯中断bt不记得命令:

-h-列出所有命令类。

-help & lt;classname & gt-列出该类别下的所有命令。

3.设置断点:

行断点:break [行号] 函数断点:break [函数名] 条件断点:break[行号] if [条件]

gdb是什么意思(GDP的真正含义)行断点:break[行号]函数断点:break[函数名]条件断点:break[行号]if[条件]

当for循环50次时,程序停留在a++上,这样我们就可以避免手动执行50次。

tip1

记住函数的前缀就行了。您可以这样做:列出所有以make_

(gdb)b make _ & lt;按TAB键>:

tip2

调试C++程序时,存在同名函数。比如:

(gdb) b 'bubble( M-?

bubble(double,double) bubble(int,int)

(gdb) b '泡泡(

在C++中可以查看所有重载的函数和参数。(注:M-?和“按TAB键两次”意思相同)

4.检查断点信息

信息中断5。观察断点:

观察【变量】我们可以设置一个“观察断点”。当这个观察变量改变时,程序将停止。

gdb是什么意思(GDP的真正含义)

先在第7行设置断点,R运行程序,watch c观察变量C(注意程序运行后必须观察变量)。继续执行将在变量C的值发生变化的下一行停止:

gdb是什么意思(GDP的真正含义)

发现打印变量c的值已经改变。

gdb是什么意思(GDP的真正含义)

6.显示变量值:

p [变量]

gdb是什么意思(GDP的真正含义)p[变量]

7.显示所有局部变量:

info local

gdb是什么意思(GDP的真正含义)本地信息

8.显示变量的类型:

ptype [变量]

gdb是什么意思(GDP的真正含义)ptype[变量]

9.分步调试:

Step:缩写S Step调试可以进入函数体。

gdb是什么意思(GDP的真正含义)

10.运行下一条语句:

next

gdb是什么意思(GDP的真正含义)然后

继续该计划:

继续:缩写C

gdb是什么意思(GDP的真正含义)

执行到程序结束。

11.回溯功能:

Bt backtrace函数可以让我们知道程序是怎么到这个语句的(这里程序简单但不明显),检查函数栈。

gdb是什么意思(GDP的真正含义)

12.删除断点:

测试结束,删除断点:

delete [断点号]

gdb是什么意思(GDP的真正含义)删除[断点号]

13.退出广发银行

quit:简写q

gdb是什么意思(GDP的真正含义)退出:q的简称。

在下一篇文章中,我们将深入研究GDB。请注意。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。系信息发布平台,仅提供信息存储空间服务。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

本文来自网络,若有侵权,请联系删除,作者:丁楠远,如若转载,请注明出处:

发表回复

登录后才能评论