8.2. 准备进行调试的程序

使用调试信息编译程序

要使用 GNU Debugger 读取的调试信息编译 C 程序,请确保使用 -g 选项运行 gcc 编译器:

$ scl enable devtoolset-11 'gcc -g -o output_file input_file...'

同样,使用调试信息编译 C++ 程序:

$ scl enable devtoolset-11 'g++ -g -o output_file input_file...'

例 8.1. 使用调试信息编译 C 程序

考虑名为 fibonacci.c 的源文件,其内容如下:

#include <stdio.h>
#include <limits.h>

int main (int argc, char *argv[]) {
  unsigned long int a = 0;
  unsigned long int b = 1;
  unsigned long int sum;

  while (b < LONG_MAX) {
    printf("%ld ", b);
    sum = a + b;
    a = b;
    b = sum;
  }

  return 0;
}

使用 Red Hat Developer Toolset 中的 GCC 使用 GNU Debugger 的调试信息,在命令行中编译该程序:

$ scl enable devtoolset-11 'gcc -g -o fibonacci fibonacci.c'

这会在当前工作目录中创建一个名为 fibonacci 的新二进制文件。

安装现有软件包的调试信息

要为系统中已安装的软件包安装调试信息:

# debuginfo-install package_name

请注意,必须安装 yum-utils 软件包,以便您的系统中有 debuginfo-install 工具。

例 8.2. 为 glibc 软件包安装调试信息

安装 glibc 软件包的调试信息:

# debuginfo-install glibc
Loaded plugins: product-id, refresh-packagekit, subscription-manager
--> Running transaction check
---> Package glibc-debuginfo.x86_64 0:2.17-105.el7 will be installed
...