On Thu Sep 18 13:32:42 2025 +0000, Stian Low wrote:
Simple test cases have been added but `./dlls/ntdll/tests` fails when running `make test` with these logs:
016c:err:seh:call_seh_handlers invalid frame 000000000022FD88 (00007FFFFE102000-00007FFFFE1FFD20) 016c:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception. make[1]: *** [Makefile:235094: dlls/ntdll/tests/i386-windows/exception.ok] Error 5 make[1]: Leaving directory '/home/any/tmp/wine_stianlow_new_wow64_build_000' make: *** [Makefile:36: test] Error 2
It fails even without any of my changes so there may be existing bugs for ntdll tests. I'm running the tests using new wow64 and have not tested shared wow64. Other tests like ntdsapi succeed without issues. ntdll has a mix of i386 and x86_64 functions. i386 test_prot_fault() and x86_64 test_debugger() seem to have issues. When I comment these out the tests succeed. If I might be doing something wrong please let me know. Otherwise I'm working to fix these issues to include with this merge request unless they should be handled separately.
Commenting this line allow i386 test_prot_fault() to succeed: ``` modified dlls/ntdll/tests/exception.c @@ -550,9 +550,9 @@ static const struct exception { { 0x06, 0x31, 0xc0, 0x8e, 0xc0, 0x26, 0xa1, 0, 0, 0, 0, 0x07, 0xc3 }, /* push %es; xor %eax,%eax; mov %ax,%es; mov %es:(0),%ax; pop %es; ret */ 5, 6, TRUE, STATUS_ACCESS_VIOLATION, 2, { 0, 0xffffffff } }, - { { 0x0f, 0xa8, 0x31, 0xc0, 0x8e, 0xe8, 0x65, 0xa1, 0, 0, 0, 0, 0x0f, 0xa9, 0xc3 }, - /* push %gs; xor %eax,%eax; mov %ax,%gs; mov %gs:(0),%ax; pop %gs; ret */ - 6, 6, FALSE, STATUS_ACCESS_VIOLATION, 2, { 0, 0xffffffff } }, + /* { { 0x0f, 0xa8, 0x31, 0xc0, 0x8e, 0xe8, 0x65, 0xa1, 0, 0, 0, 0, 0x0f, 0xa9, 0xc3 }, */ + /* /* push %gs; xor %eax,%eax; mov %ax,%gs; mov %gs:(0),%ax; pop %gs; ret */ */ + /* 6, 6, FALSE, STATUS_ACCESS_VIOLATION, 2, { 0, 0xffffffff } }, */
```
Switching param 4 wow64_broken from FALSE to TRUE does not fix so its something else.