我对C++异常处理机制的工作方式很感兴趣.具体来说,存储异常对象的位置以及它如何通过多个范围传播直到被捕获?它存储在一些全球范围内吗?
由于这可能是编译器特定的,有人可以在g ++编译器套件的上下文中解释这一点吗?
在心理上,当C++编译将其转换为汇编程序时,我总是想知道try/throw/catch在幕后是怎么看的.但是因为我从来没有使用它,所以我从来没有去过它(有些人会说懒惰).
是用于跟踪trys 的普通堆栈,还是仅为此目的而保留的单独的每线程堆栈?MSVC和g ++之间的实现是大还是小?请告诉我一些伪asm(IA-32也可以)所以我永远不必自己查看!:)
编辑:现在我了解了基于IA-32处理的MSVC实现的基础知识.任何人都知道在IA-32或其他任何CPU上的g ++?