将CrashDump.dll 加入可执行目录,然后在App类的初始化函数中加入以下代码即可 //加载崩溃时便于定位的动态连接库 //CrashDump主要针对程序(尤其是服务程序,要求7X24小时运行的)在客户现场运行,出现异常退出的情形,为了方便定位问题的原因而开发的。 //其主要功能是能够产生异常出现时候的异常信息描述、系统环境、寄存器信息、错误的堆栈信息以及进程所加载的各个DLL的版本信息等, //同时也生成了DMP文件,能够用来直接进行调试,进入断点,查看各个线程的上下文环境, //从而达到对较难重现的问题(尤其是涉及到大型环境包括软硬件环境比较复杂的), //或者是用户使用操作流程无法描述清楚以致于难以重现的,那么研发可以不需要去费力重现,而是直接进行调试。 //(需要注意的是:在没有重现的情况下,修改后,不能直接说明问题是否解决,但是如果研发检查发现是一些检验不合法的情况,那么至少,可以进行局部模拟其他路径重现) #ifndef _DEBUG CString strDllName = _T("CrashDump.dll"); HMODULE hCrashHandler = LoadLibraryEx(strDllName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); CString strMsg; if (NULL == hCrashHandler) { strMsg.Format(_T("DYMAMBridge error when loading %s."), strDllName); } else { strMsg.Format(_T("DYMAMBridge loaded %s."), strDllName); } OutputDebugString(strMsg); #endif