我现在正在使用LLVM。它有一个恶心的习惯,即在不正确的输入上终止进程,这样就可以销毁所有有用的上下文和错误消息以及其他所有有价值的东西。
如何拦截这些进程终止调用,以便我可以执行一些有用的调试? VS / Windows特定的答案很好。
答案 0 :(得分:0)
您可以为各种内容设置挂钩,例如abort
,signal
,未处理的异常以及退出程序的其他不寻常方式。如果你在那里提供自己的处理程序,你可以在它们中设置一个断点来捕获附加的调试器发生的事情,或者在你没有连接时保存minidumps / callstacks。
这里有很多关于此类事情的信息: http://randomascii.wordpress.com/2012/07/22/more-adventures-in-failing-to-crash-properly/
答案 1 :(得分:0)
你能用std :: set_terminate,set_unexpected(仅用于意外的异常)和atexit吗?