【问题标题】:How to debug external .cpp files on Eclipse CDT ( C++ )如何在 Eclipse CDT ( C++ ) 上调试外部 .cpp 文件
【发布时间】:2013-02-04 14:14:51
【问题描述】:

我在“项目”目录中有一个大项目。我使用 cmake 将这个项目构建到另一个目录“build”中。对于编码,我尝试使用 Eclipse,但是当我尝试将代码导入 Eclipse 时( File->Import->C/C++->Existing Code as Makefile Project ),当然我只能导入“build”目录而没有“project "(因为 make 文件在 "build" 中,而 Eclipse 的 "project" 是空的)。

当我在调试模式下运行构建时,我只能调试二进制数据,因为调试器在“项目”目录中看不到源。如何设置调试器以使用“项目”目录中的源?感谢有人回答!

【问题讨论】:

    标签: c++ eclipse eclipse-cdt


    【解决方案1】:

    将您的项目(rootdir 不是构建)作为 MakeFile 项目导入工作区(选择 GNU 工具链或 Linux GCC)。现在打开您的项目属性 -> c++ build 并选择项目中的 build 文件夹。

    现在您可以编译它并创建一个新的运行配置以进行调试。

    格力兹族

    编辑:

    我假设你的根文件夹看起来像这样

    cmake/

    CmakeList.txt

    src/

    dep/

    ../

    现在您创建一个文件夹构建 你切换到构建并运行 cmake cmake ../ -flags(没有 eclipse-project,使用默认 gcc)

    完成此操作后,您可以将根文件夹导入 eclipse cdt 并选择 root/build 作为构建文件夹。问题出在哪里? Eclipse CDT 现在只想知道 makefile 在构建时所在的位置(这就是您需要手动选择构建文件夹的原因)

    【讨论】:

    • 我无法将 rootdir 作为 MakeFile 项目导入,因为 rootdir 没有 make 文件。它只有 cmake 文件!并且 cmake 文件在构建时创建 make 文件。我知道我可以将 cmake 构建到根目录,问题将自动解决,但我的目标是从 cmake 创建外部构建。
    • 移动目录由于某些原因它不是一个解决方案。我只需要知道如何为当前目录设置 Eclipse(源外构建)。
    • 同样的事情?您还可以在工作区之外配置构建目录.. 相同的功能
    • 没什么用,Eclipse 中的 dgb 看到了源代码,但没有看到符号。使用调试符号构建 100%。第一个问题解决了,Eclipse 已经可以看到源码了!我照你说的做了,但没有用。问题出在 Eclipse 工作区和项目工作区的同一目录中。那一定是两个不同的工作区。但是调试符号有什么问题呢?
    • xmash 它不明白你的问题。我会给你一些截图,我是怎么做的
    【解决方案2】:

    如果您在系统上构建应用程序,则不需要工作区中的源来调试应用程序 - 构建目录和路径在您的可执行调试信息中。

    1. 确保将 -g 同时传递给编译器和链接器。
    2. 尝试命令行 GDB - 它也应该可以找到源代码。
    3. 您可以在设置启动配置时在 Eclipse CDT 调试器中设置自定义源映射 - 但我相信这主要适用于在构建应用程序后移动源或在其他系统上构建的情况。

    【讨论】:

      【解决方案3】:

      我是这样一步一步做的。这是我从 github 下载的一个简单的 cmake 项目。 像伤害一样工作。 imagebam.com http://thumbnails101.imagebam.com/23645/1e5c42236445850.jpg imagebam.com http://thumbnails101.imagebam.com/23645/64cb47236445860.jpg

      【讨论】:

      • 我会按照您的说明进行操作。并将此用于断点:“未加载符号表。使用“文件”命令。” - 在 Eclipse 控制台中。 :) 我没有时间解决这个问题,所以我使用手动调试,截止日期很近。 :) 我认为 gdb 发生了一些事情。好吧,当我完成这个项目时,我会尝试解决这个问题,只是为了有趣并在这里发表评论。大家感谢帮助。我真的很感激。
      • 你能放更好的照片吗?我什么都看不见。
      猜你喜欢
      • 2012-10-08
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      • 2013-12-23
      • 2015-08-01
      • 2012-09-02
      • 2011-03-22
      • 1970-01-01
      相关资源
      最近更新 更多