Alexandre Julliard : ntdll: More compatible exception
information for protection faults.
Saulius Krasuckas
saulius2 at ar.fi.lt
Fri Dec 23 14:16:16 CST 2005
* On Tue, 20 Dec 2005, Alexandre Julliard wrote:
> * Paul Vriens <Paul.Vriens at 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 */
More information about the wine-devel
mailing list