首页 > 其他分享 >gdb安装调试,多系统下的安装使用(Ⅳ)

gdb安装调试,多系统下的安装使用(Ⅳ)

时间:2024-07-06 20:30:09浏览次数:11  
标签:代码 gdb 指令 下载 2.1 安装 调试

1.gdb是什么?为什么要熟悉gdb调试?

         gdb(GNU调试器)是一个强大的调试工具,允许开发者在程序运行时检查和修改变量的值,单步执行代码,设置断点,以及查看程序的状态。可以比较偏激的说如果是关注于linux下的开发和研究,基本上离不开gdb调试的。

2.在各平台下的gdb下载和安装方式

2.1:window平台的下载方式:

        在windows平台中,直接登入官方的文档---https://www.sourceware.org/gdb/download/(页面如图2.1.1所示)。注意:此处需要选择和自己系统对应的版本下载但一般选择最新的1-2个版本即可,下载完成以后将安装包放置在桌面的下载文档中即可。

(图2.1.1)

2.2:Linux和Ubuntu的下载方式:

        在linux和Ubuntu操作系统上安装gdb调试工具时,多使用命令行输入指令。并且如果是初次使用需要更新下载源(避免不必要的麻烦)

2.2.1 :下载源更新:

        ps:在Linux和Ubuntu操作系统中,由于下载便捷是优势之一。但切记要开启root权限,不然在一些情况下会出现输入指令正确,但不执行的情况(所以不如在下载的过程中都开启root权限)。开启方法如下:

1.打开终端,输入:  su  ,然后输入密码从而开启root权限(如图2.1.2)

2.打开终端,在要输入的指令前添加:sudo 字段开启root权限(如图2.1.2)

        此处我们选择第二种方式,打开终端指令,输入: sudo apt update ,从而更新系统下载源(图2.1.3)

(2.1.2) 

(2.1.3) 

2.2.2:gdb下载(此处效果是根据Ubuntu来展示的):

        当完成下载源更新以后,直接输入 sudo apt install gdb 安装gdb工具,这里系统会要求你输入yes/no来确认是否下载,输入yes即可(图2.1.4)。(这里因为已经是最新版本了所有没有这一步)

(2.1.4) 

3.常用的使用方法和指令:

3.1:测试项目的创建:

        当在虚拟机上安装完成gdb调试以后,接下来对于基本命令进行解答
        在开始对于基本的gdb调试指令的介绍前,先在Ubuntu操作系统中创建一个名为 test.c的文件。

        接下来我们需要编写一段c语言代码在文档中,这里我们编写一个非常简单的能实现依次输出1234数字功能的代码,然后使用gdb来进行调试。代码和效果图如下:

#include<stdio.h>


int main()
	{
		int arr[4] = {1,2,3,4};
		int i=0;
		for(i=0;i<4;i++)
		{
			printf("%d\n",arr[i]);
		}
		return 0;
	}
	

        接下来开始使用gdb调试 ,开启gdb调试,预编译的语句是:gcc +(要运行的代码所在文件名称)。这里我们的代码名词叫test.c.所以输入gcc test.c进行预编译,然后接下我们就需要让系统输出结果,指令格式为:./a.out。  这样最后就输出想要的结果:

3.2:GDB调试基本指令:

 3.2.1:r(程序运行):

        run指令但直接输入r也可以实现同样的效果:该指令是让程序在GDB调试模式下运行起来。效果如下:
        这里r指令,仅仅只是让程序运行起来。如果程序存在错误,那么会直接报错出来

3.2.2:l(显示代码) :

         l指令本质上和Linux操作系统中的cat指令是一样的,对于代码进行读取的作用。但需要关注的一个点是,如果运行l指令,不给出行号限定的话。系统只会一次输出20行的代码。具体效果如下:(仔细看两端l指令的表示效果)

3.2.3:b(断点)/info(查看断点情况)

        在进行大工程,多线程的开发过程中。在代码出现bug,修复的过程中需要大量的通过断点的方式来确认各段代码的效果。那么这里的b(break)指令就能满足此需求。格式为,b+(所需要设置断点的代码行数),最后我们再用info指令来查看断点的信息。具体效果如下:

总结:

         本章节详细介绍了,GDB调试的作用和意义,并且介绍了基础的GDB调试的命令行指令的使用。如果对于GDB调试命令行指令还想有更深入的了解,可以关注私信我。会长期更新。
        对于Ubuntu,linux操作系统会继续连续的更新分享。后续也会对于在此操作系统中对各类嵌入式开发元器件的调试等进行分享


 

标签:代码,gdb,指令,下载,2.1,安装,调试
From: https://blog.csdn.net/m0_74962389/article/details/140152358

相关文章

  • SPSS 27安装包免费下载及安装教程
    下载链接:https://fcnkteazjvur.feishu.cn/docx/DnqLdP7LioyivRxgbACcW4U6n8g1.把资源从网盘下载到电脑上面,然后右键选择解压到当前文件夹(7z、zip、exe均为压缩格式)2.找到解压后的文件SPSS27,双击打开文件夹。3.右键点击SPPS2764bit.exe,选择以管理员身份运行。4.点击......
  • python和pycharm安装
    一、python和pycharm的作用Python是一种跨平台的计算机程序语言。Python是我们进行项目开发而使用的一门计算机语言,通俗来说就是编写代码,编写完代码之后,我们就需要运行,不然代码是死的,机器是无法识别的,这时我们需要运行Python代码的运行环境和工具。PyCharm带有一整套......
  • CASS 11.0安装教程
    下载链接:https://fcnkteazjvur.feishu.cn/docx/Vz92dQpdAodmVmxq4qVcirdnnRe1.鼠标右键解压到“CASS11.0” 2.选中Setup,鼠标右键选择“以管理员身份运行”3.点击“自定义安装”4.选择软件安装路径,需要选择一下版本5.软件正在安装,请耐心等待6.点击“安装完成......
  • wsl安装Linux系统到指定位置
    默认情况下,wsl安装的系统,会安装到系统C盘,长期下去,很容易把C盘的空间消耗完,从而影响系统的正常运行,所以我建议是将wsl所有的系统都安装到其它磁盘中,便于维护。1、导出镜像通过wsl-l-v查看当前已安装的系统版本。导出到当前目录位置,也可以指定目录位置。wsl--......
  • IDE ATA/ATAPI 控制器是一个硬件设备的接口,用于连接硬盘驱动器、光驱和其他存储设备到
    IDEATA/ATAPI控制器是一个硬件设备的接口,用于连接硬盘驱动器、光驱和其他存储设备到计算机的主板。关于其驱动的安装与未安装的区别、重要性和价值可以从以下几个方面来理解:区别:已安装驱动:正常工作:安装了适当的驱动程序后,IDEATA/ATAPI控制器能够正确地识别和管理连接的......
  • EtherCAT转Profinet网关配置说明第一讲:配置软件安装及介绍
     网关XD-ECPNS20为EtherCAT转Profinet协议网关,使EtherCAT协议和Profinet协议两种工业实时以太网网络之间双向传输IO数据。适用于具有EtherCAT协议网络与Profinet协议网络跨越网络界限进行数据交换的解决方案。本网关通过上位机来进行配置。首先安装上位机软件一、上位机......
  • kvm使用安装
    1.安装前检查1.1.查看CPU是否支持VTcat/proc/cpuinfo|egrep'vmx|svm' 关防火墙和selinuxsystemctlstopfirewalldsetenforce0配置yum源先备份整理cd/etc/yum.repos.dmkdir-pbakmvCentOS*./bak配置阿里云yum源curl-o/etc/yum.repos.d/CentOS-Bas......
  • C++开发调试工具:GDB调试,windebug调试,adb调试
    我们在C++开发过程中时常避免不了要调试追踪,一下介绍最主流的三种调试工具:一.GDB调试1.coredump文件:coredump文件是程序异常时系统产生的错误日志文件,即核心转储文件;编译一个debug程序,必须是debug版本,否则无法产生coredump文件;编译命令:g++test.cpp-omytest-g,必须要......
  • 从零开始实践大模型 - 安装系统
    本文地址:blog.lucien.ink/archives/548本章节将介绍在面向深度学习时,推荐安装的系统以及对应的安装选项。系统选择目前主流操作系统有Linux、macOS、Winodws,如果不考虑日常当作个人电脑来使用的话,强烈建议使用无图形化界面的Linux,因为图形化界面会占用一定的显存(虽然也有......
  • centos7服务器yum安装MySQL数据库,以及报错的解决方案
    文章目录1、数据库能做什么?2、数据库由来3、数据库-系统结构4、版本二、部署1、官网地址3.点击[DOCUMENTATION](https://dev.mysql.com/doc/)4.mysql的yum仓库[UsingtheMySQLYumRepository](https://dev.mysql.com/doc/refman/8.4/en/linux-installation-yum-repo......