当 Eclipse CDT 索引器卡住时我该怎么办?

2023-11-22

我正在使用 Eclipse CDT 2020-06(但我在早期版本中也发生过这种情况。)

有时,Eclipse CDT 在解析某些文件时会卡住。百分比指标不前进;并按任务的取消按钮使其“取消请求”,但它仍然卡在这种状态。因此,我不仅不能在我的项目中使用索引,而且大多数其他“异步”任务也会排队并且无法执行。当这种情况发生时,我现在基本上放弃并重新开始;也许最终会使用过滤规则屏蔽掉行为不当的文件。

我的问题是:我可以采取更好的措施来处理索引器卡住的情况吗?

edit:

如果我使用 -debug 运行 Eclipse 并启用索引器调试,我得到的唯一输出是:

Indexer: start PDOMFastIndexerTask
Indexer: parsing /cuda-api-wrappers/examples/other/io_compute_overlap_with_streams.cu

这就是我陷入困境的地方。


如何“解除”Eclipse 的索引器

我现在在 Linux 上专业使用 Eclipse(用于代码editing只是,不构建——我在命令行中这样做)四年了,massivemono-repos 代码大小高达 200 GiB。我的索引器已经被卡住了数百次,而这两种解决方案似乎非常一致地可以“解除”索引器的卡住。

1.增加Eclipse可用的堆(RAM)

将 Eclipse 可用的最大 RAM 从 8 GiB 加倍到 16 GiB 解决了这个问题。它被困了几个小时4841/7617 sources, 27463 headers,永远解析同一个文件,RAM 最大为 8 GiB。当我将 Eclipse 可用的 RAM(堆)从 8 GiB 更新到 16 GiB 后,我让索引器过夜运行 10 小时,到早上就完成了。

注意:如果尝试对 Boost 库进行索引,一些初始测试让我怀疑它会将 Eclipse 带到一个巨大的位置。64 GiB~128 GiB RAM(堆)索引它们,所以我通常只是将所有或大部分 Boost 库排除在索引之外作为一般规则。

要将 Eclipse 可用的 RAM 加倍,请打开(在 Linux 上):/home/username/eclipse/embedcpp-2021-06/eclipse/eclipse.ini,或您的等效路径,然后修改-Xmx价值。例如:我增加了我的-Xmx8196m(8196 MiB 或 8 GiB)到-Xmx16384m(16384 MiB 或 16 GiB)。关闭并重新打开 Eclipse 以使此更改生效。

另外,打开在 Eclipse 窗口底部显示堆状态(如果默认情况下尚未打开):

窗口→首选项→常规→选中“显示堆状态”框→单击“应用并关闭”。这是 Eclipse 窗口底部现在的样子!

enter image description here

Source:

  1. 上面是我的 Google 文档, p12.
  2. 也可以看看:如何在eclipse中查看内存使用情况(入门)

您可能需要为您的 PC 提供更多虚拟内存以支持上述 RAM 增加

如果你没有足够的物理内存来处理这种增加,但您有高速 SSD,您可以将 SSD 用作虚拟内存弥补不足物理内存。这可以在 Windows 和 Linux 上完成,也许 Mac 上也可以完成。如果在 Linux 上,按照我的说明来增加您的虚拟内存交换文件到更可用的东西:例如:将其增加到 32 GiB。现在,您可以设置 Eclipse 使用的最大堆大小将等于物理内存(真实RAM) + 虚拟内存交换文件(在固态驱动器上模拟的假“RAM”)。不过,请为其他程序留出一些 GiB——不要给它all到日食。

2. 排除所有不需要索引的构建文件夹和第 3 方库(尤其是 Boost!)

请参阅我关于如何使用 1) 资源过滤器和 2) 手动符号链接生成器脚本(我的首选)执行此操作的非常详细的答案:如何在 Eclipse 中排除文件夹的所有部分,除了其中的一些特定子文件夹

更进一步

我在我的 Eclipse 设置文档中写了有关此内容以及大量其他设​​置和您可能会发现有用的内容,您可以在这里找到:

  1. https://github.com/ElectricRCAaircraftGuy/eRCaGuy_dotfiles/tree/master/eclipse.
  2. 直接链接到 Google 文档

也可以看看:对于大型 C++ 项目,推荐的 Eclipse CDT 配置是什么(索引器需要很长时间)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 Eclipse CDT 索引器卡住时我该怎么办? 的相关文章

  • Eclipse - Builder 到底是什么?

    我不明白CDT中的构建器到底是什么 与 C C Build 内容有什么关系 我在 C C Build 配置中设置了SCons 它确实有效 我做了两个配置 发布和调试 并且启动了我的 SCons 脚本 但当我现在尝试调试时 我正在研究这些 B
  • WPF C# 应用程序运行 2-3 次就会冻结我的整个计算机

    我在这个问题上放了很多信息 因为我不知道什么是相关的 Issue 我遇到一个问题 我正在开发的程序在运行时会冻结我的整个计算机并且不返回任何错误 我完全无法执行任何 CTRL ALT DEL 甚至不起作用的操作 该程序接受来自 Androi
  • 启动失败。未找到二进制文件。 Eclipse Helios 上的 CDT

    我在 Ubuntu 10 04 上使用 Eclipse Helios 并尝试在其上安装 CDT 插件 我从这里下载here http www eclipse org downloads download php file tools cdt
  • Delphi 有“工作流引擎”实现吗?

    对于使用 Delphi 进行 应用程序 服务器开发 我想使用类似于其他编程语言的现有实现的工作流引擎 请参阅http en wikipedia org wiki Workflow engine http en wikipedia org w
  • SharePoint 计时器作业添加列表项,但不触发关联的工作流

    我有一个名为 会话 的列表 该列表有一个用于项目创建 修改的工作流程 当我使用 Web 部件以及手动添加项目时 工作流程会触发 我开发了一个每天运行的计时器作业 它将项目添加到 会话 列表中 当计时器作业将项目添加到列表时 工作流程不会触发
  • Eclipse CDT生成的Makefile在哪里?

    我已经使用 Eclipse helios CDT 构建了一个 hello world C 项目 它编译得很好 但我想看一下生成的 Makefile CDT 我在项目文件夹 调试 发布文件夹或 src 文件夹中找不到它 我在哪里可以找到这个
  • 阻止 eclipse CDT 从 main() 进行调试?

    如果我使用 eclipse CDT 调试我的 C 代码 它似乎总是从main 函数 即使在开头没有断点main 有没有办法让 Eclipse CDT 从第一个断点开始调试而不是main 在菜单上运行 gt 调试配置 右键单击C C 应用程序
  • 您推荐哪种工作流引擎? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在考虑在这个即将到来的项目中使用工作流引擎的想法 我们知道使用工作流引擎有很多注意事项 并且我们在许多平台上拥有丰富的开发经验 因此我
  • Python 在计算机睡眠/休眠后冻结

    我有一个使用 pythonw 在后台运行的 python 脚本 如果我关闭笔记本电脑 它就会进入睡眠模式 当我打开笔记本电脑时 我的程序几乎没有任何功能 并在几秒钟后冻结 有什么方法可以让我的脚本知道我的计算机是否进入睡眠模式 以便它可以处
  • Eclipse CDT - 将静态资源文件复制到 bin_dir

    所以我的问题是 我在 Eclipse 3 5 上的 CDT 6 0 中有一个 C 项目 现在有一个静态资源文件 log4cxx 的 properties 需要复制到构建文件夹 该文件在运行时访问以配置 log4cxx 子系统 并且它需要与可
  • GitHub 操作 - 如何参数化容器映像主机名

    我有一个 GitHub 操作 其工作流程使用容器来运行它 并使用私有 docker 注册表 myhostname com 见下文 jobs myjob name My Job runs on some tag on runners cont
  • 是否可以让 Excel 突出显示不符合我所需格式的单元格(例如日期为 6.2.2021 与所需的 6/2/2021)?

    我使用电子表格来确定团队工作流程的优先顺序 某些单元格的突出显示取决于我们与循环时间的接近程度 有开始日期 暂定结束日期和出院日期 如果出现以下情况 空白出院日期单元格将变为红色 开始日期不为空 暂定不为空 今天的日期距离暂定日期不超过五天
  • 设置 eclipse 进行 Windows 驱动程序开发

    我正在尝试使用 WDK 7 1 0 编写用户模式 Windows XP Vista 和 7 虚拟打印机驱动程序 我打算使用 eclipse IDE 进行开发 所以想知道是否可以进行相同的设置 我希望做以下事情 1 Eclipse 能够识别
  • 即使 makefile 和源代码存在,为什么“Build Project”在 Eclipse Helios CDT 中显示为灰色?

    我无法构建我的项目 我在 Eclipse Helios 中创建了一个新的 CDT 项目 并告诉它使用现有的源代码和 makefile 这两者都正确显示在 Package 和 Project 视图中 然而 项目 菜单中的 构建全部 和 构建项
  • eclipse-cdt如何链接静态库

    首先 我很困惑应该在链接器 库下设置库还是将它们设置在 路径和符号 下 我认为它们是一样的 我对么 对于我的问题 我需要链接静态库 所以我尝试了一些方法 第一次尝试我尝试在链接库中添加gtest 这是库 和gtest路径 通过这种方式 它的
  • 有关 CMake 错误的问题:没有为目标提供源

    我正在尝试使用 cmake 和 eclipse 将 FreeRtos 添加到我的项目中 但出现错误 我运行的是 debian 10 我的 cmake 版本是 3 13 4 cmake 的文件可以在以下位置找到这个 git 仓库 https
  • 如何在 Eclipse CDT 中查看静态或全局变量?

    我一直试图弄清楚如何在 CDT 的 eclipse 变量窗口中显示静态变量 但不知道如何 CDT 的菜单按钮似乎没有 java gt globals 菜单 如何在 Eclipse CDT 调试器中显示静态 全局变量 Window gt Sh
  • 关闭 选择文件对话框和 onchange 事件之间存在大量延迟。浏览器有点冻结

    有时我会遇到浏览器本机选择文件对话框的非常奇怪的行为 我有一个
  • Windows Workflow Foundation 4 (WF4) 延迟

    我正在与 Visual Studio 2010 的候选版本一起使用 Wf4 编写一个用于批准资源请求的新工作流程 在我的工作流程中 如果请求未获得批准 我希望请求在几天后过期 我们在 WF 3 5 Visual Studio 2008 中通
  • Qt 支持 Windows 蓝牙 API 吗?

    谁能告诉我 Qt 是否支持 Windows 蓝牙 API 如果是这样 您能否分享一些有关如何使用它的信息 自上次答复以来 这个问题的答案发生了一些变化 Qt 5 2 版为 Linux BlueZ 和 BlackBerry 设备实现了蓝牙 A

随机推荐