【问题标题】:GDB - step in to statically linked libstdc++GDB - 进入静态链接的 libstdc++
【发布时间】:2014-10-23 18:34:45
【问题描述】:

由于超出此问题范围的原因,我必须将 libstdc++ 静态链接到我的可执行文件。实际的缺点是现在 GDB 不能进入 stdlib 符号。当我使用我的可执行 GDB 的共享链接变体时,向我显示随附的源文件没有问题(在我通过 apt-get 在 ubuntu 下安装源包之后,它安装在 /build 下)

在 Ubuntu (14.04) 下,当 libstdc++ 静态链接到 GDB 中的可执行文件时,我如何才能进入它?

【问题讨论】:

  • 恐怕您需要带有调试符号的静态 stdc++ 库。我不知道对于 ubuntu 是否有诸如静态库的单独调试符号包之类的想法。

标签: c++ gdb libstdc++


【解决方案1】:

Ubuntu 包libstdc++6-4.8-dbg/usr/lib/x86_64-linux-gnu/debug/libstdc++.a 处提供带有调试符号的静态库;尝试针对它构建可执行文件,然后运行gdb

【讨论】:

  • 这仍然没有改善情况。我暂时移动了非调试静态库以确保出现预期错误,然后将带有“-L”的链接器路径添加到调试目录:usr/lib/x86_64-linux-gnu/debug/ 然后链接成功,但仍然没有进入函数跨度>
  • 尝试使用g++ -static-libgcc 构建,如Johan Petersson 所述。
  • 也不工作,我用 'ldd' 确认我确实不再依赖 libgcc 和 libstdc++
猜你喜欢
  • 1970-01-01
  • 2023-03-24
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多