c++ - 存在调试符号,但 eclipse 没有将它们与源代码相关联

标签 c++ eclipse debugging debug-symbols ns2

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

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

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

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

最佳答案

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

我的建议:

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

关于c++ - 存在调试符号,但 eclipse 没有将它们与源代码相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6475918/

相关文章:

c++ - boost::log::r​​ecord_view 赋值运算符

c++ - mkl_free() 问题

c++ - 列表初始化是否将原子初始化为零?

java - 如何从 Java 启动 Eclipse 命令?

c# - 如何将 JSON 复制并粘贴到 Eclipse 中并创建 .java?

java - 如何在 Eclipse 中的类而不是一行上设置断点?

c# - 常量字符串声明/初始化断点

c++ - 根据用户输入计算数组中的可整除数

java - Android库项目清理重建有问题

debugging - 想法 : Debugger skipping lines