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
da60ea1c
Commit
da60ea1c
authored
Oct 09, 2018
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Add a wrapper to call the unhandled exception filter.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
e07230ed
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
17 additions
and
6 deletions
+17
-6
exception.c
dlls/ntdll/exception.c
+10
-0
ntdll_misc.h
dlls/ntdll/ntdll_misc.h
+1
-0
signal_arm.c
dlls/ntdll/signal_arm.c
+1
-1
signal_arm64.c
dlls/ntdll/signal_arm64.c
+1
-1
signal_i386.c
dlls/ntdll/signal_i386.c
+1
-1
signal_powerpc.c
dlls/ntdll/signal_powerpc.c
+2
-2
signal_x86_64.c
dlls/ntdll/signal_x86_64.c
+1
-1
No files found.
dlls/ntdll/exception.c
View file @
da60ea1c
...
...
@@ -306,6 +306,16 @@ ULONG WINAPI RtlRemoveVectoredExceptionHandler( PVOID handler )
}
/*******************************************************************
* call_unhandled_exception_filter
*/
LONG
WINAPI
call_unhandled_exception_filter
(
PEXCEPTION_POINTERS
eptr
)
{
if
(
!
unhandled_exception_filter
)
return
EXCEPTION_CONTINUE_SEARCH
;
return
unhandled_exception_filter
(
eptr
);
}
/*************************************************************
* __wine_spec_unimplemented_stub
*
...
...
dlls/ntdll/ntdll_misc.h
View file @
da60ea1c
...
...
@@ -57,6 +57,7 @@ extern NTSTATUS context_to_server( context_t *to, const CONTEXT *from ) DECLSPEC
extern
NTSTATUS
context_from_server
(
CONTEXT
*
to
,
const
context_t
*
from
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
set_thread_context
(
HANDLE
handle
,
const
context_t
*
context
,
BOOL
*
self
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
get_thread_context
(
HANDLE
handle
,
context_t
*
context
,
unsigned
int
flags
,
BOOL
*
self
)
DECLSPEC_HIDDEN
;
extern
LONG
WINAPI
call_unhandled_exception_filter
(
PEXCEPTION_POINTERS
eptr
)
DECLSPEC_HIDDEN
;
/* debug helpers */
extern
LPCSTR
debugstr_us
(
const
UNICODE_STRING
*
str
)
DECLSPEC_HIDDEN
;
...
...
dlls/ntdll/signal_arm.c
View file @
da60ea1c
...
...
@@ -1227,7 +1227,7 @@ static void call_thread_entry_point( LPTHREAD_START_ROUTINE entry, void *arg )
TRACE_
(
relay
)(
"
\1
Starting thread proc %p (arg=%p)
\n
"
,
entry
,
arg
);
RtlExitUserThread
(
entry
(
arg
));
}
__EXCEPT
(
unhandled_exception_filter
)
__EXCEPT
(
call_
unhandled_exception_filter
)
{
NtTerminateThread
(
GetCurrentThread
(),
GetExceptionCode
()
);
}
...
...
dlls/ntdll/signal_arm64.c
View file @
da60ea1c
...
...
@@ -998,7 +998,7 @@ static void WINAPI call_thread_entry_point( LPTHREAD_START_ROUTINE entry, void *
TRACE_
(
relay
)(
"
\1
Starting thread proc %p (arg=%p)
\n
"
,
entry
,
arg
);
RtlExitUserThread
(
entry
(
arg
));
}
__EXCEPT
(
unhandled_exception_filter
)
__EXCEPT
(
call_
unhandled_exception_filter
)
{
NtTerminateThread
(
GetCurrentThread
(),
GetExceptionCode
()
);
}
...
...
dlls/ntdll/signal_i386.c
View file @
da60ea1c
...
...
@@ -2653,7 +2653,7 @@ void DECLSPEC_HIDDEN call_thread_func( LPTHREAD_START_ROUTINE entry, void *arg )
TRACE_
(
relay
)(
"
\1
Starting thread proc %p (arg=%p)
\n
"
,
entry
,
arg
);
RtlExitUserThread
(
call_thread_func_wrapper
(
entry
,
arg
));
}
__EXCEPT
(
unhandled_exception_filter
)
__EXCEPT
(
call_
unhandled_exception_filter
)
{
NtTerminateThread
(
GetCurrentThread
(),
GetExceptionCode
()
);
}
...
...
dlls/ntdll/signal_powerpc.c
View file @
da60ea1c
...
...
@@ -648,7 +648,7 @@ static NTSTATUS call_stack_handlers( EXCEPTION_RECORD *rec, CONTEXT *context )
/* hack: call unhandled exception filter directly */
ptrs
.
ExceptionRecord
=
rec
;
ptrs
.
ContextRecord
=
context
;
unhandled_exception_filter
(
&
ptrs
);
call_
unhandled_exception_filter
(
&
ptrs
);
return
STATUS_UNHANDLED_EXCEPTION
;
}
...
...
@@ -1160,7 +1160,7 @@ static void WINAPI call_thread_entry_point( LPTHREAD_START_ROUTINE entry, void *
TRACE_
(
relay
)(
"
\1
Starting thread proc %p (arg=%p)
\n
"
,
entry
,
arg
);
RtlExitUserThread
(
entry
(
arg
));
}
__EXCEPT
(
unhandled_exception_filter
)
__EXCEPT
(
call_
unhandled_exception_filter
)
{
NtTerminateThread
(
GetCurrentThread
(),
GetExceptionCode
()
);
}
...
...
dlls/ntdll/signal_x86_64.c
View file @
da60ea1c
...
...
@@ -4370,7 +4370,7 @@ static void WINAPI call_thread_func( LPTHREAD_START_ROUTINE entry, void *arg )
TRACE_
(
relay
)(
"
\1
Starting thread proc %p (arg=%p)
\n
"
,
entry
,
arg
);
RtlExitUserThread
(
entry
(
arg
));
}
__EXCEPT
(
unhandled_exception_filter
)
__EXCEPT
(
call_
unhandled_exception_filter
)
{
NtTerminateThread
(
GetCurrentThread
(),
GetExceptionCode
()
);
}
...
...
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