muduo库源码学习(base)Exception
来源:互联网 发布:阳光优化整合 编辑:程序博客网 时间:2024/06/06 00:49
class Exception : public std::exception{ public: explicit Exception(const char* what); explicit Exception(const string& what); virtual ~Exception() throw(); virtual const char* what() const throw(); const char* stackTrace() const throw(); private: void fillStackTrace(); string message_; string stack_;};
Exception::Exception(const char* msg) : message_(msg){ fillStackTrace();}Exception::Exception(const string& msg) : message_(msg){ fillStackTrace();}Exception::~Exception() throw (){}const char* Exception::what() const throw(){ return message_.c_str();}const char* Exception::stackTrace() const throw(){ return stack_.c_str();}void Exception::fillStackTrace(){ const int len = 200; void* buffer[len]; //该函数用于获取当前线程的调用堆栈,获取的信息将会被存放在buffer中,它是一个指针数组 int nptrs = ::backtrace(buffer, len);//猜测是得到trace的数量,每个trace存到buffer[i]里,即从[0]到[nptrs-1] char** strings = ::backtrace_symbols(buffer, nptrs);//直接返回这个buffer内的可打印信息 if (strings) { for (int i = 0; i < nptrs; ++i) { // TODO demangle funcion name with abi::__cxa_demangle stack_.append(strings[i]); stack_.push_back('\n'); } free(strings);//直接free即可!也就是说malloc的是一个一维数组,只是逻辑成二维; }}
阅读全文
0 0
- muduo库源码学习(base)Exception
- muduo库源码学习(base)Atomic
- muduo库源码学习(base)AsyncLogging
- muduo库源码学习(base)Condition
- muduo库源码学习(base)CountDownLatch
- muduo库源码学习(base)Date
- muduo库源码学习(base)FileUtil
- muduo库源码学习(base)mutex
- muduo库源码学习(base)singleton
- muduo库源码学习(base)ThreadLocal
- muduo库源码学习(base)ThreadLocalSingleton
- muduo库源码学习(base):Logfile
- muduo库源码学习(base):LogStream
- muduo库源码学习(base):WeakCallback
- muduo库源码学习(base)BlockingQueue和BoundBlockingQueue
- muduo库源码学习(base)Thread和CurrentThread
- muduo网络库源码学习————Exception类
- [Muduo网络库源码分析] (10) base/ThreadPoll_cc_h_线程池
- jQuery(html,[ownerDocument]). jQuery([selector,[context]])
- 手形鼠标
- 利用java工程配置文件生成数据表的增删改查dao层(xml)
- 约瑟夫问题
- 【java学习】数据类型
- muduo库源码学习(base)Exception
- ubuntu拷贝文件夹到另外一个文件夹下,如何写shell命令:
- mybatis如何防止sql注入
- storm中的ack-fail机制
- Android 简单讯飞语音合成与语音听写
- 二、机器学习理论起点 ,模型及关键定理
- js第二天
- 【小算法】求约数个数
- Redis及其监控工具简介