debuggerprotocol.cpp\debugger\plugins\src - qt-creator/qt-creator.git - A cross-platform Qt IDEhttps://code.qt.io/cgit/qt-creator/qt-creator.git/tree/src/plugins/debugger/debuggerprotocol.cpp?h=master
使用 DbgView 发现 QtCreator 进程会输出这句话:
"MI Parse Error, unrecognized backslash escape"
这句话意思是:MI 解析错误,无法识别的反斜杠转义。
static void parseSimpleEscape(DebuggerOutputParser &parser, QString &result)
{
if (parser.isAtEnd()) {
qDebug() << "MI Parse Error, unterminated backslash escape";
return;
}
const QChar c = parser.current();
parser.advance();
switch (c.unicode()) {
case 'a': result += '\a'; break;
case 'b': result += '\b'; break;
case 'f': result += '\f'; break;
case 'n': result += '\n'; break;
case 'r': result += '\r'; break;
case 't': result += '\t'; break;
case 'v': result += '\v'; break;
case '"': result += '"'; break;
case '\'': result += '\''; break;
case '\\': result += '\\'; break;
default:
qDebug() << "MI Parse Error, unrecognized backslash escape";
}
}
代码中如下
qSetMessagePattern ("file:\\%{file}:%line msg:%{message}");
看来和斜线这个符号有关系。把双斜线改成单斜线即可。
这个问题出现在 编译器是MinGW编译器,调试模式下。在代码中所有的调试输出语句都不输出。
因为这里解析出错了。