Re: Alexandre Julliard : ntdll: More compatible exception information for protection faults.
Hi, this latest addition to the tests throws an exception on win98. Screenshot attached. Probably Alexandre's area, as he wrote the test. Cheers, Paul.
Paul Vriens <Paul.Vriens(a)xs4all.nl> writes:
this latest addition to the tests throws an exception on win98. Screenshot attached.
Probably Alexandre's area, as he wrote the test.
Yes, but I don't have win98 here. Could you please try to find out which of the various exception tests causes that? -- Alexandre Julliard julliard(a)winehq.org
* On Tue, 20 Dec 2005, Alexandre Julliard wrote:
* Paul Vriens <Paul.Vriens(a)xs4all.nl> writes:
this latest addition to the tests throws an exception on win98. Screenshot attached. Probably Alexandre's area, as he wrote the test.
Yes, but I don't have win98 here. Could you please try to find out which of the various exception tests causes that?
I am sorry for ignoring this conversation and sending separate question about the same issue. If that's of some interest, here is the patch that I got rid of BSoDs on WinME with: --- dlls/ntdll/tests/exception.c 2005-12-17 11:38:41.000000000 +0000 +++ /mnt/vcd2/wine/dlls/ntdll/tests/exception.c 2005-12-23 09:45:56.000000000 +0000 @@ -51,16 +51,41 @@ static const struct exception } exceptions[] = { /* test some privileged instructions */ +#if 0 // following two elements makes test stall on WinME { { 0x6c, 0xc3 }, /* insb (%dx); ret */ 0, 1, STATUS_PRIVILEGED_INSTRUCTION, 0 }, { { 0x6d, 0xc3 }, /* insl (%dx); ret */ 0, 1, STATUS_PRIVILEGED_INSTRUCTION, 0 }, +#endif +#if 0 // following two elements gives MSVCRTD dialog box saying: + /* + Debug Error! + + Program: + ...\WIN32_WINE_HEADERS\NTDLL_TEST.EXE + Modue: + File: i386\chkesp.c + Line: 42 + + The value of ESP was not properly saved across a function call. This is usually a result of + calling a function with one calling convention with a function pointer declared + with a different calling convention. + + (Press Retry to debug the application) + + Abort Retry Ignore + */ { { 0x6e, 0xc3 }, /* outsb (%dx); ret */ 0, 1, STATUS_PRIVILEGED_INSTRUCTION, 0 }, { { 0x6f, 0xc3 }, /* outsl (%dx); ret */ 0, 1, STATUS_PRIVILEGED_INSTRUCTION, 0 }, +#endif +#if 0 // BSoD: + // Windows protection error. You need to restart your computer. + // System halted. { { 0xe4, 0x11, 0xc3 }, /* inb $0x11,%al; ret */ 0, 2, STATUS_PRIVILEGED_INSTRUCTION, 0 }, +#endif { { 0xe5, 0x11, 0xc3 }, /* inl $0x11,%eax; ret */ 0, 2, STATUS_PRIVILEGED_INSTRUCTION, 0 }, { { 0xe6, 0x11, 0xc3 }, /* outb %al,$0x11; ret */ @@ -109,8 +134,10 @@ static const struct exception 0, 15, STATUS_PRIVILEGED_INSTRUCTION, 0 }, /* test invalid interrupt */ +#if 0 // BSoD: exception 0D in VMM { { 0xcd, 0xff, 0xc3 }, /* int $0xff; ret */ 0, 2, STATUS_ACCESS_VIOLATION, 2, { 0, 0xffffffff } }, +#endif /* test moves to/from Crx */ { { 0x0f, 0x20, 0xc0, 0xc3 }, /* movl %cr0,%eax; ret */
participants (3)
-
Alexandre Julliard -
Paul Vriens -
Saulius Krasuckas