c – 如何在不丢失原始调用堆栈的情况下重新抛出异常?

情况如下:线程A捕获异常,将异常的数据保存在内存中的某处(在异常过滤器中使用GetExceptionInformation),然后线程B获取该异常信息并想要重新抛出它.但问题是,当线程B重新捕获捕获的异常时,我错过了导致异常的原始调用堆栈.
如何在不丢失原始调用堆栈的情况下重新抛出异常? (注意这个问题是关于C).
最佳答案
您可以在catch块中展开堆栈并将其保存为您要重新抛出的异常的一部分.在C中展开堆栈有点棘手,但您可以查看WxWidgets附带的crashdump收集器代码作为示例.

转载注明原文:c – 如何在不丢失原始调用堆栈的情况下重新抛出异常? - 代码日志