summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2017-12-13 17:24:32 +0100
committerNikolai Kosjar <nikolai.kosjar@qt.io>2017-12-14 16:17:37 +0000
commitd89bd9ff5ca19dff031694272c840631d180d95f (patch)
tree3746f36c747315aa200fa887db2cc6c67d529025
parente0bbb0a0bb22a386474af4793632cf06c84f0463 (diff)
downloadqt-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.cpp4
-rw-r--r--src/tools/clangbackend/source/clangiasyncjob.h1
-rw-r--r--src/tools/clangbackend/source/clangjobqueue.cpp23
-rw-r--r--src/tools/clangbackend/source/clangjobqueue.h4
-rw-r--r--src/tools/clangbackend/source/clangjobs.cpp14
-rw-r--r--src/tools/clangbackend/source/clangjobs.h4
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;