首页 > 后端开发 > C++ > 如何可靠地调试不同 Linux 发行版上生成的核心文件?

如何可靠地调试不同 Linux 发行版上生成的核心文件?

Linda Hamilton
发布: 2024-12-06 18:12:14
原创
822 人浏览过

How Can I Reliably Debug Core Files Generated on Different Linux Distributions?

调试不同发行版上生成的核心文件

跨发行版的核心文件意义

调试在开发环境以外的 Linux 发行版上生成的核心文件时,堆栈跟踪可能不可靠。动态链接的可执行文件使用共享库,根据发行版的不同,共享库可能有不同的实现。 GDB 将尝试使用开发环境中可用的库版本,该版本可能与客户系统上的版本不同。因此,堆栈地址可能映射到不同的例程或位于指令内,这表明堆栈跟踪不准确。

解决意义问题

要获取有意义的堆栈跟踪,请从以下位置获取所有共享库客户的系统并在 GDB 中设置 solib-absolute-prefix 路径。这将重定向 GDB 以使用客户的库进行符号解析。

调试方法

建议客户:

    使用 -g -O2 编译以创建调试二进制文件 (myexe.dbg)。
  1. 删除调试信息 (strip -g myexe.dbg) 以创建生产二进制文件 (myexe)。
  2. 将 myexe 分发给客户。
  3. 在调试客户生成的核心文件时使用 myexe.dbg。
此方法提供完整的符号信息,无需向客户发送调试二进制文件或暴露敏感源代码代码。

调试资源

有关进一步的调试见解,请考虑参考以下资源:

  • Linux:

      Leonid 的“Linux 调试工具” Evdokimov
    • 《掌握 Linux 中的系统调试》作者:Paul Turner
  • Solaris:

      " Solaris 系统和性能调优》,作者:Mike Wilson
    • Mark Burgess 着的《实用 Solaris 性能故障排除和调优》
这些书提供了在 Linux 和 Solaris 上进行调试的真实示例和高级技术,包括装配分析。

以上是如何可靠地调试不同 Linux 发行版上生成的核心文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板