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
...