gpt4 book ai didi

debugging - 当打印到 Qt Creator 的调试控制台时,__FILE__ 和 __LINE__ 可以链接吗?

转载 作者:行者123 更新时间:2023-12-03 06:35:57 24 4
gpt4 key购买 nike

标题:

#define TRACE_ERROR(s)                      \
{
...
char TraceBuffer[512];
sprintf(TraceBuffer, "%s\t(%s:%d)", s, __FILE__, __LINE__);
DebugErrTrace(TraceBuffer);
...
}

实现:

void DebugErrTrace(char *String, ...) {
...
qDebug() << String;
}

上面输出了一行调试跟踪,可能看起来像这样

错误 文件丢失! (..\trunk\Common\FileManager.cpp:102)

在 Qt Creator 的调试控制台中。

我注意到 Qt 自己的错误消息,例如

Object::connect:..\trunk\Components\Class.cpp:301 中没有这样的插槽 cClass::Method(QString)

在调试行的 __FILE__:__LINE__ 部分创建看起来像超链接的内容,链接到导致问题的行。有什么办法可以用我自己的调试输出来做到这一点吗?

干杯,山姆

最佳答案

根据 Qt Creator 源代码 ( there ),仅为与这些正则表达式匹配的行创建超链接:

"^(?:\\[Qt Message\\] )?(file:///.+:\\d+(?::\\d+)?):"
"Object::.*in (.*:\\d+)"
"ASSERT: .* in file (.+, line \\d+)"
"^ Loc: \\[(.*)\\]"

因此,您可以构建的最简单的行如下所示:

qWarning("file:///%s:%i: %s", __FILE__, __LINE__, "your message");
qWarning(" Loc: [%s:%i] %s", __FILE__, __LINE__, "your message");

Qt Creator 似乎并不关心 "file:///" 之后的路径是否是绝对路径。

关于debugging - 当打印到 Qt Creator 的调试控制台时,__FILE__ 和 __LINE__ 可以链接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7916267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com