Merge topic 'internal-error-backtrace'

3de4c295 cmake: Print C++ stack trace after INTERNAL_ERROR messages
This commit is contained in:
Brad King 2014-04-21 09:32:28 -04:00 committed by CMake Topic Stage
commit bb891c2ef1
1 changed files with 17 additions and 0 deletions

View File

@ -24,6 +24,7 @@
#if defined(CMAKE_BUILD_WITH_CMAKE)
# include "cmGraphVizWriter.h"
# include "cmVariableWatch.h"
# include <cmsys/SystemInformation.hxx>
#endif
#include <cmsys/Glob.hxx>
@ -2601,6 +2602,22 @@ void cmake::IssueMessage(cmake::MessageType t, std::string const& text,
// Add a terminating blank line.
msg << "\n";
#if defined(CMAKE_BUILD_WITH_CMAKE)
// Add a C++ stack trace to internal errors.
if(t == cmake::INTERNAL_ERROR)
{
std::string stack = cmsys::SystemInformation::GetProgramStack(0,0);
if(!stack.empty())
{
if(cmHasLiteralPrefix(stack, "WARNING:"))
{
stack = "Note:" + stack.substr(8);
}
msg << stack << "\n";
}
}
#endif
// Output the message.
if(isError)
{