将核心转储从Unix生产环境转移到其他开发Unix环境

时间:2012-06-05 06:40:29

标签: c++ coredump

我们的一个应用是生产核心。但是生成的核心没有多大帮助,因为大多数变量值都显示为优化/它不包含很多调试信息。

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

请告诉我们如何将核心从生产转移到开发环境,而无需移动剩余的依赖库。

提前致谢

1 个答案:

答案 0 :(得分:1)

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

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

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