On Wed Jan 24 20:22:48 2024 +0000, Alexandre Julliard wrote:
It's fairly recent, basically since the PE/Unix separation was completed. Crashes in Unix libs essentially longjmp() to the last syscall entry point, they don't report an exception to the PE side, so there's no unwinding. The only case where the unwinder could see an address in a Unix lib is if there's a .dll.so that calls Unix without going through the syscall interface. That can't be allowed on aarch64, because it wouldn't preserve x18.
Ok, that's great stuff indeed, and makes things clearer and nicer! Some of the custom opcodes for unwinding through unixlib trampolines were quite a mess.