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
...
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.