Linux下 gdb-10.2 源码编译

一、环境:

PC操作系统:Ubuntu 21.04 LTS
GCC 版本:gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1)
要编译的GDB版本:gdb-10.2

GDB源码下载地址:http://ftp.gnu.org/gnu/gdb/

二、配置及编译
1、下载后解压

在这里插入图片描述

2、配置configure

为了不搞乱源码,新建一个 build 文件夹用于配置及编译。
在这里插入图片描述
这里我配置了编译输出的目录为 build目录下的output,我不打算把系统的gdb替换掉,所以最后make install的时候就安装到这个目录下就好了。
注:如果要替换系统的,则需要 加上 sudo 。

3、编译

执行 make
在这里插入图片描述
问题一: makeinfo: not found
安装命令: sudo apt install texinfo
在这里插入图片描述

4、安装

在这里插入图片描述
安装结果:
在这里插入图片描述
在这里插入图片描述

三、测试
1、测试代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
    char *str;

    str = (char *)malloc(10);
    
    if (NULL != str) {
        memset(str, 0, 10);
        sprintf(str, "%s", "123456789");
        printf("1 - str = %s\n", str);
        free(str);
        free(str);//double free,此处应段错误
        printf("2 - str = %s\n", str);
    }

    while (1);
    
    return 0}
2、测试代码编译及运行

在这里插入图片描述

3、gdb使用测试

在这里插入图片描述

arm-linux-gnueabihf-gdb是用于在ARM架构上进行调试的GNU调试器。编译它需要执行以下步骤: 1. 确认已经安装了arm-linux-gnueabihf交叉编译工具链和依赖项。这些可以通过在Linux系统中使用包管理器安装,例如apt或yum。具体的工具链和依赖项可以根据您的操作系统和软件包管理器的不同而有所变化。 2. 下载GDB源代码。您可以从GNU官方网站(http://www.gnu.org/software/gdb/)下载最新版本的源代码。解压缩下载的压缩包到合适的目录。 3. 进入源代码目录并执行配置命令。在命令行中,导航到解压缩后的源代码目录,然后运行以下命令: ``` ./configure --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf ``` 4. 编译源代码。配置命令完成后,可以直接运行以下命令进行编译: ``` make ``` 5. 安装编译后的二进制文件。编译成功后,可以运行以下命令将二进制文件安装到指定的目录中: ``` make install DESTDIR=/path/to/install/directory ``` 替换“/path/to/install/directory”为您希望安装arm-linux-gnueabihf-gdb的目录。 6. 设置环境变量。为了能够在命令行中直接访问新安装的arm-linux-gnueabihf-gdb,您需要将它所在的目录添加到系统的PATH环境变量中。例如,您可以在~/.bashrc文件中添加以下行: ``` export PATH=/path/to/install/directory:$PATH ``` 然后运行以下命令以使更改生效: ``` source ~/.bashrc ``` 完成以上步骤后,您应该成功编译和安装了arm-linux-gnueabihf-gdb。您可以在命令行中使用它来进行ARM架构的调试。请记住,编译和安装软件时可能会遇到依赖项缺失或配置错误等问题,您可能需要根据具体的情况进行适当的调整和解决。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hrx-@@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值