diff options
author | Nathan Ridge | 2014-03-22 05:18:43 +0000 |
---|---|---|
committer | Sergey Prigogin | 2014-03-22 16:53:13 +0000 |
commit | d02be6bf77556ba0870c3a4df59fe326701e0026 (patch) | |
tree | 44a884a546a258f2072809f3b0cf17ef0f14ebe0 /core | |
parent | c8c5a7864938920fa8de16ca15ca2dfc062f8b85 (diff) | |
download | org.eclipse.cdt-d02be6bf77556ba0870c3a4df59fe326701e0026.tar.gz org.eclipse.cdt-d02be6bf77556ba0870c3a4df59fe326701e0026.tar.xz org.eclipse.cdt-d02be6bf77556ba0870c3a4df59fe326701e0026.zip |
Bug 430282 - Trace indexer exceptions for easier diagnosis of bugs
Change-Id: I208a77af84cc3f3dd017456133edd5e3fa4c7743
Signed-off-by: Nathan Ridge <zeratul976@hotmail.com>
Reviewed-on: https://git.eclipse.org/r/23743
Tested-by: Hudson CI
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Diffstat (limited to 'core')
-rw-r--r-- | core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java | 3 | ||||
-rw-r--r-- | core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java | 12 |
2 files changed, 14 insertions, 1 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java index 3b357eb1561..039e6b3cc66 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java @@ -1137,6 +1137,9 @@ public abstract class AbstractIndexerTask extends PDOMWriter { s= createStatus(getMessage(MessageKind.errorWhileParsing, file), e); } logError(s); + if (fShowProblems) { + reportException(e); + } if (++fStatistics.fErrorCount > MAX_ERRORS) { throw new CoreException(createStatus(getMessage(MessageKind.tooManyIndexProblems))); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java index 6da9134dc48..6226751bccd 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java @@ -63,6 +63,8 @@ import org.eclipse.core.runtime.MultiStatus; import org.eclipse.core.runtime.Status; import org.eclipse.osgi.util.NLS; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -191,7 +193,7 @@ abstract public class PDOMWriter implements IPDOMASTProcessor { } } - private boolean fShowProblems; + protected boolean fShowProblems; protected boolean fShowInclusionProblems; private boolean fShowScannerProblems; private boolean fShowSyntaxProblems; @@ -663,6 +665,14 @@ abstract public class PDOMWriter implements IPDOMASTProcessor { String msg= "Indexer: " + problem.getMessageWithLocation(); //$NON-NLS-1$ trace(msg); } + + protected void reportException(Throwable th) { + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + th.printStackTrace(pw); + String msg= "Indexer: exception: " + sw.toString(); //$NON-NLS-1$ + trace(msg); + } protected void trace(String message) { System.out.println(message); |