Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Language IDEs » C / C++ IDE (CDT) » CDT indexing problems: out of memory, waiting for exclusive lock and type hierarchy
CDT indexing problems: out of memory, waiting for exclusive lock and type hierarchy [message #1832026] Sun, 06 September 2020 09:42
Gennady Gozman is currently offline Gennady GozmanFriend
Messages: 2
Registered: December 2018
Junior Member
Hi,

Our C++ project has above 15000 source files 0.5-1 millions lines of code. Some of files cause out of memory exceptions when being indexed/parsed. These exceptions often are reported when Eclipse/CDT waits for an exclusive lock without any progress. Additionally these files has duplicate entries in the Type Hierarchy.

Currently Eclipse Xmx is of 4.5G. I've tried to increase it up to 30G without any success. It seems that the issue is kind of recursion or endless loop so that increasing Xmx does not/will not help.

The size of the project PDOM file can be more than 600-700M.

Unfortunately, it is not possible to find out what part of out code causes this event when turning on the CDT debugging. I'm trying for months (years?) to deal with this by refactoring our code (mostly by rearranging includes) without almost no success.

Typical jstack report of the problem contains following (an example file is attached):

Thread t@492: (state = IN_JAVA)
- org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPInheritance$FinalOverriderMap.mergeOverriders(java.util.List, java.util.List) @bci=108, line=104 (Compiled frame; information may be imprecise)
- org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPInheritance$FinalOverriderMap.addOverriders(org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPInheritance$FinalOverriderMap) @bci=134, line=93 (Compiled frame)
- org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPInheritance$FinalOverriderAnalysis.collectFinalOverriders(org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType, boolean, java.util.Set, int, org.eclipse.cdt.core.dom.ast.IASTNode) @bci=231, line=248 (Compiled frame)
- org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPInheritance$FinalOverriderAnalysis.collectFinalOverriders(org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType, boolean, java.util.Set, int, org.eclipse.cdt.core.dom.ast.IASTNode) @bci=222, line=244 (Compiled frame)
- org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPInheritance$FinalOverriderAnalysis.computeFinalOverriderMap(org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType, org.eclipse.cdt.core.dom.ast.IASTNode) @bci=19, line=177 (Compiled frame)
- org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPInheritance.getFinalOverriderMap(org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType, org.eclipse.cdt.core.dom.ast.IASTNode) @bci=54, line=138 (Compiled frame)
-
org.eclipse.cdt.core.dom.ast.cpp.SemanticQueries.getPureVirtualMethods(org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType, org.eclipse.cdt.core.dom.ast.IASTNode) @bci=2, line=96 (Interpreted frame)

We use Eclipse 4.6.3a/CDT 9.2.1 on Solaris and Eclipse 4.7.3a/CDT 9.4.3 on Linux. I think that the Eclipse/CDT version does not matter.

I need technical help with determining what pure virtual methods in what class causes this. Additionally, is there any utility for editing PDOM files? Is it possible to remove obsolete entries from it without rebuilding indexes?

Thanks in advance.
Previous Topic:[[maybe_unused]] C++17
Next Topic:Problems debugging whilst using USBDM pluggin
Goto Forum:
  


Current Time: Mon Oct 14 22:13:49 GMT 2024

Powered by FUDForum. Page generated in 0.03783 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top