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
eccf9299
Commit
eccf9299
authored
Mar 08, 2023
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Always call Wow64PrepareForException when dispatching an exception.
parent
4d217cb2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
6 additions
and
1 deletion
+6
-1
signal_arm64.c
dlls/ntdll/signal_arm64.c
+2
-0
signal_x86_64.c
dlls/ntdll/signal_x86_64.c
+2
-1
cpu.c
dlls/wow64cpu/cpu.c
+2
-0
No files found.
dlls/ntdll/signal_arm64.c
View file @
eccf9299
...
...
@@ -494,6 +494,8 @@ NTSTATUS WINAPI KiUserExceptionDispatcher( EXCEPTION_RECORD *rec, CONTEXT *conte
NTSTATUS
status
;
DWORD
c
;
if
(
pWow64PrepareForException
)
pWow64PrepareForException
(
rec
,
context
);
TRACE
(
"code=%lx flags=%lx addr=%p pc=%016I64x
\n
"
,
rec
->
ExceptionCode
,
rec
->
ExceptionFlags
,
rec
->
ExceptionAddress
,
context
->
Pc
);
for
(
c
=
0
;
c
<
rec
->
NumberParameters
;
c
++
)
...
...
dlls/ntdll/signal_x86_64.c
View file @
eccf9299
...
...
@@ -508,6 +508,8 @@ NTSTATUS WINAPI dispatch_exception( EXCEPTION_RECORD *rec, CONTEXT *context )
NTSTATUS
status
;
DWORD
c
;
if
(
pWow64PrepareForException
)
pWow64PrepareForException
(
rec
,
context
);
TRACE_
(
seh
)(
"code=%lx flags=%lx addr=%p ip=%Ix
\n
"
,
rec
->
ExceptionCode
,
rec
->
ExceptionFlags
,
rec
->
ExceptionAddress
,
context
->
Rip
);
for
(
c
=
0
;
c
<
min
(
EXCEPTION_MAXIMUM_PARAMETERS
,
rec
->
NumberParameters
);
c
++
)
...
...
@@ -584,7 +586,6 @@ NTSTATUS WINAPI dispatch_wow_exception( EXCEPTION_RECORD *rec_ptr, CONTEXT *cont
RtlInitializeExtendedContext
(
buffer
,
context_ptr
->
ContextFlags
,
&
context_ex
);
context
=
RtlLocateLegacyContext
(
context_ex
,
NULL
);
RtlCopyContext
(
context
,
context_ptr
->
ContextFlags
,
context_ptr
);
pWow64PrepareForException
(
&
rec
,
context
);
return
dispatch_exception
(
&
rec
,
context
);
}
...
...
dlls/wow64cpu/cpu.c
View file @
eccf9299
...
...
@@ -375,6 +375,8 @@ NTSTATUS WINAPI BTCpuResetToConsistentState( EXCEPTION_POINTERS *ptrs )
CONTEXT
*
context
=
ptrs
->
ContextRecord
;
I386_CONTEXT
wow_context
;
if
(
context
->
SegCs
==
cs64_sel
)
return
STATUS_SUCCESS
;
/* exception in 64-bit code, nothing to do */
copy_context_64to32
(
&
wow_context
,
CONTEXT_I386_ALL
,
context
);
wow_context
.
EFlags
&=
~
(
0x100
|
0x40000
);
BTCpuSetContext
(
GetCurrentThread
(),
GetCurrentProcess
(),
NULL
,
&
wow_context
);
...
...
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