1

我现在正在使用 LLVM。它有一个令人作呕的习惯,即在不正确的输入时终止进程,因此所有有用的上下文和错误消息以及几乎所有其他有价值的东西都被破坏了。

如何拦截这些进程终止调用,以便执行一些有用的调试?VS/Windows 特定的答案很好。

4

2 回答 2

0

您可以为各种事物设置挂钩,例如abortsignal、未处理的异常和其他退出程序的不寻常方式。如果您为那里提供自己的处理程序,您可以在其中设置一个断点来捕获附加调试器时发生的事情,或者在您未附加时保存小型转储/调用堆栈。

这里有很多关于这种事情的信息: http ://randomascii.wordpress.com/2012/07/22/more-adventures-in-failing-to-crash-properly/

于 2013-11-04T14:21:29.420 回答
0

你不能用 std::set_terminate、set_unexpected (仅用于意外异常)和 atexit 做点什么吗?

于 2013-11-04T14:27:24.707 回答