> Date: Wed, 31 Oct 2018 09:54:35 +0100
> From: Patrick Wildt <[email protected]>
>
> Hi,
>
> during the libunwind update to 6.0 we lost a particular patchset that
> fixes register numbering for OpenBSD/i386, thus breaking exception
> handling on that platform. Looks like no one noticed until now.
>
> ok?
I don't think so. The code in src/Registers.hpp effectively swaps the
two registers on !__APPLE__ platforms. Is that not working?
> diff --git a/lib/libunwind/include/libunwind.h
> b/lib/libunwind/include/libunwind.h
> index 29cf62e4335..4ff0c01b4e2 100644
> --- a/lib/libunwind/include/libunwind.h
> +++ b/lib/libunwind/include/libunwind.h
> @@ -164,8 +164,13 @@ enum {
> UNW_X86_ECX = 1,
> UNW_X86_EDX = 2,
> UNW_X86_EBX = 3,
> +#ifdef __OpenBSD__
> + UNW_X86_ESP = 4,
> + UNW_X86_EBP = 5,
> +#else
> UNW_X86_EBP = 4,
> UNW_X86_ESP = 5,
> +#endif
> UNW_X86_ESI = 6,
> UNW_X86_EDI = 7
> };
>
>