相关疑难解决方法(0)

在C++中__FILE __,_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

假设您的C++编译器支持它们,是否有任何特殊原因使用__FILE__,__LINE__以及__FUNCTION__用于记录和调试目的?

我主要关注的是为用户提供误导性数据 - 例如,由于优化而报告错误的行号或功能,或者因此导致性能下降.

基本上,我可以信任__FILE__,__LINE____FUNCTION__永远做正确的事?

c++ debugging logging c-preprocessor

149
推荐指数
6
解决办法
23万
查看次数

qDebug没有显示__FILE __,__ LINE__

根据qlogging.h

#define qDebug QMessageLogger(__FILE__, __LINE__, Q_FUNC_INFO).debug
Run Code Online (Sandbox Code Playgroud)

但是当我使用这样的时候,文件,行,功能名称都没有显示出来.

qDebug()<< "abc"; // only show abc;
qDebug()<< "";    // show nothing;
Run Code Online (Sandbox Code Playgroud)

我搜索了一会儿,似乎没有人像我上面那样有问题.

我使用ubuntu14.04,g ++版本4.8.2,从git构建qt5.3.

qt

5
推荐指数
3
解决办法
8727
查看次数

QML文件的__FILE __,_ _ _ 3和__FUNCTION__?

作为一个我正在研究的项目越来越大我厌倦了编写全面的日志消息,需要找出出错的地方和地点.

因此,如果我可以自动将这些信息合并到消息中,那将非常有用.对于C++,我们有方便__FILE__,__LINE____FUNCTION__宏,但我似乎还没有找到任何的QML.

请注意,console.trace()控制台中的跟踪以下列格式输出:

onCompleted (qrc:/main.qml:72)

所以它包括函数,文件和行,这是我所需要的,因此我假设已经存在一种方法来获取它们.自然,console.trace()并没有真正削减它,因为它直接输出到控制台,而我需要那些作为字符串,以包含在我的日志消息中.

那么有什么办法可以获得这些吗?

当然我不想让它们进入实际的QML源代码,但是同样的方式console.trace()- 在Log.error()调用my的地方,所以我可以Log.error("some error")而不是Log.error("some error in " + file + ", at " + line + " while executing " + func)实际上比手动编写整个东西更乏味.

或者,我也很感激,如果有人能指出我对consoleqml 的实现,因为我梳理了整个qtdeclarative代码库的"控制台"并没有发现任何东西.

请注意,我已经找到了这个,但它对我没有用,因为我需要为特定的消息子集,并且不希望覆盖所有输出的默认消息处理程序.

qt qml

4
推荐指数
1
解决办法
489
查看次数

标签 统计

qt ×2

c++ ×1

c-preprocessor ×1

debugging ×1

logging ×1

qml ×1