Hi,
On 04/20/17 16:42, Daniel Lehman wrote:
- if (descr->magic >= CXX_FRAME_MAGIC_VC8 &&
(descr->flags & FUNC_DESCR_SYNCHRONOUS) &&
(rec->ExceptionCode != CXX_EXCEPTION && rec->ExceptionCode != STATUS_UNWIND_CONSOLIDATE))
return ExceptionContinueSearch; /* handle only c++ exceptions */
I think the condition for STATUS_UNWIND_CONSOLIDATE should also check number of parameters and ExceptionInformation[0]==(ULONG_PTR)call_catch_block like it's done during unwinding.
Also the code breaks unwinding for longjump when FUNC_DESCR_SYNCHRONOUS flag is set.
Thanks, Piotr