Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorNathan Ridge2014-03-22 05:18:43 +0000
committerSergey Prigogin2014-03-22 16:53:13 +0000
commitd02be6bf77556ba0870c3a4df59fe326701e0026 (patch)
tree44a884a546a258f2072809f3b0cf17ef0f14ebe0 /core
parentc8c5a7864938920fa8de16ca15ca2dfc062f8b85 (diff)
downloadorg.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.java3
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java12
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);

Back to the top