: The stack is unwound again. For each frame between the throw site and the catch frame, the personality routine calls destructors for local objects ( _UA_CLEANUP_PHASE ). Finally, control jumps to the catch block.
When dynamic_cast<B*>(a_ptr) is performed, the runtime reads the vtable of the object to obtain the type_info of the most derived type and checks if it derives from B . c++ runtime
must return a pointer to the start of the most derived object. The runtime computes this by following a “offset to top” field stored in the vtable. : The stack is unwound again