Bug 187785 - Something is driving Eclipse into the ground
Summary: Something is driving Eclipse into the ground
Status: NEW
Alias: None
Product: CDT
Classification: Tools
Component: cdt-core (show other bugs)
Version: 4.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Jonah Graham CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-05-18 07:24 EDT by Oyvind Harboe CLA
Modified: 2020-09-04 15:18 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Oyvind Harboe CLA 2007-05-18 07:24:14 EDT
Build ID: I20070503-1400

Steps To Reproduce:
Eclipse runs more and more slowly until it runs out of PermGen space or simply becomes unresponsive entirely (Windows shows "Not responding" in title bar).

I hereby pointing the finger at CDT indexer. The Java indexer does not show any indication of running into this problem.

More information:
I'll try to gather evidence. I've removed CDT nature from the project to see what happens. I'm working on a project w/ca. 11800 files of which ca. 100-200 are C/C++ files. Could # of files be what is making the indexer go ga-ga?
Comment 1 Chris Recoskie CLA 2007-05-18 08:59:57 EDT
I'll leave this open for now to give you time to gather your evidence :-)

Are you sure it's CDT though?  I've run into this a lot without CDT.  Mylar for example is apparently a bad offender on the PermGen space issue due to the number of classes it loads.
Comment 2 Oyvind Harboe CLA 2007-05-18 09:03:11 EDT
(In reply to comment #1)
> I'll leave this open for now to give you time to gather your evidence :-)

Thanks. I believe this PermGen stuff is some of the worst Java stuff to track down... 
 
> Are you sure it's CDT though?  I've run into this a lot without CDT.  Mylar for
> example is apparently a bad offender on the PermGen space issue due to the
> number of classes it loads.

I deleted the offending CDT project and Eclipse seems much happier now. I'll try to reenable that project later without the CDT nature.


> 

Comment 3 Mike Kucera CLA 2007-05-18 09:50:44 EDT
Could you please check that your C content types are mapped to the gcc parser and not the C99 parser.
Comment 4 Oyvind Harboe CLA 2007-05-18 09:56:24 EDT
(In reply to comment #3)
> Could you please check that your C content types are mapped to the gcc parser
> and not the C99 parser.

I don't know how to check that. 

First I'll be trying to remove the CDT nature and see if the system behaves. I don't have something specific to test against so I'll just have to run without CDT nature for a couple of days to see if the system behaves nicely.



This is the .cdtproject I deleted:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse-cdt version="2.0"?>

<cdtproject/>

This is the .cproject I deleted:

<?xml version="1.0" encoding="UTF-8"?>
<?fileVersion 4.0.0?>

<cproject>
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="converted.config.610783818">
<storageModule moduleId="cdtBuildSystem" version="4.0.0">











<configuration buildProperties="" description="" errorParsers="" id="converted.config.610783818" name="Configuration1" parent="org.eclipse.cdt.build.core.prefbase.cfg">
<folderInfo id="converted.config.610783818./" name="/" resourcePath="">
<toolChain errorParsers="" id="org.eclipse.cdt.build.core.prefbase.toolchain.1797433517" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
<targetPlatform binaryParser="" id="converted.config.610783818./.251636987" name=""/>
<builder appendEnvironment="true" arguments="" autoBuildTarget="all" cleanBuildTarget="clean" command="make" customizedErrorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser" enableAutoBuild="false" enableCleanBuild="true" environment="" errorParsers="" id="org.eclipse.cdt.make.core.makeBuilder.609325671" incrementalBuildTarget="all"/>
<tool errorParsers="" id="org.eclipse.cdt.build.core.settings.holder.libs.1442221303" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/>
<tool errorParsers="" id="org.eclipse.cdt.build.core.settings.holder.1194408773" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.615256618" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
</tool>
<tool errorParsers="" id="org.eclipse.cdt.build.core.settings.holder.1889449403" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.185233101" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
</tool>
</toolChain>
</folderInfo>
</configuration>
</storageModule>
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="converted.config.610783818" moduleId="org.eclipse.cdt.core.settings" name="Configuration1">






















<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.nullindexer" point="org.eclipse.cdt.core.CIndexer"/>
<extension id="" point="org.eclipse.cdt.core.BinaryParser"/>
</extensions>
</storageModule>

<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="false" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="false" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="false" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="false" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="false" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="false" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<scannerConfigBuildInfo instanceId="converted.config.2056526976">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping">
<project-mappings/>
</storageModule>
</cconfiguration>
<cconfiguration id="converted.config.2056526976">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="converted.config.2056526976" moduleId="org.eclipse.cdt.core.settings" name="Configuration1">






















<externalSettings/>
<extensions>
<extension id="" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">











<configuration artifactExtension="" artifactName="xpo3" buildProperties="" description="" errorParsers="" id="converted.config.2056526976" name="Configuration1" parent="org.eclipse.cdt.build.core.prefbase.cfg">
<folderInfo id="converted.config.2056526976./" name="/" resourcePath="">
<toolChain errorParsers="" id="org.eclipse.cdt.build.core.prefbase.toolchain.1612209629" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
<targetPlatform binaryParser="" id="converted.config.2056526976./.685226476" name=""/>
<builder appendEnvironment="true" arguments="" autoBuildTarget="all" buildPath="${workspace_loc:/xpo3}" cleanBuildTarget="clean" command="make" customizedErrorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser" enableAutoBuild="true" enableCleanBuild="true" environment="" errorParsers="" id="org.eclipse.cdt.make.core.makeBuilder.2070158541" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false"/>
<tool errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="org.eclipse.cdt.build.core.settings.holder.libs.703434994" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/>
<tool errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="org.eclipse.cdt.build.core.settings.holder.2104606399" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.326073677" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
</tool>
<tool errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="org.eclipse.cdt.build.core.settings.holder.1109496494" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1217105711" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
</tool>
</toolChain>
</folderInfo>
</configuration>
</storageModule>

<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="false" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="false" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="false" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="false" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="false" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="false" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<scannerConfigBuildInfo instanceId="converted.config.2056526976">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="false"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping">
<project-mappings/>
</storageModule>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">










<project id="dummy.null.1622499781" name="dummy"/>
</storageModule>
</cproject>


Comment 5 Doug Schaefer CLA 2007-05-18 10:05:24 EDT
(In reply to comment #4)
> (In reply to comment #3)
> > Could you please check that your C content types are mapped to the gcc parser
> > and not the C99 parser.
> I don't know how to check that. 

The easiest check is: did you install the C99 feature? If not you shouldn't have a problem, or at least not there.
Comment 6 Oyvind Harboe CLA 2007-05-18 10:18:11 EDT
(In reply to comment #5)
> (In reply to comment #4)
> > (In reply to comment #3)
> > > Could you please check that your C content types are mapped to the gcc parser
> > > and not the C99 parser.
> > I don't know how to check that. 
> 
> The easiest check is: did you install the C99 feature? If not you shouldn't
> have a problem, or at least not there.

I'm running from CDT CVS HEAD, so I don't know whether that means I've got C99 or not.

> 

Comment 7 Doug Schaefer CLA 2007-05-18 10:24:10 EDT
(In reply to comment #6)
> (In reply to comment #5)
> > (In reply to comment #4)
> > > (In reply to comment #3)
> > > > Could you please check that your C content types are mapped to the gcc parser
> > > > and not the C99 parser.
> > > I don't know how to check that. 
> > 
> > The easiest check is: did you install the C99 feature? If not you shouldn't
> > have a problem, or at least not there.
> I'm running from CDT CVS HEAD, so I don't know whether that means I've got C99
> or not.
> > 

You'd have feature and plugin projects with c99 in the name in your workspace. I'm guessing not if you are asking these questions :).
Comment 8 Oyvind Harboe CLA 2007-05-18 10:36:48 EDT
(In reply to comment #7)
> (In reply to comment #6)
> > (In reply to comment #5)
> > > (In reply to comment #4)
> > > > (In reply to comment #3)
> > > > > Could you please check that your C content types are mapped to the gcc parser
> > > > > and not the C99 parser.
> > > > I don't know how to check that. 
> > > 
> > > The easiest check is: did you install the C99 feature? If not you shouldn't
> > > have a problem, or at least not there.
> > I'm running from CDT CVS HEAD, so I don't know whether that means I've got C99
> > or not.
> > > 
> 
> You'd have feature and plugin projects with c99 in the name in your workspace.
> I'm guessing not if you are asking these questions :).

I don't remember seing C99 stuff anywhere no... 

If someone has any ideas on how to narrow this problem down, now is a good time to come forward.

Is there a method to exclude CDT as the culprit?

Is there a way to figure out if CDT is doing something wrong *before* Eclipse goes into the vegetative state?? 

Comment 9 Markus Schorn CLA 2007-05-21 03:49:26 EDT
I'd like to understand more about the state of the java-process while the IDE no longer responds:
* does it consume CPU-cycles?
* is the entire machine affected (how do other apps respond)?
* is the java-process low on heap-memory?
* is the java-process low on PermSpace?
* a stack-trace could reveal what the IDE is currently trying to do.

My favourite method of obtaining information like this:
- use JDK 1.5 
- start the process with -Dcom.sun.management.jmxremote.  
- use jconsole (part of JDK) to investigate memory-sizes and stack-traces.
Comment 10 Oyvind Harboe CLA 2007-05-21 03:56:54 EDT
(In reply to comment #9)
> I'd like to understand more about the state of the java-process while the IDE
> no longer responds:
> * does it consume CPU-cycles?

Yes.

> * is the entire machine affected (how do other apps respond)?

No.

> * is the java-process low on heap-memory?
> * is the java-process low on PermSpace?

I frequently see PermSpace exceptions in the console when Eclipse is unresponsive. I'm using -XX:MaxPermSize=128m, which means that this is not a matter of too little PermSpace being available.

I'll try the methods below.

> * a stack-trace could reveal what the IDE is currently trying to do.

The stack trace is going to be useless. *everything* is running slowly. 

> My favourite method of obtaining information like this:
> - use JDK 1.5 
> - start the process with -Dcom.sun.management.jmxremote.  
> - use jconsole (part of JDK) to investigate memory-sizes and stack-traces.

I'll try this to see what I can find.

BTW, it seems Eclipsee is behaving a little bit nicer after I closed the project w/many files & CDT nature.

Comment 11 Oyvind Harboe CLA 2007-05-21 04:15:45 EDT
- PermGen space in jconsole seems to sit at ca. 40mByte when Eclipse is still responsive.
- Heap: 50mByte
- Non-heap: 45 mbyte

- Performing a GC does not change memory usage as reported by jconsole noticeably.

Here is a copy & paste of the summary while Eclipse is still working fine:


Summary
Uptime: 
10 minutes
Process CPU time: 
55,843 seconds
Total compile time: 
7,884 seconds
 
Threads
Live Threads: 
   17
Peak: 
   27
Daemon threads: 
   14
Total started: 
   52
 
Memory
Current heap size: 
    44 804 kbytes
Committed memory: 
    85 816 kbytes
Maximum heap size: 
 1 040 512 kbytes
Objects pending for finalization: 
     0
Garbage collector: 
Name = 'Copy', Collections = 145, Total time spent = 1,643 seconds
Garbage collector: 
Name = 'MarkSweepCompact', Collections = 15, Total time spent = 5,782 seconds
 
Classes
Current classes loaded: 
8 912
Total classes unloaded: 
   54
Total classes loaded: 
8 966
 
Operating System
Total physical memory: 
 1 046 604 kbytes
Free physical memory: 
   171 520 kbytes
Committed virtual memory: 
   152 928 kbytes
Comment 12 Oyvind Harboe CLA 2007-05-21 04:40:27 EDT
Interesting:

I'm launching Eclipse CDT from the Eclipse JDT debugger as I tinker w/Eclipse.

Could it be that it is not Eclipse CDT, but the Eclipse JDT debugger that is running out of PermGen space?
Comment 13 Oyvind Harboe CLA 2007-05-23 08:49:01 EDT
I've seen 70mByte PermGen memory used via JConsole after pressing GC when Eclipse is sluggish, so is that good or bad?

Hmm.... will SWT process the Windows input loop while Java is garbage collecting? If not GC will cause the entire machine to be unresponsive.
Comment 14 Markus Schorn CLA 2007-05-23 09:15:18 EDT
(In reply to comment #13)
> I've seen 70mByte PermGen memory used via JConsole after pressing GC when
> Eclipse is sluggish, so is that good or bad?
> Hmm.... will SWT process the Windows input loop while Java is garbage
> collecting? If not GC will cause the entire machine to be unresponsive.

Note that the PermGen space is filled by the VM itself + by calls to String.intern(), which is not used by CDT. You have to refer to bug 92250 and/or the JVM documentation for this issue. However, your numbers indicate that it should be sufficient to increase the PermGen size to 128mb in your case.

Whether the GC blocks other threads or not is also a matter of the JVM. For Sun's JVM there is a command-line option to use a concurrent GC. 





Comment 15 Oyvind Harboe CLA 2007-05-23 09:18:34 EDT
(In reply to comment #14)
> (In reply to comment #13)
> > I've seen 70mByte PermGen memory used via JConsole after pressing GC when
> > Eclipse is sluggish, so is that good or bad?
> > Hmm.... will SWT process the Windows input loop while Java is garbage
> > collecting? If not GC will cause the entire machine to be unresponsive.
> 
> Note that the PermGen space is filled by the VM itself + by calls to
> String.intern(), which is not used by CDT. You have to refer to bug 92250
> and/or the JVM documentation for this issue. However, your numbers indicate
> that it should be sufficient to increase the PermGen size to 128mb in your
> case.

I've got 128mByte of permgen.


> Whether the GC blocks other threads or not is also a matter of the JVM. For
> Sun's JVM there is a command-line option to use a concurrent GC. 

I don't agree. Performance of Eclipse is Eclipse business regardless of root cause.

There may be an argument for adding JNI code to process the input loop while the JVM is off GC'ing if this is indeed a problem.