- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从 Eclipse CDT(带有 Qt 集成插件)过渡到 QtCreator 2.0,但 QtCreator 仍有一件事困扰着我:
当我在 QtCreator 中调试时,我在应用程序输出选项卡
中看不到我的 qDebug 消息,直到我停止正在调试的应用程序...然后它们会立即全部显示,这是不是很有用。
使用 Eclipse,我不会遇到此问题:在单步执行源代码时遇到 qDebug 消息时,会正确显示。
我在 Windows 下同时使用 Eclipse CDT 和 Qt Creator。我没有在 Linux 下尝试(目前还没有这个选项)。
最佳答案
虽然不是完整的答案,但您可以安装 DebugView (如果您使用的是 XP 计算机)在尝试解决此问题时查看 qDebug 输出。
另一种解决方案可能被认为是黑客,但效果很好,就是简单地自己劫持调试消息:
#include <QtCore/QCoreApplication>
#include <QDebug>
#include <iostream>
void msgHandler( QtMsgType type, const char* msg )
{
const char symbols[] = { 'I', 'E', '!', 'X' };
QString output = QString("[%1] %2").arg( symbols[type] ).arg( msg );
std::cerr << output.toStdString() << std::endl;
if( type == QtFatalMsg ) abort();
}
int main(int argc, char *argv[])
{
qInstallMsgHandler( msgHandler );
QCoreApplication a(argc, argv);
qDebug() << "Hello world.";
qWarning() << "Uh, oh...";
qCritical() << "Oh, noes!";
qFatal( "AAAAAAAAAH!" );
return a.exec();
}
这会输出:
[I] Hello world.
[E] Uh, oh...
[!] Oh, noes!
[X] AAAAAAAAAH!
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
这实际上是我自己用来将 qDebug、qWarning 等发送到日志文件的一些代码的修改。
关于qt - 在 QtCreator 中调试时如何查看 qDebug 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3299981/
我尝试将 Qt 与 CLion 一起使用。我的问题是 qDebug() 不打印任何内容,但 qInfo()、qWarning()、qCritical() 和 qFatal() 效果很好。这是我的示例代
我们的应用程序中有一段简单的代码: void tAccessPoint::OnStateChanged(QAbstractSocket::SocketState state) { qDebug
我正在尝试使用 QDebug 以十六进制格式显示一个数字。下面是我写的代码。它正在工作,但输出的字符串内容用双引号括起来: 如何删除这些引号? m_CanMsg_ptr->id = 0x720; m_
我一直在调试一个简单的目录应用程序,这个问题开始困扰我。我想创建一个模式对话框,它将接收用户对所显示数据的输入。我有一个简单的结构来保存目录项数据: struct ItemData { int
在我的测试用例中,我想断言 qDebug() 的输出包含某个字符串。例如,这是我的测试的样子。注意 qdebug 输出的“绑定(bind)到 UDP 端口 34772”。我可以从我的测试函数中测试子字
我只是尝试使用 qDebug 打印一个数字,如下所示: qDebug() << QString::number(03001); 但结果是: "1537" 如果我尝试在没有第一个零的情况下打印: qDe
通常当我需要调试某些东西时,使用 qDebug() 打印一些东西比使用调试器逐步调试更容易。问题是 qDebug() 的输出有时根本不显示!与 qWarning 和 qCritical 相同。奇怪的是
我正在使用 C++/Qt 打印函数 qDebug,但有时我想控制如何附加“、空格和换行符并且不使用默认的 qDebug。 我们举个简单的例子: QString var1("some string");
qDebug() 是线程安全的吗?我所说的线程安全不仅仅是指不崩溃,而且如果我从不同的线程调用 qDebug() ,输出是否可能会混淆?我用这段代码对其进行了测试,但似乎并非如此,但是,我在他们谈论这
我在 Qt 5.3.1 中构建了一个 QWidgets 应用程序,并且在某些地方使用了 qDebug() 为了测试这个问题,我构建了一个准系统 QWidgets 应用程序(属于 QMainWindo
我正在使用 qDebug()、qInfo() 等结合 qInstallMessageHandler 来编写我的日志文件。在执行我的应用程序时,我还在批处理屏幕上获得了输出。 我只找到了 QT_NO_D
我想将 qDebug() 输出保留在日志文件中并将其显示在控制台上,我试过这个: qDebug() << "Hand's up!"; QTextStream stream(stdout); QText
我在整个代码中都使用了 qDebug。现在我想通过翻译单元限制它的输出,定义一个单独的宏来启用/禁用翻译单元中的 qDebug 输出: 测试.pro: DEFINES += NO_DEBUG_ONE
我写了一个用于测试数据库连通性的 qt 小型控制台实用程序,代码块是: db.setHostName("hostIP"); db.setDatabaseName("name"); db.s
我见过一些使用 qDebug 的 Qt 代码,就好像它是 printf() qDebug( format, ... ); 大多数时候我看到它像 std::cout 一样使用 qDebug() << "
qDebug()可以输出二进制格式的数据吗? 例如,我想检查一些状态变化: unsigned char status; ... qDebug() << "Status: " << status; 我想
我想使用 qDebug()、qInfo() 等具有自定义默认浮点精度和数字格式的函数。 有没有办法在全局范围内定义它? 想象一下: double num = 1.2; qDebug() << "My
我尽量避免在 QT 程序中混合 QString 和 char* 类型。我有一个对话函数,它返回 QString 中的数据指针,但我得到了非常奇怪的结果。这段代码有什么问题? 编译器及环境 gcc (D
我一直想知道是否可以使用 Qt C++ 中的 qDebug() 语句收集用户输入。 我试着像在标准 C++ 代码中那样做: qDebug() >> myvar; 但是没有用。 如何使用 Qt 从 st
我有一个 QByteArray 来存储从 GPS 接收到的数据,该数据部分是二进制,部分是 ASCII。我想知道调试建议知道收到了什么,所以我正在写一个 qDebug 像这样: //QByteArra
我是一名优秀的程序员,十分优秀!