8.2. 准备用于调试的程序
使用调试信息编译程序
要使用 GNU Debugger 读取的调试信息编译 C 程序,请确保 gcc 编译器使用 -g 选项运行:
$ 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
...