Description
Exception happens when running dbghelp_apitest.exe pdb
| Running Wine Test, Module: dbghelp, Test: pdb
 | 
It breaks on
|         /* Check, if the resulting stack frame is valid */ | 
|         if ((EstablisherFrame < StackLow) || | 
|             (EstablisherFrame > StackHigh) || | 
|             (EstablisherFrame & 7)) | 
|         { | 
|             /// TODO: Handle DPC stack | 
|             __debugbreak(); // <= HERE | 
|             RtlRaiseStatus(STATUS_BAD_STACK); | 
|         }
 | 
Backtrace:
| kd> kp | 
|  # Child-SP          RetAddr           Call Site | 
| 00 00000000`0012e4f0 000007ff`b754de03 ntdll!RtplUnwindInternal(void * TargetFrame = 0x00000000`00000000, void * TargetIp = 0x00000000`00000000, struct _EXCEPTION_RECORD * ExceptionRecord = 0x00000000`0012efd0, void * ReturnValue = 0x00000000`00000000, struct _CONTEXT * ContextRecord = 0x00000000`0012eb00, struct _UNWIND_HISTORY_TABLE * HistoryTable = 0x00000000`00000000, unsigned long HandlerType = 1)+0x175 [E:\amd64\reactos\sdk\lib\rtl\amd64\unwind.c @ 749]  | 
| 01 00000000`0012eab0 000007ff`b751854a ntdll!RtlDispatchException(struct _EXCEPTION_RECORD * ExceptionRecord = 0x00000000`0012efd0, struct _CONTEXT * ContextRecord = 0x00000000`0012eb00)+0x63 [E:\amd64\reactos\sdk\lib\rtl\amd64\except.c @ 129]  | 
| 02 00000000`0012eb00 000007ff`b750ed1e ntdll!KiUserExceptionDispatcher+0x6 | 
| 03 00000000`0012f0a4 10000000`00000000 ntdll!LdrpCallInitRoutine(<function> * EntryPoint = 0xb754d6d1`00000000, void * BaseAddress = 0x10000000`000007ff, unsigned long Reason = 0, void * Context = 0x00000000`00000000)+0x2e [E:\amd64\reactos\dll\ntdll\ldr\ldrutils.c @ 107]  | 
| 04 00000000`0012f0ac 00000001`00000000 0x10000000`00000000
 | 
Which leads to
| BOOLEAN | 
| NTAPI | 
| LdrpCallInitRoutine(IN PDLL_INIT_ROUTINE EntryPoint, | 
|                     IN PVOID BaseAddress, | 
|                     IN ULONG Reason, | 
|                     IN PVOID Context) | 
| { | 
|     /* Call the entry */ | 
|     return EntryPoint(BaseAddress, Reason, Context); | 
| } <= HERE (on the ret) | 
To do:
- Why and where exactly does it except?
- Why is the stack unaligned?