【问题标题】:moving core dump from Unix production environment to other development Unix environment将核心转储从 Unix 生产环境移动到其他开发 Unix 环境
【发布时间】:2012-06-05 06:40:28
【问题描述】:

我们的一个应用程序是在生产中生成核心。然而,生成的核心并没有多大帮助,因为大多数变量值都显示为已优化/它不包含太多调试信息。

当我们将核心从生产环境移动到开发环境时,gdb 无法成功加载它。我认为这是由于在生产中依赖于其他库。

请告诉我如何在不移动剩余依赖库的情况下将核心从生产环境迁移到开发环境。

提前致谢

【问题讨论】:

  • 如果开发环境的系统库与生产环境的系统库不匹配,那么gdb会发出警告,可能无法解码核心文件。

标签: c++ coredump


【解决方案1】:

如果开发环境的系统库与生产环境的系统库不匹配,则gdb会发出警告,并可能无法解码核心文件。您应该在您的程序上运行 ldd 以找到它所依赖的库列表,并将这些库从您的生产环境复制到您的开发环境。

将依赖库复制到一个模仿生产环境根目录结构的目录结构中通常很方便(如果你愿意的话,一个假根目录)。然后您可以使用gdb 命令set solib-absolute-prefix 将其设置为这个假根的路径,以便找到库。

这个问题似乎是相关的,如果不是 another question 的重复。

【讨论】:

  • 谢谢,但是这个副本需要大量的手动操作。我曾经读过我们可以使用 gdb 命令核心包来打包这样的库。你知道这样的命令吗?
  • @NoName:我添加了一个指向另一个问题的链接,它应该可以帮助你。
猜你喜欢
  • 2020-05-14
  • 1970-01-01
  • 2012-03-13
  • 2018-06-04
  • 1970-01-01
  • 2015-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多