【问题标题】:Debugging a Static Library with the Eclipse CDT使用 Eclipse CDT 调试静态库
【发布时间】:2009-10-20 03:50:31
【问题描述】:

我正在使用 Eclipse CDT 进行一些嵌入式开发,但我在为静态库进行源代码级调试时遇到了困难。

我正在使用我自己的 Makefile,所以这是我现在的第一个嫌疑人,特别是因为 gdb 声称没有符号表信息可用于没有源的函数。使用静态库时,来自库的调试信息是否通常包含在最终链接阶段的 ELF 文件中?现在,如果我将 objdump -S 指向 .a 文件,我可以看到完整的源代码/程序集组合,但没有任何调试信息进入 .elf。主应用程序存在调试信息/源。我错过了一些开关来告诉 ld 包括这个吗?

否则,让 gdb 告诉我正在寻找(并且未能找到)关于特定功能的调试信息的最佳方式是什么。

【问题讨论】:

  • makefile 还为ld 提供了哪些其他参数?

标签: c debugging embedded gdb eclipse-cdt


【解决方案1】:

想通了。

教训很简单:总是,总是,三次检查你的makefile。 仍在链接中构建的静态库的旧副本,但没有调试信息。

【讨论】:

  • 哈!是的,这样就可以了。 :D
  • 哦,您可能应该将该答案标记为“已接受”,这样人们就不会一直试图为您找出问题所在。
【解决方案2】:

我猜 GDB 根本就没有找到与该调试信息相关的源文件。请参阅http://web.mit.edu/gnu/doc/html/gdb_9.html#SEC51 了解如何告诉它在哪里找到源文件的文档。

【讨论】:

  • 如果您阅读了问题的最后一部分,我知道这一点。问题在于弄清楚 gdb 正在寻找什么,因为它已经知道目录。显然还有其他事情正在发生。
  • 啊,好吧,是的。当你说“没有任何调试信息进入 .elf”时,你是如何测试的?
猜你喜欢
  • 2018-10-31
  • 2011-06-24
  • 1970-01-01
  • 2011-04-25
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
相关资源
最近更新 更多