Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
0fdcab06
Commit
0fdcab06
authored
Jun 22, 2010
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll/tests: Fix some exception tests for Wow64.
parent
6cf16d72
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
5 deletions
+10
-5
exception.c
dlls/ntdll/tests/exception.c
+10
-5
No files found.
dlls/ntdll/tests/exception.c
View file @
0fdcab06
...
@@ -143,9 +143,9 @@ static const struct exception
...
@@ -143,9 +143,9 @@ static const struct exception
/* 20 */
/* 20 */
/* test overlong instruction (limit is 15 bytes, 5 on Win7) */
/* test overlong instruction (limit is 15 bytes, 5 on Win7) */
{
{
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0xfa
,
0xc3
},
{
{
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0x64
,
0xfa
,
0xc3
},
0
,
16
,
FALS
E
,
STATUS_ILLEGAL_INSTRUCTION
,
0
},
0
,
16
,
TRU
E
,
STATUS_ILLEGAL_INSTRUCTION
,
0
},
{
{
0x64
,
0x64
,
0x64
,
0x64
,
0xfa
,
0xc3
},
{
{
0x64
,
0x64
,
0x64
,
0x64
,
0xfa
,
0xc3
},
0
,
5
,
FALS
E
,
STATUS_PRIVILEGED_INSTRUCTION
,
0
},
0
,
5
,
TRU
E
,
STATUS_PRIVILEGED_INSTRUCTION
,
0
},
/* test invalid interrupt */
/* test invalid interrupt */
{
{
0xcd
,
0xff
,
0xc3
},
/* 21: int $0xff; ret */
{
{
0xcd
,
0xff
,
0xc3
},
/* 21: int $0xff; ret */
...
@@ -246,7 +246,9 @@ static LONG CALLBACK rtlraiseexception_vectored_handler(EXCEPTION_POINTERS *Exce
...
@@ -246,7 +246,9 @@ static LONG CALLBACK rtlraiseexception_vectored_handler(EXCEPTION_POINTERS *Exce
rec
->
ExceptionAddress
,
(
char
*
)
code_mem
+
0xb
);
rec
->
ExceptionAddress
,
(
char
*
)
code_mem
+
0xb
);
if
(
pNtCurrentTeb
()
->
Peb
->
BeingDebugged
)
if
(
pNtCurrentTeb
()
->
Peb
->
BeingDebugged
)
ok
((
void
*
)
context
->
Eax
==
pRtlRaiseException
,
"debugger managed to modify Eax to %x should be %p
\n
"
,
ok
((
void
*
)
context
->
Eax
==
pRtlRaiseException
||
broken
(
is_wow64
&&
context
->
Eax
==
0xf00f00f1
),
/* broken on vista */
"debugger managed to modify Eax to %x should be %p
\n
"
,
context
->
Eax
,
pRtlRaiseException
);
context
->
Eax
,
pRtlRaiseException
);
/* check that context.Eip is fixed up only for EXCEPTION_BREAKPOINT
/* check that context.Eip is fixed up only for EXCEPTION_BREAKPOINT
...
@@ -773,7 +775,9 @@ static void test_debugger(void)
...
@@ -773,7 +775,9 @@ static void test_debugger(void)
/* ctx.Eip is the same value the exception handler got */
/* ctx.Eip is the same value the exception handler got */
if
(
de
.
u
.
Exception
.
ExceptionRecord
.
ExceptionCode
==
EXCEPTION_BREAKPOINT
)
if
(
de
.
u
.
Exception
.
ExceptionRecord
.
ExceptionCode
==
EXCEPTION_BREAKPOINT
)
{
{
ok
((
char
*
)
ctx
.
Eip
==
(
char
*
)
code_mem_address
+
0xa
,
"Eip at 0x%x instead of %p
\n
"
,
ok
((
char
*
)
ctx
.
Eip
==
(
char
*
)
code_mem_address
+
0xa
||
broken
(
is_wow64
&&
(
char
*
)
ctx
.
Eip
==
(
char
*
)
code_mem_address
+
0xb
),
"Eip at 0x%x instead of %p
\n
"
,
ctx
.
Eip
,
(
char
*
)
code_mem_address
+
0xa
);
ctx
.
Eip
,
(
char
*
)
code_mem_address
+
0xa
);
/* need to fixup Eip for debuggee */
/* need to fixup Eip for debuggee */
if
((
char
*
)
ctx
.
Eip
==
(
char
*
)
code_mem_address
+
0xa
)
if
((
char
*
)
ctx
.
Eip
==
(
char
*
)
code_mem_address
+
0xa
)
...
@@ -824,7 +828,8 @@ static DWORD simd_fault_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_R
...
@@ -824,7 +828,8 @@ static DWORD simd_fault_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_R
ok
(
rec
->
ExceptionCode
==
STATUS_FLOAT_MULTIPLE_TRAPS
,
ok
(
rec
->
ExceptionCode
==
STATUS_FLOAT_MULTIPLE_TRAPS
,
"exception code: %#x, should be %#x
\n
"
,
"exception code: %#x, should be %#x
\n
"
,
rec
->
ExceptionCode
,
STATUS_FLOAT_MULTIPLE_TRAPS
);
rec
->
ExceptionCode
,
STATUS_FLOAT_MULTIPLE_TRAPS
);
ok
(
rec
->
NumberParameters
==
1
,
"# of params: %i, should be 1
\n
"
,
ok
(
rec
->
NumberParameters
==
1
||
broken
(
is_wow64
&&
rec
->
NumberParameters
==
2
),
"# of params: %i, should be 1
\n
"
,
rec
->
NumberParameters
);
rec
->
NumberParameters
);
if
(
rec
->
NumberParameters
==
1
)
if
(
rec
->
NumberParameters
==
1
)
ok
(
rec
->
ExceptionInformation
[
0
]
==
0
,
"param #1: %lx, should be 0
\n
"
,
rec
->
ExceptionInformation
[
0
]);
ok
(
rec
->
ExceptionInformation
[
0
]
==
0
,
"param #1: %lx, should be 0
\n
"
,
rec
->
ExceptionInformation
[
0
]);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment