【问题标题】:Is it possible to add debug symbols to an existing C++ .so (shared library)?是否可以将调试符号添加到现有的 C++ .so(共享库)?
【发布时间】:2021-03-03 16:03:01
【问题描述】:

我有一个工作项目,它依赖于一个非常大的、继承的 C++ 共享库,该库在发布时没有调试符号,而且我们只有 .h 包含。通常,需要查看这些函数如何作用于传入的值,但 gdb 中的调试会跳过这些函数。我是否可以自己构建源代码以确保存在调试符号?我尝试将-g 标志添加到我的Makefile 中的CXXFLAGS 部分,但似乎没有这样做。任何帮助或见解将不胜感激。

【问题讨论】:

  • 为了生成调试符号,您需要完整的源代码。
  • @Cpt_Shiner 我认为您的两个选择是从版本的供应商处获取您的版本的调试符号(使用调试版本进行更好的调试)或获取源代码并重新编译(这意味着 cpp 文件,不仅是标题)。

标签: c++ makefile gdb g++ .so


【解决方案1】:

我是否可以自己构建源代码以确保调试符号存在?

如果您来源,那么是的。

我尝试将 -g 标志添加到我的 Makefile 中的 CXXFLAGS 部分,但似乎没有这样做。

假设“我的 Makefile”是指构建库的 Makefile,而不是构建应用程序的 Makefile,那么添加 -g 就足够了。

“似乎没有这样做”可以表示任何数量的事情。

  • 您是否将-g 添加到正确的位置?
  • 构建成功了吗?
  • 您是否安排应用程序使用新建的库?

您的问题中没有足够的信息来猜测。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    相关资源
    最近更新 更多