iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >在Linux系统中使用GDB来调试C++程序的方法
  • 913
分享到

在Linux系统中使用GDB来调试C++程序的方法

2023-06-13 00:06:06 913人浏览 独家记忆
摘要

这篇文章主要讲解了“在linux系统中使用GDB来调试c++程序的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Linux系统中使用GDB来调试C++程序的方法”吧!安装GDB大多数的

这篇文章主要讲解了“在linux系统中使用GDB来调试c++程序的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Linux系统中使用GDB来调试C++程序的方法”吧!


安装GDB

大多数的发行版仓库中都有GDB

Debian 或 ubuntu

   

代码如下:

$ sudo apt-get install gdb

Arch Linux

   

代码如下:

$ sudo pacman -S gdb

Fedora,Centos 或 RHEL:

   

代码如下:

$sudo yum install gdb

如果在仓库中找不到的话,可以从官网中下载。
示例代码

当学习GDB时,最好有一份代码,动手试验。下列代码是我编写的简单例子,它可以很好的体现GDB的特性。将它拷贝下来并且进行实验——这是最好的方法。

   

代码如下:

#include <stdio.h>
   #include <stdlib.h>
   
   int main(int arGC, char **argv)
   {
       int i;
       int a=0, b=0, c=0;
       double d;
       for (i=0; i<100; i++)
       {
           a++;
           if (i>97)
               d = i / 2.0;
           b++;
       }
       return 0;
   }

GDB的使用

首先最重要的,你需要使用编译器的 “-g“选项来编译程序,这样可执行程序才能通过GDB来运行。通过下列语句开始调试:

   

代码如下:

$ gdb -tui [可执行程序名]

使用”-tui“选项可以将代码显示在一个漂亮的交互式窗口内(所以被称为“文本用户界面 TUI”),在这个窗口内可以使用光标来操控,同时在下面的GDB shell中输入命令。
在Linux系统中使用GDB来调试C++程序的方法

现在我们可以在程序的任何地方设置断点。你可以通过下列命令来为当前源文件的某一行设置断点。

   

代码如下:

break [行号]

或者为一个特定的函数设置断点:

   

代码如下:

break [函数名]

甚至可以设置条件断点

   

代码如下:

break [行号] if [条件]

例如,在我们的示例代码中,可以设置如下:

   

代码如下:

break 11 if i > 97


在Linux系统中使用GDB来调试C++程序的方法

    这样,程序循环97次之后停留在“a++”语句上。这样是非常方便的,避免了我们需要手动循环97次。

最后但也是很重要的是,我们可以设置一个“观察断点”,当这个被观察的变量发生变化时,程序会被停止。

   

代码如下:

watch [变量]

这里我们可以设置如下:

   

代码如下:

watch d

当d的值发生变化时程序会停止运行(例如,当i>97为真时)。

当设置断点后,使用"run"命令开始运行程序,或按如下所示:

  

代码如下:

r [程序的输入参数(如果有的话)]

gdb中,大多数的命令单词都可以简写为一个字母。

不出意外,程序会停留在11行。这里,我们可以做些有趣的事情。下列命令:

   

代码如下:

bt

回溯功能(backtrace)可以让我们知道程序如何到达这条语句的。
在Linux系统中使用GDB来调试C++程序的方法

    info locals

这条语句会显示所有的局部变量以及它们的值(你可以看到,我没有为d设置初始值,所以它现在的值是任意值)。

当然:
在Linux系统中使用GDB来调试C++程序的方法

   

代码如下:

p [变量]

这个命令可以显示特定变量的值,而更进一步:

   

代码如下:

ptype [变量]

可以显示变量的类型。所以这里可以确定d是double型
在Linux系统中使用GDB来调试C++程序的方法

既然已经到这一步了,我么不妨这么做:

   

代码如下:

set var [变量] = [新的值]

这样会覆盖变量的值。不过需要注意,你不能创建一个新的变量或改变变量的类型。我们可以这样做:

   

代码如下:

set var a = 0


在Linux系统中使用GDB来调试C++程序的方法

如其他优秀的调试器一样,我们可以单步调试:

   

代码如下:

step

使用如上命令,运行到下一条语句,有可能进入到一个函数里面。或者使用:

   

代码如下:

next

这可以直接运行下一条语句,而不进入子函数内部。
在Linux系统中使用GDB来调试C++程序的方法

结束测试后,删除断点:

   

代码如下:

delete [行号]

从当前断点继续运行程序:

   

代码如下:

continue

退出GDB:

   

代码如下:

quit

感谢各位的阅读,以上就是“在Linux系统中使用GDB来调试C++程序的方法”的内容了,经过本文的学习后,相信大家对在Linux系统中使用GDB来调试C++程序的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 在Linux系统中使用GDB来调试C++程序的方法

本文链接: https://www.lsjlt.com/news/263823.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 在Linux系统中使用GDB来调试C++程序的方法
    这篇文章主要讲解了“在Linux系统中使用GDB来调试C++程序的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Linux系统中使用GDB来调试C++程序的方法”吧!安装GDB大多数的...
    99+
    2023-06-13
  • 在Linux中怎么使用gdb调试C程序
    这篇文章主要为大家展示了“在Linux中怎么使用gdb调试C程序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在Linux中怎么使用gdb调试C程序”这篇文章吧。无论多么有经验的程序员,开发的任...
    99+
    2023-06-16
  • Linux系统下如何使用GDB调试程序
    本文将为大家详细介绍“Linux系统下如何使用GDB调试程序”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Linux系统下如何使用GDB调试程序”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容...
    99+
    2023-06-28
  • Linux系统中gdb程序调试工具怎么用
    这篇文章主要为大家展示了“Linux系统中gdb程序调试工具怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统中gdb程序调试工具怎么用”这篇文章吧。  一、常规调试  gdb是...
    99+
    2023-06-13
  • linux中怎么使用gdb调试程序
    在Linux中使用gdb调试程序,可以按照以下步骤进行操作:1. 在命令行中编译你的程序时,加上`-g`选项,以便生成调试信息。例如...
    99+
    2023-09-13
    linux
  • Linux程序调试工具gdb怎么使用
    这篇文章主要介绍“Linux程序调试工具gdb怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux程序调试工具gdb怎么使用”文章能帮助大家解决问题。gdb是GNU开源组织发布的一个强大...
    99+
    2023-06-27
  • Linux下怎么使用gdb调试go程序
    在golang的开发过程中,我们常常会遇到需要调试问题的情况。这时,我们需要工具来辅助我们进行调试。在golang中,最常用的调试工具就是gdb了。本文将介绍如何在Linux操作系统下安装和配置gdb。一、什么是gdb?gdb是一款可以在多...
    99+
    2023-05-14
  • 在Centos7中使用vscode和gdb调试PG插件的方法
    目录安装vscodevscode中gdb调试调试动态库调试程序识别需要attach的PG进程安装vscode sudo rpm --import https://packages.m...
    99+
    2024-04-02
  • 如何在Linux系统上调试Java程序?
    在Linux系统上调试Java程序是Java开发者经常遇到的问题之一。本文将介绍如何在Linux系统上使用常见的调试工具来诊断和解决Java程序中的错误。 一、使用命令行调试器 1.1 启动调试模式 在Linux系统上调试Java程序的第一...
    99+
    2023-07-29
    linux leetcode windows
  • 在Linux中怎么使用unixbench来测试测试系统性能
    这篇文章主要介绍“在Linux中怎么使用unixbench来测试测试系统性能”,在日常操作中,相信很多人在在Linux中怎么使用unixbench来测试测试系统性能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-06-12
  • 在Linux系统中使用LFTP的方法
    这篇文章主要讲解了“在Linux系统中使用LFTP的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Linux系统中使用LFTP的方法”吧!安装Lftp在运行lftp之前,我们需要确定它...
    99+
    2023-06-13
  • Visual Studio 2022使用MinGW来编译调试C/C++程序的图文教程
    目录一、创建项目二、配置CMake三、配置调试Visual Studio的新版本已经可以像VSCode一样创建CMake项目了,但是默认的情况下是使用的Visual Studio编译...
    99+
    2022-11-13
    Visual Studio 2022调试C/C++程序 Visual Studio 2022 C++程序
  • 如何在Linux系统中使用Python日志进行调试?
    在Linux系统中,Python日志是一种非常重要的调试工具,能够帮助程序员快速定位程序中的问题。Python的logging模块提供了强大的日志功能,使得开发者可以在程序中灵活地记录各种信息,包括错误、警告、调试信息等等。在本文中,我们将...
    99+
    2023-08-23
    日志 npm linux
  • c语言程序调试的方法是什么
    C语言程序调试的方法主要有以下几种:1. 打印调试信息:在程序中插入printf语句,输出程序执行过程中的变量值,以便观察程序执行的...
    99+
    2023-10-12
    c语言
  • c语言调试程序的方法是什么
    C语言调试程序的方法主要有以下几种:1. 打印调试信息:在代码中添加printf语句,输出变量的值或程序执行到某个位置的信息,以便检...
    99+
    2023-10-18
    c语言
  • 数据库在C++程序中的使用方法
    本篇内容主要讲解“数据库在C++程序中的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“数据库在C++程序中的使用方法”吧!栈在编写代码时,堆栈是最常用的数据结构。它的概念简单,编写也比较...
    99+
    2023-06-17
  • Dev-C++调试方法的具体使用
    目录写在前面具体步骤0. 确定编译器1. 开启调试模式2. 代码调试写在前面 已经弃坑Dev-C++有一段时间了,但作为一款轻量且新手友好的IDE,它往往是入门C/C++以及刷算法题...
    99+
    2024-04-02
  • Linux系统中wget的使用方法
    这篇文章主要介绍“Linux系统中wget的使用方法”,在日常操作中,相信很多人在Linux系统中wget的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux系统中wget的使用方法”的疑惑有所...
    99+
    2023-06-12
  • 在Linux系统中使用Fish Shell的方法介绍
    本篇内容主要讲解“在Linux系统中使用Fish Shell的方法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在Linux系统中使用Fish Shell的方法介绍”吧!安装以及配置Linu...
    99+
    2023-06-12
  • XP系统下系统程序损坏怎么办?使用Qfixapp.exe来修补损坏系统程序的操作方法
      WinXP的系统程序经常容易损坏,因此微软提供了一些快速修补程序的工具,Qfixapp.exe就是其中之一,这款软件可以提供简易的程序修补方式,不过很少人懂得使用它。下面小编就为大家图文讲解WinXP下如何借助Qfi...
    99+
    2023-06-13
    XP系统 系统程序 Qfixapp.exe Qfixapp 程序 系统 损坏 XP
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作