文档首页 > > 移植指南> 安装GDB

安装GDB

分享
更新时间:2020/08/31 GMT+08:00

介绍

简要介绍

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。

语言:C、C++

一句话概述:UNIX下的程序调试工具

建议的版本

建议使用版本为“gdb-7.6.1”

环境要求

云服务器要求

本文以云服务器KC1实例测试,云服务器配置如表1所示。

表1 云服务器配置

项目

说明

规格

kc1.xlarge.2 | 4vCPUs | 8GB

磁盘

系统盘:高IO(40GB)

操作系统要求

操作系统要求如表2所示。

表2 操作系统要求

项目

版本

下载地址

CentOS

7.5

在公共镜像中已提供。

Kernel

4.14.0

在公共镜像中已提供。

获取软件包

https://ftp.gnu.org/gnu/gdb/ 提供GDB各版本的源码压缩包,可以直接下载。

安装

本文以“gdb-7.6.1”版本为例,下载源码,并编译安装。

要求gcc的版本为“4.8.5”

  1. 下载GDB的依赖包termcap的源代码。

    wget https://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz

  2. 解压termcap源码。

    tar -zxvf termcap-1.3.1.tar.gz

  3. 编译安装termcap。

    cd termcap-1.3.1/

    ./configure && make && make install

  4. 下载GDB源码。

    cd ~

    wget https://ftp.gnu.org/gnu/gdb/gdb-7.6.1.tar.gz

  5. 解压GDB源码

    tar -zxvf gdb-7.6.1.tar.gz

  6. 编译安装GDB。

    cd gdb-7.6.1/

    ./configure && make && make install

  7. 查看GDB安装路径。

    find / -name "gdb*" |grep bin

    回显信息如下,GDB安装路径为“ /usr/local/bin/gdb”
    /usr/bin/gdbus
    /usr/local/bin/gdbserver
    /usr/local/bin/gdb

  8. (可选)建立软链接。

    要求GDB的安装路径为“ /usr/bin/gdb”,如果上一步查询到的安装路径为此路径,则不需要执行。

    cd /usr/local/bin

    ln ./gdb /usr/bin/gdb

运行和验证

  1. 查看GDB是否安装成功。

    gdb --version

    回显信息如下,则GDB安装成功:
    GNU gdb (GDB) 7.6.1
    Copyright (C) 2013 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "aarch64-unknown-linux-gnu".
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>.

  2. 创建待调试程序“bugging.c”

    vim bugging.c

    将如下内容拷贝到“bugging.c”文件中。
    #include<stdio.h>
     
    static char buff [256];
    static char* string;
    int main ()
    {
        printf("please input a string: ");
        gets(string);
        printf("your string: %s\n", string);
        return 0;
    }

  3. 生成可执行文件,注意加参数-g。

    gcc -o bugging -g bugging.c

  4. 执行。

    ./bugging

    提示输入字符串,输入“hello”,回显信息如下:
    please input a string: hello
    Segmentation fault

  5. GDB调试bugging程序。

    gdb bugging

    按照如下步骤进行调试。

    1. 运行gdb bugging命令,装入bugging可执行文件。
    2. 执行装入的bugging命令run
    3. 使用where命令查看程序出错的地方。
    4. 利用list命令查看调用gets函数附近的代码。
    5. 在报错处使用b或者break命令打断点。
    6. 通过info break查看断点信息。
    7. 通过print打印变量。

    回显信息如图1图2所示,表示GDB能够正常运行。

    图1 回显信息(1)
    图2 回显信息(2)

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问