Commit Graph

155 Commits

Author SHA1 Message Date
Piotr Caban 4c50ef6995 ntdll: Add RtlRestoreContext implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-06 11:49:33 +09:00
Sebastian Lackner d25ae3ca25 ntdll: Handle stack guard pages on x86_64.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-15 17:56:59 +09:00
Sebastian Lackner d4ab672cf5 ntdll: Fix off-by-one errors in __wine_set_signal_handler.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-28 18:41:00 +09:00
Sebastian Lackner 123185c3a2 ntdll: Set correct number of arguments for breakpoint exceptions.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 11:20:12 +09:00
Sebastian Lackner d0cc0dd69f ntdll: Fix up instruction pointer in context for EXCEPTION_BREAKPOINT on x86_64.
Similar to eab168cf9e for x86.

Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 11:20:08 +09:00
Sebastian Lackner e1d68b2e16 ntdll: Implement handling of int $0x2d for x86_64.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 00:49:12 +09:00
Sebastian Lackner 897ac569c8 ntdll: Check ContextFlags before restoring registers on x86_64.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-06 15:50:30 +01:00
Sebastian Lackner cbb5705216 ntdll: Use wrapper function for consolidate callback on x86_64.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-21 19:19:08 +09:00
Francois Gouget 93a7845ae8 ntdll: Use #ifdef to check for potentially undefined macros. 2015-08-07 23:44:30 +09:00
Ken Thomases 82dd799d52 ntdll: Add partial support for version 3 of DWARF CIEs which are generated by Clang/LLVM. 2015-06-05 18:40:39 +09:00
Ken Thomases bbcfa6b4ee ntdll: Add support for using libunwind to unwind the stack for x86_64.
On OS X, Apple uses compact unwind info in preference to DWARF unwind info.
2015-06-05 15:08:02 +09:00
Sebastian Lackner 33c3990e4d ntdll: Fix various bugs RtlUnwindEx on x86_64. 2015-04-03 17:07:36 +09:00
Sebastian Lackner 6bec132c7a ntdll: Try to handle write-watches while we're on the signal stack. 2015-02-27 14:59:08 +09:00
Charles Davis 97bda9a05f ntdll: Support 64-bit Mac OS. 2015-02-06 22:35:17 +09:00
Alexandre Julliard d7f6f8ee6c ntdll: Define arch_prctl since it is missing on Android. 2014-07-24 20:44:50 +02:00
Alexandre Julliard 8d817997ce configure: Add a check for sys/ucontext.h and include it where appropriate. 2014-07-23 19:06:58 +02:00
Sebastian Lackner dd0e9fe91e ntdll/tests: Fix exception test failures on x86_64. 2014-06-11 19:15:01 +02:00
Akihiro Sagawa e67f84122d ntdll: Add %gs support for NetBSD. 2014-04-14 20:19:01 +02:00
Sebastian Lackner 4d8edf7612 ntdll: Implement RtlInstallFunctionTableCallback on x86_64. 2014-04-08 19:23:14 +02:00
Sebastian Lackner 98307b22fb ntdll: Implement RtlAddFunctionTable / RtlDeleteFunctionTable for x86_64. 2014-04-08 18:28:31 +02:00
Sebastian Lackner a71d1e389f ntdll: Unify exception function lookup on x86_64. 2014-04-08 18:28:30 +02:00
Frédéric Delanoy 416930d498 ntdll: Use BOOL type where appropriate. 2013-11-04 11:03:43 +01:00
Alexandre Julliard c2d7347e2a ntdll: Silence some printf format warnings. 2013-08-20 20:52:17 +02:00
Dmitry Timoshkov 10476af626 include: Make KNONVOLATILE_CONTEXT_POINTERS match PSDK definition. 2013-04-30 11:47:05 +02:00
Alexandre Julliard bb23d63663 ntdll: Export _local_unwind. 2012-05-29 21:33:45 +02:00
Alexandre Julliard 3d4a73e601 ntdll: Add a __chkstk entry point for x86_64. 2012-04-02 12:46:40 +02:00
Alexandre Julliard a777676bc4 ntdll: Also call the unwind handler for the target frame. 2012-03-30 14:42:55 +02:00
Alexandre Julliard c0610daf77 ntdll: Properly follow jumps when checking a function epilog. 2012-03-15 20:29:23 +01:00
Alexandre Julliard b663a6dea4 ntdll: Add support for jump instructions in function epilogs. 2012-03-12 19:18:37 +01:00
Alexandre Julliard 34c875bf8b ntdll: Add support for rep;ret instruction in function epilogs. 2012-03-12 18:59:51 +01:00
Alexandre Julliard e562623a15 ntdll: Add support for the special STATUS_UNWIND_CONSOLIDATE exception code. 2012-03-12 16:04:49 +01:00
Alexandre Julliard f996c89274 ntdll: Trace the exception extra information also in RtlUnwindEx. 2012-03-12 16:04:44 +01:00
Alexandre Julliard 2bce0c698e ntdll: Set the TARGET_UNWIND flag when calling the unwind handler for the target frame. 2012-03-12 13:04:37 +01:00
Alexandre Julliard 7c36b51aaf ntdll: Restore the original context for the last frame instead of the result of the unwind handler. 2012-03-12 13:04:36 +01:00
Alexandre Julliard de9330cbcb ntdll: Use the context argument as working variable instead of making a copy in RtlUnwindEx. 2012-03-12 13:04:35 +01:00
William Panlener f6dae487aa ntdll: Use success return values for stubs. 2012-02-16 11:57:12 +01:00
Alexandre Julliard 10dcc85de0 ntdll: Add support for longjmp in RtlUnwindEx. 2011-02-01 18:14:09 +01:00
Alexandre Julliard 672a084584 ntdll: Implement RtlRaiseException for x86_64 directly instead of using the winebuild-generated code. 2011-01-27 14:12:41 +01:00
Alexandre Julliard 1e6ff42d03 ntdll: Implement set_cpu_context for x86_64 directly instead of using the winebuild-generated code. 2011-01-27 14:12:41 +01:00
Alexandre Julliard 33e6238f04 ntdll: Avoid copying and restoring the context in RtlCaptureContext for x86_64. 2011-01-27 14:12:23 +01:00
Alexandre Julliard aa4ad6d766 ntdll: Capture the context inside RtlUnwindEx instead of assuming it's already initialized. 2011-01-27 14:10:34 +01:00
Alexandre Julliard 2e81ba5f4f include: Add a prototype for RtlUnwindEx on x86_64. 2011-01-27 14:10:31 +01:00
Austin English 9832bd6c54 ntdll: Add missing checks for FreeBSD_kernel. 2011-01-17 14:27:38 +01:00
Alexandre Julliard 8b54390686 ntdll: Fix the initial FPU control word on 64-bit. 2010-06-21 11:49:25 +02:00
Henri Verbeet 772a5c7c09 ntdll: The FPU control word for newly created threads is 0x27f.
This fixes a regression introduced by
e6611e22fb.
2010-06-17 11:50:23 +02:00
Austin English da77e7456b ntdll: Add signal context function definitions for FreeBSD. 2010-06-01 11:04:01 +02:00
Austin English 40b3d2ed13 ntdll: Add %gs support for FreeBSD. 2010-05-24 11:32:40 +02:00
Alexandre Julliard 39d54523a3 ntdll: Preserve registers in call_thread_entry_point on x86_64. 2010-05-16 12:34:07 +02:00
Alexandre Julliard bc3ae58f1d ntdll: Add support for saving/restoring CFA frame state. 2010-05-04 13:14:43 +02:00
Alexandre Julliard 281f701880 ntdll: Make cfi annotations optional for x86_64. 2010-04-12 12:38:27 +02:00
Alexandre Julliard 9e6903c4b3 ntdll: Restructure x86_64 exception processing to treat all functions with missing exception data as leaf functions. 2010-04-09 13:15:41 +02:00
Eric Pouech 2bebb68a0b ntdll: On x86_64 systems (as on i386 ones), hw breakpoints must generate a EXCEPTION_SINGLE_STEP exception. 2010-04-07 13:50:39 +02:00
Eric Pouech 27fb22637a ntdll: Notify valgrind for stack management while in exception. 2010-02-23 12:06:47 +01:00
Alexandre Julliard 866db819b8 ntdll: Add stubs for RtlAddFunctionTable and RtlDeleteFunctionTable. 2009-12-04 14:34:45 +01:00
Alexandre Julliard d4f1fffacc ntdll: Moved the TEB allocation routines to the platform-specific files. 2009-11-19 12:25:52 +01:00
Alexandre Julliard d45fca8f7c ntdll: Moved RtlCaptureStackBackTrace stub to the cpu-specific files. 2009-11-11 17:19:23 +01:00
Alexandre Julliard 905609b73b ntdll: Assume leaf function when we can't find exception information for an ELF module. 2009-10-16 13:39:15 +02:00
Alexandre Julliard 690cf4a6c8 ntdll: Use a more drastic (and simpler) method for unwinding the stack on thread exit. 2009-08-29 16:48:30 +02:00
Alexandre Julliard 8824deb6c6 ntdll: Add support for Dwarf expressions in call frame information. 2009-08-28 18:25:20 +02:00
Alexandre Julliard af22daf72b ntdll: Add support for unwinding the signal stack on x86_64. 2009-08-28 18:24:06 +02:00
Alexandre Julliard ecdcf060a5 ntdll: Unwind the stack before calling exit/abort_thread.
This prevents pthread_exit() from trying to do it and failing.
2009-08-28 12:15:07 +02:00
Alexandre Julliard 8101a2fa1e ntdll: Move the abort_thread() function to the CPU-specific files to allow redefining it. 2009-08-28 11:54:50 +02:00
Alexandre Julliard b8ae3f073b ntdll: Fix handling of the duplicate MxCsr entry in the x86_64 context. 2009-08-27 16:49:53 +02:00
Alexandre Julliard 70c39c4456 ntdll: Correctly jump to the modified context after an exception on x86_64. 2009-08-26 21:24:17 +02:00
Alexandre Julliard 0610549529 ntdll: Move all thread exit processing to exit_thread(), and make RtlExitUserThread() CPU-specific. 2009-06-18 17:06:21 +02:00
Alexandre Julliard f124c7cc38 ntdll: Simplify the thread startup routine and make it CPU-specific. 2009-06-18 17:01:44 +02:00
Alexandre Julliard 98b8160b73 ntdll: Add support for calling the TEB exception chain handlers on x86_64. 2009-06-18 15:17:26 +02:00
Alexandre Julliard c9deac1126 ntdll: Implement stack unwinding for x86_64 builtin modules based on the Dwarf data. 2009-06-18 15:17:12 +02:00
Alexandre Julliard a19db6dc11 ntdll: Handle x86_64 signals on a separate signal stack. 2009-06-16 15:27:48 +02:00
Alexandre Julliard e65ebee63f ntdll: Add appropriate stdcall decorations to assembly functions. 2009-06-15 13:42:26 +02:00
Alexandre Julliard 3aa266f8f3 ntdll: Implement RtlUnwindEx for x86_64. 2009-05-22 15:16:29 +02:00
Alexandre Julliard 2c63d1d7dd ntdll: Implement __C_specific_handler for x86_64. 2009-05-22 15:16:16 +02:00
Alexandre Julliard ad7b282439 ntdll: Initial support for dispatching exceptions to stack handlers on x86_64. 2009-05-22 12:48:05 +02:00
Alexandre Julliard 7634ce154a ntdll: Implemented RtlLookupFunctionEntry for x86_64. 2009-05-22 11:48:30 +02:00
Alexandre Julliard 6c35e3f47c ntdll: Add test cases for the returned frame value in RtlVirtualUnwind. 2009-05-20 13:33:32 +02:00
Alexandre Julliard 1d4747c35f ntdll: Add support for some function epilogs in RtlVirtualUnwind. 2009-05-20 13:32:47 +02:00
Alexandre Julliard f7b1e94f98 ntdll: Initial implementation of RtlVirtualUnwind on x86_64. 2009-05-15 20:19:28 +02:00
Alexandre Julliard 47d7702522 ntdll: Added a stub for RtlUnwindEx on x86_64. 2009-05-15 20:18:33 +02:00
Alexandre Julliard a950910eec ntdll: Save all segment registers on x86_64. Implement set_cpu_context. 2009-05-01 18:02:40 +02:00
Alexandre Julliard 9968d84973 ntdll: Use standard siginfo signal handlers on all platforms. 2009-05-01 17:57:29 +02:00
Alexandre Julliard c5a57e7d13 ntdll: Move NtRaiseException and RtlUnwind implementations to the CPU-specific files. 2009-04-30 13:23:15 +02:00
Alexandre Julliard 7f9750550a ntdll: Set the exception address to the program counter in RtlRaiseException. 2009-04-10 13:17:12 +02:00
Alexandre Julliard f4eee1c731 ntdll: Move the RtlRaiseException implementation into the respective platform-specific files. 2009-04-10 13:14:05 +02:00
Alexandre Julliard 48199d7074 ntdll: Add a raise_status function and avoid exporting __regs_RtlRaiseException. 2009-04-10 13:09:06 +02:00
Alexandre Julliard 0865c278f2 ntdll: Set the proper context flags in the signal handlers for x86_64. 2009-04-08 20:40:29 +02:00
Alexandre Julliard 5316dd011f server: Define a generic context structure instead of using the platform-specific version. 2009-04-08 19:59:23 +02:00
Alexandre Julliard 75be87dd75 ntdll: Move the copy_context function into the respective CPU-specific files. 2009-03-13 11:31:25 +01:00
Alexandre Julliard cc933f586a ntdll: Moved exit_thread and abort_thread functions to thread.c. 2009-02-20 18:07:41 +01:00
Alexandre Julliard 66255772fc ntdll: Move the CPU-specific handling of current TEB to the respective signal files. 2009-02-18 13:04:50 +01:00
Austin English 633e069c67 ntdll: Add support for NetBSD (64-bit). 2009-01-20 12:23:32 +01:00
Alexandre Julliard 14c452fe78 ntdll: Replaced get_cpu_context by RtlCaptureContext. Implemented it for x86_64. 2009-01-06 17:50:34 +01:00
Maarten Lankhorst 768160e944 ntdll: Make all exported wine functions CDECL. 2008-12-17 15:02:25 +01:00
Alexandre Julliard 50d6b7fb54 ntdll: Added stubs for RtlLookupFunctionEntry and RtlVirtualUnwind. 2008-12-08 19:29:06 +01:00
Alexandre Julliard 81b9ca5dbd ntdll: Pass the error code to VIRTUAL_HandleFault, and allow it to ignore the exception.
Also rename it to virtual_handle_fault for consistency.
2008-11-25 12:02:16 +01:00
Alexandre Julliard 531ff0be26 ntdll: Split the signal setup into process-wide and thread-specific routines. 2008-07-03 20:18:23 +02:00
Alexandre Julliard 3b244b95b2 server: Use SIGQUIT instead of SIGTERM to terminate a thread.
This allows keeping the default SIGTERM behavior of killing the whole
process.
2007-12-20 12:19:35 +01:00
Andrew Talbot 0108667754 ntdll: Replace inline static with static inline. 2007-03-17 20:03:57 +01:00
Alexandre Julliard c388c58b9f ntdll: Make the server signal mask global. 2007-01-18 12:20:56 +01:00
Joel Parker 2319999a05 Remove redundant semicolons for ANSI compatibility. 2007-01-17 11:58:15 +01:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00