我正在修改一个相当大的程序(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/
答案 0 :(得分:1)
刚试过它。适合我。唯一的问题是我忘了添加-O0
选项来禁用优化;在你的情况下也可能是一个问题。
我可以建议:
CFLAGS
,但我在标签中看到了c ++,因此您可能应该使用CXXFLAGS
(它可能取决于您使用的构建工具)IPKTAgent::deBurst()
在integrated_agent.h
中声明。但它在哪里实施?检查它是否在头文件中实现和/或您可以访问实现它的源文件。