我有一个我正在维护的大型Win32程序,并且我希望在发生错误的情况下自动无条件地生成一个minidump文件。我不能要求客户安装userdump.exe,我也不能要求他们安装visual studio。
这样做有好办法吗?我是否能够生成一个minidump,无论是从我们的断言处理程序调用abort()(这是复杂的),是否有人触及坏内存,或者其他任何非常糟糕的事情发生。
在Posix上,我安装了一个信号处理程序并完成了这项工作。我的理解是Windows上的等效方法是SEH,但我们的程序在很多不同的地方启动了很多线程,所以用__try / __ catch包装每个线程入口点会非常痛苦。
想法?
答案 0 :(得分:1)
有google breakpad 个客户端和服务器组件用于捕获崩溃。你可以使用这个lib
您也可以使用AddVectoredExceptionHandler注册过滤器(可以检查不同的探险类型)回调以处理异常。
我希望它有所帮助