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
d775b9fd
Commit
d775b9fd
authored
Jul 28, 2020
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Reimplement RtlRaiseException() to build a correct context on ARM.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
57f41999
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
8 deletions
+15
-8
signal_arm.c
dlls/ntdll/signal_arm.c
+15
-8
No files found.
dlls/ntdll/signal_arm.c
View file @
d775b9fd
...
@@ -239,14 +239,21 @@ void WINAPI RtlUnwind( void *endframe, void *target_ip, EXCEPTION_RECORD *rec, v
...
@@ -239,14 +239,21 @@ void WINAPI RtlUnwind( void *endframe, void *target_ip, EXCEPTION_RECORD *rec, v
/***********************************************************************
/***********************************************************************
* RtlRaiseException (NTDLL.@)
* RtlRaiseException (NTDLL.@)
*/
*/
void
WINAPI
RtlRaiseException
(
EXCEPTION_RECORD
*
rec
)
__ASM_STDCALL_FUNC
(
RtlRaiseException
,
4
,
{
"push {r0, lr}
\n\t
"
CONTEXT
context
;
"sub sp, sp, #0x1a0
\n\t
"
/* sizeof(CONTEXT) */
"mov r0, sp
\n\t
"
/* context */
RtlCaptureContext
(
&
context
);
"bl "
__ASM_NAME
(
"RtlCaptureContext"
)
"
\n\t
"
rec
->
ExceptionAddress
=
(
LPVOID
)
context
.
Pc
;
"ldr r0, [sp, #0x1a0]
\n\t
"
/* rec */
RtlRaiseStatus
(
NtRaiseException
(
rec
,
&
context
,
TRUE
));
"ldr r1, [sp, #0x1a4]
\n\t
"
}
"str r1, [sp, #0x40]
\n\t
"
/* context->Pc */
"str r1, [r0, #12]
\n\t
"
/* rec->ExceptionAddress */
"add r1, sp, #0x1a8
\n\t
"
"str r1, [sp, #0x38]
\n\t
"
/* context->Sp */
"mov r1, sp
\n\t
"
"mov r2, #1
\n\t
"
"bl "
__ASM_NAME
(
"NtRaiseException"
)
"
\n\t
"
"bl "
__ASM_NAME
(
"RtlRaiseStatus"
)
)
/*************************************************************************
/*************************************************************************
* RtlCaptureStackBackTrace (NTDLL.@)
* RtlCaptureStackBackTrace (NTDLL.@)
...
...
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