当 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 索引器卡住时我该怎么办? 的相关文章

  • 为什么 gdb 在命令行中工作正常时却无法在 eclipse 中工作?

    我已经使用 eclipse 创建并成功编译了一个适用于 Linux 的 C 应用程序 当我从命令行调试它时 一切都很完美 我可以很好地调试 但我需要在eclipse中调试 因为这样更方便 容易 我配置了调试会话 当尝试启动它时 出现错误 E
  • Jenkins 在构建和构建后之间挂起

    将 Jenkins 更新到版本 2 156 从版本 1 6 后 我们的一些构建作业在完成后和进行构建后操作之前会陷入困境 作业本身会在 5 分钟内完成 与之前相同 然后挂起 5 10 分钟 然后再继续 我设法将其范围缩小到 Executor
  • Eclipse PyDev 完成挂起(再次)

    我在 Eclipse 中使用 PyDev 作为我的 Python 编辑器 就功能集而言 它很好 除了一件非常烦人的事情之外 一切都工作正常 代码完成本身运行速度很快 当我按 Alt Space 时 窗口几乎立即弹出 所有选项都在那里 顶部的
  • CDT 在“设置索引器”期间发生内部错误

    我使用 Eclipse 和 CDT 来构建 C 代码 加载我的工作区后 我收到以下消息 An internal error occurred during Setting up indexer 这是日志 eclipse buildId I2
  • 当打开函数跟踪时,Android 上的 Ftrace 冻结,有人帮助我:(

    我已经在android AVD上安装了Ftrace并尝试使用Ftrace的功能 但它不起作用 下面是我所做的事情的列表 安装 ubuntu 10 04 LTS 安装必要的工具 如android sdk 工具链 库等 下载金鱼内核 参考 ht
  • 如何使 CDT/Eclipse 与 C++11 线程一起工作?

    我尝试在 Eclipse 中测试 C 11 线程的示例 但我在运行程序时收到此消息 抛出 std system error 实例后调用终止 什么 不允许操作 我的系统 ubuntu gcc 4 7 Program include
  • UITextView 从 textViewShouldBeginEditing 冻结 iPad 应用程序。 (无效的字形索引)

    所以我已经研究这个错误大约一周了 但我一生都无法弄清楚发生了什么 由于保密问题 我不能发布太多代码 但我会尽力解释所有内容 发生的情况是 我们通过代码填充 UITextField 并且最初将文本显示为灰色 然后 用户可以执行以下两项操作之一
  • Git/Eclipse 工作流程

    我使用 Eclipse 来编辑 Java 并使用 Git 作为我的 VCS 我应该将本地存储库放在工作区中还是工作区之外 并在每次要提交时复制文件 我知道我可以通过各种方式做到这一点 但我是 Git 新手 想知道哪种方式更好 目前最好的做法
  • Eclipse makefile 构建速度很慢...是什么原因?

    我们是 Eclipse 的狂热粉丝 这太棒了 但我们有大约 40 个 C 项目 并且还在不断增长 当所有项目都是最新的时 构建所有这些项目大约需要半分钟 总共 如果我只是创建一个对所有 40 个项目执行 make all 的 bash 脚本
  • 如何冻结所有可冻结的 WPF 对象?

    我想冻结窗口中的所有可冻结对象 以获得更好的性能 为此 我使用了几个像这样的循环 foreach Brush item in FindLogicalChildren
  • Delphi 有“工作流引擎”实现吗?

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

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

    我被要求创建一个简单的 JIRA 插件 它结合了工作流程 自定义字段 条件步骤 我刚刚开始安装 JIRA 并最终成功创建了一个运行简单的 Hello World 插件 我已经对这个界面有多大感到困惑 似乎无法掌握大局 你们中的任何人都可以带
  • 有谁知道为什么我收到 HttpWebRequest 超时?

    我想知道你是否可以帮助我解决我遇到的错误 我创建了一个 HTTP 管理器 可以帮助我处理来自网站的 POSTing GETing 数据 直到最近我尝试混合使用两者时 它一直工作得很好 第一个循环一切正常 在第二个循环中它挂在 HttpWeb
  • 使用 jdk 8 时 Java 模态对话框冻结整个应用程序

    很少 当使用 Java Swing 应用程序显示模式对话框时JDK1 8 0 144 整个应用程序被冻结 我在 JDK bug 数据库中找不到相关的 bug 唯一看起来远程相关的是this one https bugs openjdk ja
  • 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
  • 如果一个线程调用 getStackTrace() 并且 lambda 定义(通过 Unsafe.defineAnonymousClass)发生在另一线程中,则 Java8 挂起

    我的 Web 应用程序在 Apache Tomcat 8 0 21 JVM 1 8 0 45 b15 和 Windows Server 2012 上运行 运行在 16 核 32 个带 HT 双 Xeon NUMA 计算机上 在某些非常不幸的
  • PyCurl 请求在执行时无限挂起

    我编写了一个脚本来从 Qualys 获取扫描结果 每周运行一次以收集指标 该脚本的第一部分涉及获取过去一周运行的每个扫描的引用列表以进行进一步处理 问题是 虽然有时这会完美地工作 但有时脚本会挂在c perform 线 手动运行脚本时这是可
  • 有关 CMake 错误的问题:没有为目标提供源

    我正在尝试使用 cmake 和 eclipse 将 FreeRtos 添加到我的项目中 但出现错误 我运行的是 debian 10 我的 cmake 版本是 3 13 4 cmake 的文件可以在以下位置找到这个 git 仓库 https

随机推荐