介绍一个专门处理C++异常的类
2010-01-23 20:32:25 来源:WEB开发网核心提示:简介:CExceptionLogger,是一个可以免费使用的C++类,介绍一个专门处理C++异常的类,用它可以截获未处理异常,如:非法存取、栈溢出、被零除等,发生异常的线程ID,列举进程中所有的线程(假设ToolHelp32是可获得的),并可以将异常详细信息记录到日志文件,这个类源自于MSDN Magazine 200
简介:
CExceptionLogger,是一个可以免费使用的C++类,用它可以截获未处理异常,如:非法存取、栈溢出、被零除等,并可以将异常详细信息记录到日志文件。这个类源自于MSDN Magazine 2002年3月的一篇专栏文章“Under the Hood: Improved Error Reporting with DBGHELP 5.1”,该文章的作者是 Matt Pietrek。
特性:
在默认情况下,CExceptionLogger产生一个日志文件,名字为:nameofexe.exception,这里的nameofexe是exe文件的名字。如果以ASCII模式生成CExceptionLogger,则日志文件为一ASCII文件;如果以UNICODE模式生成CExceptionLogger,那么日志文件为一UNICODE文件。日志文件记录的信息包括:
记录异常发生的日期和时间。
异常代码。
如果发生非法存取,则记录该异常的详细信息。
记录的异常详细信息包括:线性地址、段、偏移量和模块路径。
进程的全路径名。
当前Win32工作目录。
进程的命令行。
进程ID。
发生异常的线程ID。
列举进程中所有的线程(假设ToolHelp32是可获得的),内容包括:
线程ID
优先级和Delta优先级
参考
创建时间
Kernel 和 User Time
列举进程中的模块(同样假设ToolHelp32是可获得的),内容包括:
名字和全路径
全程及每个进程的引用计数
更多精彩
赞助商链接