读书人

Poco:NestedDiagnosticContext

发布时间: 2012-09-02 21:00:34 作者: rapoo

Poco::NestedDiagnosticContext
// Library: Foundation

// Package: Core

// Module: NestedDiagnosticContext

// Namespace: Poco

//功能:对函数调用栈进行跟踪,调试时,可以将调用栈信息tag到日志里,前提是,你在代码中加入了poco_ndc(func)或poco_ndc_dbg(func)这两个宏的调用。

public方法void dump(std::ostream& ostr) const;static NestedDiagnosticContext& current();poco_ndc(func) or poco_ndc_dbg(func)
dump

将栈信息输出到ostr流中,每行一个函数信息。输出信息格式见下面的图。

current

得到当前线程的NestedDiagnosticContext对象(简称NCD对象)。Poco库已经预先为每个线程定义了一个NCD对象,且是线程安全的,所以,直接调用current方法,就可得到对当前线程NCD对象的引用。

poco_ndc(func)

这是个宏,定义宏是为了减少代码量,对内部的push,pop等方法进行封装。我们只需要在每个函数定义的开始地方,调用poco_ndc(函数名),就可以对函数调用栈进行跟踪。

poco_ndc_dbg和poco_ndc的功能一样,如果不定义_DEBUG宏的话,


代码实例


读书人网 >操作系统

热点推荐