首页  >  文章  >  后端开发  >  为什么GDB在Ubuntu中调试C异常时会报丢失文件错误?

为什么GDB在Ubuntu中调试C异常时会报丢失文件错误?

DDD
DDD原创
2024-11-11 00:29:02513浏览

Why Does GDB Report a Missing File Error When Debugging C   Exceptions in Ubuntu?

GDB 显示库源代码丢失文件错误

使用 GDB 调试 C 异常时,用户可能会遇到错误消息,提示缺少文件文件,例如“raise.c”的“没有这样的文件或目录”。即使正确处理异常,也会出现此错误。

解决方案:获取库源代码和调试信息

要解决此问题,需要获取相关库(在本例中为 libc6)的源代码和调试信息。 Ubuntu 为此提供了 debuginfo 软件包。

调试 C 库源代码的步骤:

  1. 安装 libc6 的 debuginfo 版本: sudo apt install libc6- dbg.
  2. 配置包系统下载源码包:

    • 安装 dpkg-dev: sudo apt install dpkg-dev.
    • 取消注释 "如有必要,请在 /etc/apt/sources.list 中添加 deb-src" 行。
  3. 下载源代码:

    • 创建目录:/ opt/src.
    • 下载源代码:apt source libc6.
    • 注意源代码目录(例如/opt/src/glibc-2.23)。
  4. 调整GDB的源代码目录:

    • 使用(gdb)信息源识别预期的源代码目录。
    • 将源代码移动或符号链接到预期位置,或设置替代路径: (gdb) set replacement-path /expected-location /actual-location.

一旦完成这些步骤,GDB 将能够访问正确的源代码并提供异常的准确调试信息。

以上是为什么GDB在Ubuntu中调试C异常时会报丢失文件错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn