All calls into the personality and their return when it works (first parameter of personality is ex, second is actions):
```
personality(0000000000f0f9f0, 1)
_URC_CONTINUE_UNWIND
personality(0000000000f0f9f0, 1)
_URC_HANDLER_FOUND
personality(0000000000f0f9f0, 6)
_URC_INSTALL_CONTEXT
personality(0000000000f0f9f0, 2)
_URC_INSTALL_CONTEXT
[2020-11-28 21:44:25.133 crash.exe(15248)] Deallocated!
personality(0000000000f0f9f0, 2)
_URC_CONTINUE_UNWIND
[2020-11-28 21:44:25.135 crash.exe(15248)] Caught!
```

and on a crash:
```
personality(0000000000e603b0, 1)
_URC_CONTINUE_UNWIND
personality(0000000000e603b0, 1)
_URC_HANDLER_FOUND
personality(0000000000e603b0, 6)
_URC_INSTALL_CONTEXT
personality(0000000000e603b0, 2)
_URC_INSTALL_CONTEXT
[2020-11-28 21:45:06.703 crash.exe(12620)] Deallocated!
personality(0000000000e603b0, 2)
_URC_CONTINUE_UNWIND
personality(0000000000e603b0, 2)
_URC_INSTALL_CONTEXT
personality(0000000000e603b0, 2)
_URC_CONTINUE_UNWIND
personality(0000000000e603b0, 2)
_URC_INSTALL_CONTEXT
personality(0000000000e603b0, 2)
_URC_CONTINUE_UNWIND
zsh: segmentation fault  ./crash.exe
```

With removed `free()` (never crashes):
```
personality(0000000000f20170, 1)
_URC_CONTINUE_UNWIND
personality(0000000000f20170, 1)
_URC_HANDLER_FOUND
personality(0000000000f20170, 6)
_URC_INSTALL_CONTEXT
personality(0000000000f20170, 2)
_URC_INSTALL_CONTEXT
[2020-11-28 21:48:16.847 crash.exe(15284)] Deallocated!
personality(0000000000f20170, 2)
_URC_CONTINUE_UNWIND
[2020-11-28 21:48:16.849 crash.exe(15284)] Caught!
```

I have no idea why there are extra ones when it crashes - that is just odd. I would expect this to behave deterministically.

Time to dig into libgcc code, I suppose.