介绍一个专门处理C++异常的类
2010-01-23 20:32:25 来源:WEB开发网模块句柄
大小
模块完全展开后的所有符号
所有x86寄存器。
异常发生的调用堆栈,包括:段、偏移量、模块、函数和行信息。
日志文件记录的内容还包括每一个堆栈帧(stack frame)以及所有模块、所有变量、所有参数;所有基本数据类型,如:voids, chars, shorts, words, ints, DWORDS, floats, doubles 和 longs。此外日志还记录用户定义的数据类型(UDT)包括结构、联合以及类的信息,再现其成员数据。每种类型都包括名字、地址、类型和值。如果变量是一数组,该数组中的值被完全记录。
版权声明:
你可以在任何以二进制形式发布的产品(包括商业的、共享的、自由的或其它的)中包含此源代码
在不修改每个模块(*.h、*.cpp)最上方版权细则的前提下,你可以用任何方式修改源代码
如果你想要与自己的应用程序一起分发源代码,只允许分发作者最新发布的版本,以便保证源代码的出处是唯一的
使用方法:
编译这个类需要安装2002年11月以后发布的平台SDK。使用时既可以将 ExceptHandler.cpp/h 文件直接添加到C++工程中,也可以用DLL输出异常处理函数类,并用LoadLibrary函数在需要时动态加载DLL。
ExceptHandler的二进制版本在XCPTHLR.DLL中提供。此DLL可以从本文最上方链接处下载。
为了在客户机器上运行该代码,必须分发DBGHELP 5.1 动态链接库,这个库可以从2002年11月以后的平台SDK中获得。选择“Install Debugging Tools for Windows”选项安装该DLL。此外,还要注意DBGHELP 动态链接库在最新的 Windows 版本中是受到保护 Windows 系统文件,所以请将 DBGHELP 动态链接库放在与应用程序相同的目录中。
更多精彩
赞助商链接