From 1152d73794564db0a2f74d9dd8856f6923a5e7b0 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Wed, 4 Apr 2007 15:37:26 +0000 Subject: [PATCH] Add tracing for unresolved includes --- .../cdt/internal/core/pdom/PDOMWriter.java | 17 ++++++++++++++++- .../core/pdom/indexer/IndexerStatistics.java | 1 + .../core/pdom/indexer/PDOMIndexerTask.java | 5 ++++- 3 files changed, 21 insertions(+), 2 deletions(-) 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 44d1f379de5..ed4c8cbda7c 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 @@ -217,6 +217,9 @@ abstract public class PDOMWriter { stack.add(currentPath); currentPath= findLocation(include.getPath()); } + else if (include.isActive()) { + reportProblem(include); + } } stack.add(currentPath); while (!stack.isEmpty()) { @@ -286,10 +289,22 @@ abstract public class PDOMWriter { } + private void reportProblem(IASTPreprocessorIncludeStatement problem) { + fStatistics.fUnresolvedIncludes++; + if (fShowProblems) { + String msg= "Indexer: unresolved include"; //$NON-NLS-1$ + IASTFileLocation loc= problem.getFileLocation(); + if (loc != null && loc.getFileName() != null) { + msg += " at " + loc.getFileName() + ": " + loc.getStartingLineNumber(); //$NON-NLS-1$ //$NON-NLS-2$ + } + System.out.println(msg); + } + } + private void reportProblem(IProblemBinding problem) { fStatistics.fProblemBindingCount++; if (fShowProblems) { - String msg= "Indexer problem at "+ problem.getFileName() + ": " + problem.getLineNumber(); //$NON-NLS-1$//$NON-NLS-2$ + String msg= "Indexer: problem at "+ problem.getFileName() + ": " + problem.getLineNumber(); //$NON-NLS-1$//$NON-NLS-2$ String pmsg= problem.getMessage(); if (pmsg != null && pmsg.length() > 0) msg+= "; " + problem.getMessage(); //$NON-NLS-1$ diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/IndexerStatistics.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/IndexerStatistics.java index f328405e183..7b45dd45354 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/IndexerStatistics.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/IndexerStatistics.java @@ -19,4 +19,5 @@ public class IndexerStatistics { public int fReferenceCount= 0; public int fDeclarationCount= 0; public int fProblemBindingCount= 0; + public int fUnresolvedIncludes= 0; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/PDOMIndexerTask.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/PDOMIndexerTask.java index 4b303cb89db..8018e452f9a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/PDOMIndexerTask.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/PDOMIndexerTask.java @@ -430,6 +430,10 @@ public abstract class PDOMIndexerTask extends PDOMWriter implements IPDOMIndexer + fStatistics.fParsingTime + " parser, " //$NON-NLS-1$ + fStatistics.fResolutionTime + " resolution, " //$NON-NLS-1$ + fStatistics.fAddToIndexTime + " index update."); //$NON-NLS-1$ + System.out.println(name + " Errors: " //$NON-NLS-1$ + + fStatistics.fUnresolvedIncludes + " unresolved includes, " //$NON-NLS-1$ + + fStatistics.fErrorCount + " unexpected errors."); //$NON-NLS-1$ + int sum= fStatistics.fDeclarationCount+fStatistics.fReferenceCount+fStatistics.fProblemBindingCount; double problemPct= sum==0 ? 0.0 : (double) fStatistics.fProblemBindingCount / (double) sum; NumberFormat nf= NumberFormat.getPercentInstance(); @@ -438,7 +442,6 @@ public abstract class PDOMIndexerTask extends PDOMWriter implements IPDOMIndexer System.out.println(name + " Result: " //$NON-NLS-1$ + fStatistics.fDeclarationCount + " declarations, " //$NON-NLS-1$ + fStatistics.fReferenceCount + " references, " //$NON-NLS-1$ - + fStatistics.fErrorCount + " errors, " //$NON-NLS-1$ + fStatistics.fProblemBindingCount + "(" + nf.format(problemPct) + ") problems."); //$NON-NLS-1$ //$NON-NLS-2$ if (index != null) {