`
mmdev
  • 浏览: 12847190 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

BB10 Cascades Beta3:如何更方便地查看qDebug()和console.log()信息

 
阅读更多

前面的博文提到在BB10 Cascades Beta3版本里,程序的调试信息,包括qDebug()和console.log()都不会出现在BB10 Cascades开发环境的控制台中。解决这个问题的第一个方法是通过“launch SSH Session”连接到测试机上通过slog2info命令进行查看。有好多人提到这个方法很不方便,需要额外进行连接,而且连接还不稳定。我个人的开发测试中也发现这样很不方便,于是查回BB10 Cascades Beta3的相关文档,测试该文档中提到的另一个方法,发现新的方法更加方面,弄好后就和beta2一样直接在Cascades开发环境控制台中查看调试信息了。
该文档的链接如下:
https://developer.blackberry.com/cascades/documentation/getting_started/tools/debug_and_profile.html

该文档提到的另一个方法就是在程序里加入调试信息的处理器,将调试信息转发到控制台上来。
主要工作是在主函数所在的main.cpp文件中定义一个新方法,用于转发调试信息,函数如下:

void myMessageOutput(QtMsgType type, const char* msg) {
 std::fprintf(stdout, "%s\n", msg);
 std::fflush(stdout);
}


然后就是在主函数中调用qInstallMsgHandler注册处理器,代码如下:

qInstallMsgHandler(myMessageOutput);



这样这个程序的所有qt调试信息就会输出到控制台上了,使用起来很是方便,下面是完整代码:

#include <bb/cascades/Application>

#include <QLocale>
#include <QTranslator>
#include <QTextCodec>
#include <iostream>

using namespace bb::cascades;

void myMessageOutput(QtMsgType type, const char* msg) {
 std::fprintf(stdout, "%s\n", msg);
 std::fflush(stdout);
}

int main(int argc, char **argv) {
 // this is where the server is started etc
 Application app(argc, argv);
 qInstallMsgHandler(myMessageOutput);

 new Demo(&app);

 return Application::exec();
 }

 


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics