diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2017-12-13 17:24:32 +0100 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2017-12-14 16:17:37 +0000 |
commit | d89bd9ff5ca19dff031694272c840631d180d95f (patch) | |
tree | 3746f36c747315aa200fa887db2cc6c67d529025 | |
parent | e0bbb0a0bb22a386474af4793632cf06c84f0463 (diff) | |
download | qt-creator-d89bd9ff5ca19dff031694272c840631d180d95f.tar.gz |
Clang: Add file name to qtc.clangbackend.jobs output
This helps to overview debug output in case several files are involved.
Change-Id: I12ee23bd7cec4cd344746ef1323afb3f0ab54d4b
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
-rw-r--r-- | src/tools/clangbackend/source/clangdocumentprocessor.cpp | 4 | ||||
-rw-r--r-- | src/tools/clangbackend/source/clangiasyncjob.h | 1 | ||||
-rw-r--r-- | src/tools/clangbackend/source/clangjobqueue.cpp | 23 | ||||
-rw-r--r-- | src/tools/clangbackend/source/clangjobqueue.h | 4 | ||||
-rw-r--r-- | src/tools/clangbackend/source/clangjobs.cpp | 14 | ||||
-rw-r--r-- | src/tools/clangbackend/source/clangjobs.h | 4 |
6 files changed, 30 insertions, 20 deletions
diff --git a/src/tools/clangbackend/source/clangdocumentprocessor.cpp b/src/tools/clangbackend/source/clangdocumentprocessor.cpp index 1aa5906214..8196e804d0 100644 --- a/src/tools/clangbackend/source/clangdocumentprocessor.cpp +++ b/src/tools/clangbackend/source/clangdocumentprocessor.cpp @@ -35,6 +35,8 @@ #include <utils/algorithm.h> #include <utils/qtcassert.h> +#include <QFileInfo> + namespace ClangBackEnd { class DocumentProcessorData @@ -47,7 +49,7 @@ public: ClangCodeModelClientInterface &client) : document(document) , documents(documents) - , jobs(documents, unsavedFiles, projects, client) + , jobs(documents, unsavedFiles, projects, client, QFileInfo(document.filePath()).fileName()) , supportiveTranslationUnitInitializer(document, jobs) { const auto isDocumentClosedChecker = [this](const Utf8String &filePath, diff --git a/src/tools/clangbackend/source/clangiasyncjob.h b/src/tools/clangbackend/source/clangiasyncjob.h index e4481fcbf5..9d17e874f1 100644 --- a/src/tools/clangbackend/source/clangiasyncjob.h +++ b/src/tools/clangbackend/source/clangiasyncjob.h @@ -33,6 +33,7 @@ #include <functional> Q_DECLARE_LOGGING_CATEGORY(jobsLog); +#define qCDebugJobs() qCDebug(jobsLog) << "[" << m_logTag << "]" namespace ClangBackEnd { diff --git a/src/tools/clangbackend/source/clangjobqueue.cpp b/src/tools/clangbackend/source/clangjobqueue.cpp index 70a15bf463..b1848a16a8 100644 --- a/src/tools/clangbackend/source/clangjobqueue.cpp +++ b/src/tools/clangbackend/source/clangjobqueue.cpp @@ -35,9 +35,10 @@ namespace ClangBackEnd { -JobQueue::JobQueue(Documents &documents, ProjectParts &projectParts) +JobQueue::JobQueue(Documents &documents, ProjectParts &projectParts, const Utf8String &logTag) : m_documents(documents) , m_projectParts(projectParts) + , m_logTag(logTag) { } @@ -45,11 +46,11 @@ bool JobQueue::add(const JobRequest &job) { QString notAddableReason; if (isJobRequestAddable(job, notAddableReason)) { - qCDebug(jobsLog) << "Adding" << job; + qCDebugJobs() << "Adding" << job; m_queue.append(job); return true; } else { - qCDebug(jobsLog) << "Not adding" << job << notAddableReason; + qCDebugJobs() << "Not adding" << job << notAddableReason; cancelJobRequest(job); return false; } @@ -77,7 +78,7 @@ void JobQueue::removeExpiredRequests() try { QString expirationReason; if (isJobRequestExpired(jobRequest, expirationReason)) { - qCDebug(jobsLog) << "Expired:" << jobRequest << expirationReason; + qCDebugJobs() << "Expired:" << jobRequest << expirationReason; cancelJobRequest(jobRequest); } else { cleanedRequests.append(jobRequest); @@ -207,28 +208,28 @@ void JobQueue::cancelJobRequest(const JobRequest &jobRequest) m_cancelJobRequest(jobRequest); } -static bool areRunConditionsMet(const JobRequest &request, const Document &document) +bool JobQueue::areRunConditionsMet(const JobRequest &request, const Document &document) const { using Condition = JobRequest::RunCondition; const JobRequest::RunConditions conditions = request.runConditions; if (conditions.testFlag(Condition::DocumentSuspended) && !document.isSuspended()) { - qCDebug(jobsLog) << "Not choosing due to unsuspended document:" << request; + qCDebugJobs() << "Not choosing due to unsuspended document:" << request; return false; } if (conditions.testFlag(Condition::DocumentUnsuspended) && document.isSuspended()) { - qCDebug(jobsLog) << "Not choosing due to suspended document:" << request; + qCDebugJobs() << "Not choosing due to suspended document:" << request; return false; } if (conditions.testFlag(Condition::DocumentVisible) && !document.isVisibleInEditor()) { - qCDebug(jobsLog) << "Not choosing due to invisble document:" << request; + qCDebugJobs() << "Not choosing due to invisble document:" << request; return false; } if (conditions.testFlag(Condition::DocumentNotVisible) && document.isVisibleInEditor()) { - qCDebug(jobsLog) << "Not choosing due to visble document:" << request; + qCDebugJobs() << "Not choosing due to visble document:" << request; return false; } @@ -236,12 +237,12 @@ static bool areRunConditionsMet(const JobRequest &request, const Document &docum if (document.isDirty()) { // TODO: If the document is dirty due to a project update, // references are processes later than ideal. - qCDebug(jobsLog) << "Not choosing due to dirty document:" << request; + qCDebugJobs() << "Not choosing due to dirty document:" << request; return false; } if (request.documentRevision != document.documentRevision()) { - qCDebug(jobsLog) << "Not choosing due to revision mismatch:" << request; + qCDebugJobs() << "Not choosing due to revision mismatch:" << request; return false; } } diff --git a/src/tools/clangbackend/source/clangjobqueue.h b/src/tools/clangbackend/source/clangjobqueue.h index db0cb9718a..ebdbfd0cd6 100644 --- a/src/tools/clangbackend/source/clangjobqueue.h +++ b/src/tools/clangbackend/source/clangjobqueue.h @@ -37,7 +37,7 @@ class Documents; class JobQueue { public: - JobQueue(Documents &documents, ProjectParts &projects); + JobQueue(Documents &documents, ProjectParts &projects, const Utf8String &logTag = Utf8String()); bool add(const JobRequest &job); @@ -61,6 +61,7 @@ public: // for tests void prioritizeRequests(); private: + bool areRunConditionsMet(const JobRequest &request, const Document &document) const; void cancelJobRequest(const JobRequest &jobRequest); bool isJobRunningForTranslationUnit(const Utf8String &translationUnitId); bool isJobRunningForJobRequest(const JobRequest &jobRequest); @@ -72,6 +73,7 @@ private: private: Documents &m_documents; ProjectParts &m_projectParts; + Utf8String m_logTag; IsJobRunningForTranslationUnitHandler m_isJobRunningForTranslationUnitHandler; IsJobRunningForJobRequestHandler m_isJobRunningForJobRequestHandler; diff --git a/src/tools/clangbackend/source/clangjobs.cpp b/src/tools/clangbackend/source/clangjobs.cpp index 7bec5cdc1c..872aecd936 100644 --- a/src/tools/clangbackend/source/clangjobs.cpp +++ b/src/tools/clangbackend/source/clangjobs.cpp @@ -41,12 +41,14 @@ namespace ClangBackEnd { Jobs::Jobs(Documents &documents, UnsavedFiles &unsavedFiles, ProjectParts &projectParts, - ClangCodeModelClientInterface &client) + ClangCodeModelClientInterface &client, + const Utf8String &logTag) : m_documents(documents) , m_unsavedFiles(unsavedFiles) , m_projectParts(projectParts) , m_client(client) - , m_queue(documents, projectParts) + , m_logTag(logTag) + , m_queue(documents, projectParts, logTag) { m_queue.setIsJobRunningForTranslationUnitHandler([this](const Utf8String &translationUnitId) { return isJobRunningForTranslationUnit(translationUnitId); @@ -132,8 +134,8 @@ bool Jobs::runJob(const JobRequest &jobRequest) asyncJob->setContext(context); if (const IAsyncJob::AsyncPrepareResult prepareResult = asyncJob->prepareAsyncRun()) { - qCDebug(jobsLog) << "Running" << jobRequest - << "with TranslationUnit" << prepareResult.translationUnitId; + qCDebugJobs() << "Running" << jobRequest + << "with TranslationUnit" << prepareResult.translationUnitId; asyncJob->setFinishedHandler([this](IAsyncJob *asyncJob){ onJobFinished(asyncJob); }); const QFuture<void> future = asyncJob->runAsync(); @@ -142,7 +144,7 @@ bool Jobs::runJob(const JobRequest &jobRequest) m_running.insert(asyncJob, runningJob); return true; } else { - qCDebug(jobsLog) << "Preparation failed for " << jobRequest; + qCDebugJobs() << "Preparation failed for " << jobRequest; delete asyncJob; } @@ -151,7 +153,7 @@ bool Jobs::runJob(const JobRequest &jobRequest) void Jobs::onJobFinished(IAsyncJob *asyncJob) { - qCDebug(jobsLog) << "Finishing" << asyncJob->context().jobRequest; + qCDebugJobs() << "Finishing" << asyncJob->context().jobRequest; if (m_jobFinishedCallback) { const RunningJob runningJob = m_running.value(asyncJob); diff --git a/src/tools/clangbackend/source/clangjobs.h b/src/tools/clangbackend/source/clangjobs.h index a0f8449396..c2984db4b4 100644 --- a/src/tools/clangbackend/source/clangjobs.h +++ b/src/tools/clangbackend/source/clangjobs.h @@ -56,7 +56,8 @@ public: Jobs(Documents &documents, UnsavedFiles &unsavedFiles, ProjectParts &projects, - ClangCodeModelClientInterface &client); + ClangCodeModelClientInterface &client, + const Utf8String &logTag = Utf8String()); ~Jobs(); JobRequest createJobRequest(const Document &document, JobRequest::Type type, @@ -90,6 +91,7 @@ private: UnsavedFiles &m_unsavedFiles; ProjectParts &m_projectParts; ClangCodeModelClientInterface &m_client; + Utf8String m_logTag; JobQueue m_queue; RunningJobs m_running; |