Poco::NestedDiagnosticContext
来源:互联网 发布:大码女装淘宝店 编辑:程序博客网 时间:2024/04/28 16:05
// 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宏的话,
代码实例
#include "Poco/NestedDiagnosticContext.h"#include <iostream> void f1(){ poco_ndc(f1); // 也可以调用poco_ndc_dbg Poco::NDC::current().dump(std::cout); //current获取当前NDC的引用,dump输出到cout}void f2(){ poco_ndc(f2); f1();}int main(){ poco_ndc(main); f2(); return 0;}
结果
- Poco::NestedDiagnosticContext
- POCO
- Poco::Path & Poco::File
- 【Poco】Poco vs Boost
- Poco::Base64Encoder,Poco::Base64Decoder
- 【Poco】Poco vs Boost
- Poco::format & Poco::NumberFormatter & Poco::NumberParser
- Poco简介
- POCO c++
- Poco::Ascii
- Poco::Bugcheck
- Poco::ByteOrder
- Poco::MemoryPool
- Poco::BasicEvent
- Poco::DataTime
- Poco::Notification
- Poco::Logger
- Poco::ThreadLocal
- 建立匿名访问Web服务器
- struts1与struts2本质区别
- POJ 2245 Lotto
- Boost Graph Library 快速入门
- C语言 sizeof和strlen之间的那些事 C/C++软件开发求职面试题 必备考点(一)
- Poco::NestedDiagnosticContext
- VC程序错误问题查找
- 关于ERP项目的实施
- oracle学习笔记——视图、索引(转载)
- Android动画开发——Animation动画效果
- 【学习】我,这样,考上,东大,和,哈佛 [日]本山胜宽
- 设计模式之策略模式
- Doctrine查询方法
- 借用现有工程进行directfb的编译