qSetMessagePattern 不显示

博客围绕QtCreator展开,使用DbgView发现其进程输出MI解析错误,无法识别反斜杠转义。问题出在编译器为MinGW且处于调试模式时,代码中调试输出语句不输出,原因是解析出错,解决办法是将双斜线改成单斜线。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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编译器,调试模式下。在代码中所有的调试输出语句都不输出。

因为这里解析出错了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值