summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmMakefile.cxx10
1 files changed, 8 insertions, 2 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 8d02092..a65f6ba 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -276,11 +276,13 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
cmListFileBacktrace cmMakefile::GetBacktrace() const
{
cmListFileBacktrace backtrace(this->StateSnapshot);
+ cmState::Snapshot snp = this->StateSnapshot;
for(std::vector<cmListFileContext const*>::const_reverse_iterator
i = this->ContextStack.rbegin();
- i != this->ContextStack.rend(); ++i)
+ i != this->ContextStack.rend(); ++i, snp = snp.GetCallStackParent())
{
cmListFileContext frame = *(*i);
+ frame.FilePath = snp.GetExecutionListFile();
backtrace.Append(frame);
}
return backtrace;
@@ -292,11 +294,15 @@ cmMakefile::GetBacktrace(cmListFileContext const& lfc) const
{
cmListFileBacktrace backtrace(this->StateSnapshot);
backtrace.Append(lfc);
+ cmState::Snapshot snp = this->StateSnapshot;
+ assert(snp.GetExecutionListFile() == lfc.FilePath);
+ snp = snp.GetCallStackParent();
for(std::vector<cmListFileContext const*>::const_reverse_iterator
i = this->ContextStack.rbegin();
- i != this->ContextStack.rend(); ++i)
+ i != this->ContextStack.rend(); ++i, snp = snp.GetCallStackParent())
{
cmListFileContext frame = *(*i);
+ frame.FilePath = snp.GetExecutionListFile();
backtrace.Append(frame);
}
return backtrace;