分析共享对象的核心文件

时间:2010-08-17 12:25:07

标签: linux debugging shared-libraries

测试:

[1] 可执行文件中创建0除以使用优化(O2)和调试符号进行编译,从而生成核心。

[2] 共享对象帽子中创建0除以使用优化(O2)和调试符号进行编译,从而生成核心。

结果:

[首先] 分析[1]生成的核心成功,可以在GDB / Totalview中看到粉碎的确切位置。

[Second] 分析由[2]生成的核心没有成功,十六进制数字位置是粉碎的输出。

有人能告诉我如何才能成功[2]?

2 个答案:

答案 0 :(得分:1)

使用ldd检查是否可以找到您的共享对象。

如果没有,请尝试使用shell变量LD_LIBRARY_PATH设置其路径,然后重试gdb <executable> core

另一种选择是编辑config /etc/ld.so.conf并运行ldconfig。

答案 1 :(得分:1)

解决了, 我正在打开这样的核心文件:

  1. gdb core core-file-name
  2. 文件位置二进制
  3. 然后加载了二进制符号,但不是任何共享对象!!!!!

    走这条路:

    1. gdb -c core-file-name location-of-binary
    2. 这导致二进制符号被加载但是也要加载共享对象符号!

      感谢您的帮助。