调试符号存在,但eclipse不会将它们与源代码相关联

时间:2011-06-25 04:54:23

标签: c++ eclipse debugging debug-symbols ns2

我正在修改一个相当大的程序(NS2网络模拟器),能够用Eclipse调试它会很好。我配置了makefile(将-g添加到CFLAGS)以使gcc生成调试符号,并且确实生成了它们,但是Eclipse拒绝实际找到与这些符号关联的代码。我使用“带有现有代码的Makefile项目”导入了源代码的HUGE文件夹,当我点击“debug”时,它运行程序。当我告诉调试器停止时,它通常会在我识别的方法中停止,但是当我单击方法的名称时,它会显示“source not available”,即使定义方法的源文件实际上在另一个选项卡中打开。我确实已将所有源导入到项目中。我在make配置中遗漏了什么吗?

^长期令人困惑的解释,我知道...看截图, http://imageshack.us/photo/my-images/651/zzz1fu.jpg/

请注意,上面屏幕截图中的IPKTAgent :: deBurst()在integrated_agent.h中声明 - 这是我在其他选项卡中打开的文件。

另外,当我在项目资源管理器中展开我正在调试的可执行文件的条目时,它只列出了它组成的一些文件。是什么赋予了? (见截图,列表中应该有更多文件,我正在使用的文件丢失了)。 截图:http://imageshack.us/photo/my-images/96/zzz2z.jpg/

1 个答案:

答案 0 :(得分:1)

刚试过它。适合我。唯一的问题是我忘了添加-O0选项来禁用优化;在你的情况下也可能是一个问题。

我可以建议:

  • 尝试停用优化
  • 检查您使用的编译器选项是否真正 。您使用CFLAGS,但我在标签中看到了c ++,因此您可能应该使用CXXFLAGS(它可能取决于您使用的构建工具)
  • IPKTAgent::deBurst()integrated_agent.h中声明。但它在哪里实施?检查它是否在头文件中实现和/或您可以访问实现它的源文件。
  • 检查您是否可以使用gdb调试可执行文件
  • 尝试创建简单的基于automake / autoconf的项目,并检查您是否可以在gdb和eclipse中调试它。你能够。