[PATCH] vcruntime140_1: Pass frame to unwind handler.

Daniel Lehman dlehman25 at gmail.com
Thu May 28 15:59:24 CDT 2020


> Do you have code that depends on that change?

all unwind handlers i see do.  but i realized i can't demonstrate it
without another change to how the flags in read_unwind_info are
treated (was trying to send some smaller, hopefully independent
commits out of order from my working tree first...)

a simple sample that demonstrates it requires a member variable:
class test {
public:
     test(int d) : id(d) { printf("ctor %x\n", id); }
     ~test() { printf("dtor %x\n", id); }
     int id;
};

try
{
    test t(0x42);
    throw 1;
}
catch (int i)
{
     printf("catch %d\n", i);
}

the 'return FALSE' for flag 0x2 in read_unwind_info has to be
commented out.  but with that change and this commit for the frame,
you should see "ctor 0x42" and "dtor 0x42".  it crashes or outputs
garbage values without the frame

thanks
daniel



More information about the wine-devel mailing list