[PATCH] vcruntime140_1: Pass frame to unwind handler.

Piotr Caban piotr.caban at gmail.com
Fri May 29 04:34:42 CDT 2020


I don't see anything wrong in current code when ui->flags == 1. Probably 
ui->flags == 3 case only needs the frame.

Thanks,
Piotr

On 5/28/20 10:59 PM, Daniel Lehman wrote:
>> 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