- 调用SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)CrashHandler);
- 在CrashHandler回调函数里面写dump文件
调用oldHandler = _set_invalid_parameter_handler(InvalidParameterHandler);
- set_terminate(terminateHandler);
- 在InvalidParameterHandler回调函数中抛出异常触发CrashHandler写dump文件
- 在terminateHandler回调函数中直接打印堆栈信息在日志中,比抛出异常写dump时间更短。
- 打印函数堆栈可以参考StackWalker开源代码,比较好用
- 使用atexit函数注册回调函数,在回调函数中打印堆栈。找到退出的路径。