1

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

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

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

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

4

1 回答 1

1

刚刚测试过了。为我工作。唯一的问题是我忘记添加-O0禁用优化的选项;在您的情况下,这也可能是一个问题。

我可以建议:

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