Commit Graph

154 Commits

Author SHA1 Message Date
Alexandre Julliard 0ee44f5e20 ntdll: Make the exception handling functions inline. 2008-05-01 10:57:54 +02:00
Alexandre Julliard 970b34291e ntdll: Preserve errno across system calls done in the suspend handler. 2007-06-01 11:16:09 +02:00
Peter Oberndorfer eab168cf9e ntdll: Fix up instruction pointer in context inside raise_exception. 2007-05-23 12:50:57 +02:00
Andrew Talbot ab2a48ae43 ntdll: Remove superfluous semicolons. 2007-04-12 16:16:58 +02:00
Alexandre Julliard bd7595af7b ntdll: Allow APCs to run while waiting for a debug event reply. 2007-02-13 17:17:58 +01:00
Alexandre Julliard 2520e387a1 server: Allow suspended threads to run system APCs. 2007-01-10 21:55:23 +01:00
Hans Leidekker f7b0ba7aa7 ntdll: Win64 printf format warning fixes. 2006-10-18 12:35:26 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Alexandre Julliard 2bfe47e852 ntdll: Use NtSetContextThread in NtRaiseException. 2006-04-20 15:40:42 +02:00
Alexandre Julliard 00bb4536b0 ntdll: Print traces for EXC_CallHandler even with the assembly version. 2006-04-06 21:32:17 +02:00
Mike McCormack a3348cf4a0 ntdll: Use the NTAPI definition of EXCEPTION_ACCESS_VIOLATION. 2006-01-16 20:40:25 +01:00
Alexandre Julliard 90e3865929 ntdll: NtRaiseException doesn't need to be a register function.
Moved common code between NtRaiseException and RtlRaiseException to a
separate raise_exception function.
2006-01-10 17:51:22 +01:00
Eric Pouech fe36b7baca ntdll: Made DBG_EXCEPTION_HANDLED a synonym of DBG_CONTINUE for exception handlers. 2005-12-20 11:47:27 +01:00
Alexandre Julliard 324d86a3af Exception handling: Added a magic __EXCEPT_PAGE_FAULT macro to make it
easier to handle the common case of trapping page faults.
2005-12-16 16:58:47 +01:00
Ge van Geldorp 1a1583a364 Match PSDK STATUS_* definitions. 2005-11-28 17:32:54 +01:00
Alexandre Julliard 73c72390f8 Fixed Get/SetThreadContext to work properly on suspended threads.
Added a test case.
2005-11-02 20:54:12 +00:00
Alexandre Julliard ff7795ef4c Don't send an extra signal when waiting for a debug event, just do a
normal wait.  Return the debug event status directly as return value
of the server call.
2005-11-01 21:47:07 +00:00
Robert Shearman 2a02dd1f05 Make the call exception handler function more compatible with NT and
with what Shrinker expects.
2005-11-01 09:21:03 +00:00
Marcus Meissner 98ed5585c7 Added assembly implementation of EXC_CallHandler. 2005-10-31 14:08:05 +00:00
Alexandre Julliard 261e376495 Fixed a number of pointer to integer conversions that wouldn't work
right on a 64-bit platform.
2005-09-12 15:14:06 +00:00
Alexandre Julliard 20a1a203c6 Use a more portable scheme for storing the name of a critical
section.
2005-09-09 10:19:44 +00:00
Alexandre Julliard c7d649483b Define GET_IP for x86_64. 2005-09-08 19:17:04 +00:00
Alexandre Julliard b6b180a16d Moved the implementation of spec file stubs to the winecrt0 library. 2005-08-25 15:27:44 +00:00
Mike McCormack 51c583f9a9 Use NT status codes for exceptions. 2005-06-25 18:31:00 +00:00
Mike McCormack 6b636e3e7b Use RTL_CRITICAL_SECTION instead of CRITICAL_SECTION. 2005-06-25 18:00:57 +00:00
Mike McCormack 04f9f1b066 Don't include winbase.h or winerror.h when not necessary. 2005-06-21 09:52:40 +00:00
Mike McCormack 5b2d5fd758 Use HANDLE instead of HKEY in the NT API. 2005-06-17 13:58:33 +00:00
Alexandre Julliard bd000a0203 Removed some unnecessary inclusions of thread.h 2005-06-06 20:13:08 +00:00
Dimi Paun 366b753a50 Use the more idiomatic form of iterating through the list. 2005-05-18 09:45:53 +00:00
Mike Hearn 5037202554 Make unimplemented function message a bit prettier. 2005-05-13 13:56:47 +00:00
Alexandre Julliard 26050b49d5 Prefix the internal name of all register functions with __regs_ for
better consistency and to make automated checking possible.
2005-05-07 18:10:30 +00:00
Dmitry Timoshkov 0497af09a7 Match RaiseException and EXCEPTION_RECORD to SDK definitions. 2005-02-24 13:15:36 +00:00
Alexandre Julliard d5088668de Generate stub entries on the fly for missing entry points instead of
returning a deadbeef pointer.
2004-12-14 20:03:23 +00:00
Vincent Béron 2c1b35dd17 Add some more Alpha asm code and Alpha-specific parts. 2004-10-18 21:27:52 +00:00
Francois Gouget 493cf88bb6 Remove these Wine-only types:
EnumICMProfilesProcCallback
  PEXCEPTION_REGISTRATION_RECORD
Don't test these Wine-only types:
  EMRSETTEXTJUSTIFICATION
  EXCEPTION_REGISTRATION_RECORD
Remove EXCEPTION_FRAME, it doesn't exist at all.
2004-08-22 02:07:13 +00:00
Patrik Stridvall ede82e3055 Fixed some issues found by winapi_check. 2004-02-20 20:19:23 +00:00
Alexandre Julliard 950808af3b Trace register contents on exception. 2004-02-06 05:28:23 +00:00
Alexandre Julliard 5c92266987 Fixed RtlUnwind signature (reported by Pierre d'Herbemont). 2003-12-30 19:26:19 +00:00
Alexandre Julliard e85491274d Moved the DEFINE_REGS_ENTRYPOINT macros to include/wine/port.h.
Removed the C fallback code, do that in the callers instead.
2003-12-04 05:48:03 +00:00
Pavel Roskin 0f252372b7 Include ntdll_misc.h to avoid undefined reference to GetProcessHeap
when compiled without optimization.
2003-10-30 23:06:41 +00:00
Alexandre Julliard 07931f2d70 Removed no longer needed SIGNAL_Unblock() function. 2003-10-28 21:46:46 +00:00
Alexandre Julliard 54b1d87daf Implemented Add/RemoveVectoredExceptionHandler. 2003-10-28 21:22:50 +00:00
Alexandre Julliard 2e4f0bc9ba Use sigsetjmp instead of setjmp in Wine internal exception handlers to
make sure the signal mask is restored properly.
2003-10-24 04:30:13 +00:00
Alexandre Julliard e55d5937ac Set or clear the BeingDebugged flag in the PEB when a debugger is
attached to or detached from a process.
Don't send exception events to the server unless a debugger is
present.
2003-10-14 01:30:42 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard 7df1b9e03a Start using the exported TEB structure from winternl.h where
possible.
2003-08-28 19:57:35 +00:00
Alexandre Julliard b91e9cb3e6 Renamed a few more TEB fields. 2003-08-28 03:44:41 +00:00
Alexandre Julliard ee106783d0 Renamed EXCEPTION_FRAME to EXCEPTION_REGISTRATION_RECORD since that
seems to be the official name.
2003-08-28 03:07:56 +00:00
Alexandre Julliard 3be5d62b29 Moved 16-bit calls initialization and exception handling to kernel32.
Store the call_to_16 return address on the stack from the C code so
that we don't need two variants of call_to_16_regs.
2003-08-25 00:56:37 +00:00
Francois Gouget 3ca761220a Spelling fixes (s/occured/occurred/ and variants). 2003-07-15 20:53:39 +00:00
Alexandre Julliard 6a26e3f7ac Split signal blocking code out of SIGNAL_Reset into SIGNAL_Block.
Added SIGTERM handler.
2003-03-21 23:45:26 +00:00
Alexandre Julliard 8bc93e2d6f Print dll name too for stub exceptions. 2003-02-18 23:25:34 +00:00
Andreas Mohr 37fc599268 Added FIXME on stub exception. 2003-02-11 21:56:59 +00:00
Dimitrie O. Paun 737d4be892 Move excpt.h out of include/msvcrt/ as it does not conflict with any
standard Unix header.
2002-12-12 23:34:01 +00:00
Alexandre Julliard 435e2e63f4 winnt.h should not be self-contained, it must depend on windef.h so
that STRICT works correctly; moved some definitions back to windef.h
where they belong, and removed a couple of definitions that don't
exist on Windows.
2002-12-10 22:56:43 +00:00
Patrik Stridvall 9c1de6de30 Moved all the content of the DDK files ntdef.h and ntddk.h to
winternl.h.
2002-09-12 22:07:02 +00:00
Marcus Meissner c87c2c4f1a Use Iar (Instruction Address Register) instead of Fill[0].
siginfo.si_code uses the lower 16bit for the type of the exception.
2002-08-30 00:00:57 +00:00
Marcus Meissner 9fc17ee371 Implemented server context/ptrace handling for Linux/PowerPC. 2002-08-17 01:19:06 +00:00
Alexandre Julliard 6006757996 Setup exception frame around 16-bit calls to unwind stack properly. 2002-08-13 03:29:17 +00:00
Vincent Béron 9a62491660 Removed trailing whitespace. 2002-05-31 23:06:46 +00:00
Alexandre Julliard 894b188fcf Moved __ASM_GLOBAL_FUNC macros and interlocked functions to port.[ch] 2002-04-25 21:40:56 +00:00
Alexandre Julliard 0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Peter Hunnisett 73ab649ced New file msvcrt/excpt.h. Move some stuff out of winnt.h into it. 2002-02-25 20:10:35 +00:00
Ove Kaaven d553a9b000 Made the output of --debugmsg +seh a bit more verbose. 2002-01-02 21:44:05 +00:00
Alexandre Julliard 9caa71eef4 Redesign of the server communication protocol to allow arbitrary sized
data to be exchanged.
Split request and reply structures to make backwards compatibility
easier.
Moved many console functions to dlls/kernel, added code page support,
changed a few requests to behave properly with the new protocol.
2001-11-30 18:46:42 +00:00
Francois Gouget e5ddd26dd7 When including config.h, include it first. 2001-10-14 16:18:52 +00:00
Patrik Stridvall 3c0211f969 Cleanup code that is strange or difficult to parse. 2001-09-11 00:32:32 +00:00
Alexandre Julliard 37e9503ae8 Moved server.h to include/wine. 2001-07-19 00:39:09 +00:00
Patrik Stridvall 044855c6ec Documentation fixes. 2001-07-11 18:56:41 +00:00
Patrik Stridvall 8b216b3d02 Documentation ordinal fixes. 2001-06-19 18:20:47 +00:00
Ove Kaaven e4a98ec195 Block SIGINT and SIGALRM in signal handlers. 2001-06-15 19:43:15 +00:00
Alexandre Julliard 67a749999a New set of macros for server calls; makes requests without variable
part somewhat faster.
2001-02-27 02:09:16 +00:00
Alexandre Julliard e939eae00b Made exception_event_request non-blocking, and added
get_exception_status to retrieve the exception result returned by the
debugger.
2001-01-26 20:45:41 +00:00
Ulrich Weigand d4be9197f1 Added missing prototypes to avoid compile warnings on Solaris. 2001-01-11 00:53:25 +00:00
Alexandre Julliard dfd3d4ada2 Moved GET_IP out of winnt.h. 2000-11-25 23:56:20 +00:00
Dimitrie O. Paun 0b7a7bbc06 Include config.h in files that test for constants defined in it. 2000-11-25 01:31:17 +00:00
Alexandre Julliard 92643003cf Converted a lot of server requests to the new exception handling
mechanism.
2000-08-31 01:59:51 +00:00
Alexandre Julliard 9c2370bd75 Added exception handling wrapper to a number of server requests.
Changed a few requests to use the new vararg mechanism.
2000-08-30 00:00:48 +00:00
Alexandre Julliard a007f3364a Moved a few non-standard headers into their respective dlls. 2000-08-09 00:54:58 +00:00
Alexandre Julliard 3850c1ae16 Moved most USER string functions to dlls/user.
Cleaned up a few more inter-dll dependencies.
2000-08-06 02:42:46 +00:00
Alexandre Julliard 0aa6cc298e Removed a few external dependencies from ntdll. 2000-07-29 21:56:59 +00:00
Alexandre Julliard ea0d028a0b Added specific routines for OUTPUT_DEBUG_STRING and EXCEPTION debug events.
Generate a breakpoint event on process attach.
Misc cleanups in request handling.
2000-03-10 22:16:10 +00:00
Alexandre Julliard 00641d5b1c Removed PDB32_DEBUGGED flag and send all debug events unconditionally.
Implemented IsDebuggerPresent().
2000-03-08 16:41:37 +00:00
Alexandre Julliard 7d0dd5f327 Added DbgBreakPoint. Fixed exception record contents on SIGTRAP. 2000-03-07 13:10:21 +00:00
Ulrich Weigand 7d43bceb7e Moved debugger to libwine to make it available to WineLib apps.
Try to invoke external debugger if internal debugger crashes.
Try to handle early invocation of debugger more gracefully.
2000-01-30 21:16:45 +00:00
Alexandre Julliard 1d2ba529aa Added current context to the exception debug event sent to the server. 1999-11-24 01:24:50 +00:00
Ulrich Weigand eb94c7d2c4 Adapted to new register function handling. 1999-11-13 23:54:04 +00:00
Ulrich Weigand 6bba78e1e7 Moved GET_IP macro to winnt.h 1999-11-13 20:56:01 +00:00
Ulrich Weigand 248c75e613 (Preliminary) CONTEXT structure for SPARC added. 1999-11-10 20:18:53 +00:00
Ulrich Weigand ae8342df48 Bugfix: Exception handlers are *not* WINAPI. 1999-11-10 19:42:13 +00:00
Gerard Patel 5f3d3a8d78 Reorder parameters to fix position of base reg relative to exception
frame.
1999-10-23 23:55:50 +00:00
Alexandre Julliard 3d06d20bab Moved all signal support to a new platform-specific file.
Make use of the per-thread signal stack (Juergen Lock).
Fixed %fs in signal handler for non FS_sig case (Ulrich Weigand).
1999-09-27 10:58:45 +00:00
Juergen Schmied f53d7b3cbd Do not set EH_NONCONTINUABLE. 1999-09-22 15:25:45 +00:00
Juergen Lock 808403fe6f Fix EXC_segv for the TRAP_sig undefined case (eg FreeBSD). 1999-09-03 12:46:38 +00:00
Alexandre Julliard bdf83bc546 Removed SIGNAL_MaskAsyncEvents and cleaned up signal handling. 1999-08-01 14:54:16 +00:00
Alexandre Julliard b375678277 Changed INSTR_EmulateInstruction to use a CONTEXT86 instead of a
SIGCONTEXT.
1999-08-01 12:15:12 +00:00
Patrik Stridvall b8684a266b Fixed some of the issues reported by winapi-check. 1999-07-31 17:32:05 +00:00
Alexandre Julliard 617955db88 Changed CONTEXT into CONTEXT86 everywhere we really want an i386
context.
Added #ifdef __i386__ around accesses to 386 registers in the generic
CONTEXT structure.
1999-06-26 18:40:24 +00:00
Alexandre Julliard 0a860a01f9 Merged THDB and TEB structures.
Made SetLastError(), GetCurrentThreadId() and PROCESS_Current() inline.
1999-06-22 11:43:42 +00:00
Alexandre Julliard 1eeed68514 Moved signal handling to exception.c, generate exceptions on signals.
Added hook for debugger in exception handling (temporary).
1999-06-18 18:21:24 +00:00