Commit Graph

91 Commits

Author SHA1 Message Date
Alexandre Julliard 411592bf45 configure: Assume that sys/wait.h is available on Unix.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 18:43:51 +01:00
Rémi Bernon 75bccf99d1 server: Remove dr7 PTRACE_POKEUSER workaround.
It is needed for Linux Kernel version 4.18, and has been fixed in 4.19.

Also see https://bugzilla.kernel.org/show_bug.cgi?id=200965 for a more
detailed description of the regression and the fix.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46472
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-29 21:24:46 +02:00
Rémi Bernon 4db8cdc267 server: Clear dr7 before setting other registers.
Resetting their length to make sure we pass alignment checks both for
their current values and for the new values we'll write.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46472
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-29 21:24:42 +02:00
Alexandre Julliard c954e5b9e6 server: Avoid using wine/port.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 18:03:11 +02:00
Paul Gofman 385142bb9e server: Check for system regs before suspending for ptrace.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-26 21:30:30 +02:00
Alexandre Julliard 308bd35746 server: Store a machine ID instead of a CPU in the context structure.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-27 10:40:53 +02:00
Torge Matthies 102a0b189b server: Fix page size calculation in write access check.
Signed-off-by: Torge Matthies <openglfreak@googlemail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-25 08:57:59 +01:00
Jacek Caban 80ceafc2a1 server: Don't change cached thread context in set_thread_context.
Let the caller take care of that.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-22 16:47:41 +02:00
Alexandre Julliard 53375be47c server: Reset hardware breakpoint sizes before setting them.
Workaround for kernel bug 200965.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-18 17:18:09 +01:00
Frédéric Fauberteau 708a2c991f wineserver: Support debug registers on NetBSD.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46229
Signed-off-by: Frédéric Fauberteau <triaxx@NetBSD.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 16:13:11 +01:00
Matteo Bruni 1f006f075d server: Avoid writing out of bounds in get_selector_entry().
Fixes c6dfce2723.

Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-16 19:19:43 +01:00
Zebediah Figura c6dfce2723 server: Fix pointer arithmetic in get_selector_entry().
The selector table is exclusively 32-bit, so trying to get selector entries
with a 64-bit wineserver will return the wrong values due to the different
size of (long *).

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-12 11:09:48 +01:00
Alexandre Julliard abe0b1c57b server: Initialize debug registers in new threads if necessary.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-27 17:04:04 +02:00
Alexandre Julliard 9a07d210f1 server: Add a platform-specific entry point to initialize registers of a new thread.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-27 17:04:04 +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
Francois Gouget d3cc10724e server: Include either sys/user.h or asm/user.h.
This avoids redefinitions with old Linux kernel headers.
2013-10-07 14:44:34 +02:00
Huw Davies 2a32d5765a server: Android has struct user in asm/user.h. 2013-09-24 18:58:24 +02:00
Dmitry Timoshkov bfe3b3bdb6 server: Set error to STATUS_PROCESS_IS_TERMINATING if the process is terminating. 2013-05-08 12:44:46 +02:00
Alexandre Julliard fc7e81be15 server: Don't support debug registers in ptrace if sys/user.h is missing. 2013-02-13 17:19:42 +01:00
Alexandre Julliard 2b95df8fbd server: Use the __NR_ names for Linux system calls. 2013-01-21 21:37:10 +01:00
Alexandre Julliard 1fd55b7334 server: Get rid of the waitpid wrapper. 2012-09-24 22:27:30 +02:00
Adrian Bunk 9d5c178b24 server: Use waitpid() instead of wait4(). 2012-09-24 22:27:30 +02:00
André Hentschel 89e462b141 server: Add checks for DragonFly BSD. 2012-05-29 10:46:34 +02:00
Henri Verbeet e7728c4132 server: Try writing to /proc/<pid>/mem in write_process_memory(). 2011-09-22 09:36:29 +02:00
Grazvydas Ignotas 2cc56f379c server: Set debug enable bits briefly to commit the addresses to kernel. 2011-07-18 16:23:30 +02:00
Grazvydas Ignotas fa179b1c26 server: Set RW and LEN bits of DR7 before setting DR0-DR3. 2011-07-18 16:23:30 +02:00
Austin English 599afa06b7 server: Add missing checks for FreeBSD_kernel. 2011-01-17 14:26:24 +01:00
Alexandre Julliard 185f637080 server: Use the tgkill system call on all Linux platforms. 2010-12-27 12:07:16 +01:00
Alexandre Julliard 10b6d6ba4d server: Use tgkill to send signals on x86_64 too. 2010-07-28 16:28:26 +02:00
Michael Stefaniuc 5c8b44cd24 server: Simplify tkill() and remove unreachable code (Smatch). 2010-07-28 16:28:23 +02:00
Maarten Lankhorst c054b5f86d wineserver: Use syscall instead of int $0x80. 2010-07-22 10:24:45 +02:00
Alexandre Julliard 1a79912a10 server: Try to use /proc/pid/mem to read process memory since it should be faster. 2010-07-21 13:23:58 +02:00
Eric Pouech 1298f2233f server: Fix write_process_memory on Wow64. 2010-04-20 11:17:03 +02:00
Eric Pouech 9f49c6a05f server: Correctly set the DR0..7 registers on Linux for x86_64 architecture. 2010-04-08 12:28:25 +02:00
Alexandre Julliard 034c6c3e58 server: The ptrace interfaces uses longs, not ints. 2009-06-18 15:17:26 +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 2cf868c0be server: Move ldt_copy to the init_process_done request and make it a client_ptr_t. 2008-12-31 15:09:59 +01:00
Alexandre Julliard 8e9c156e14 server: Make the address argument for read/write_process_memory a client_ptr_t. 2008-12-30 14:11:58 +01:00
Tijl Coosemans 0c4f152ec7 server: Use thr_kill2 syscall to signal threads on FreeBSD. 2007-08-23 20:19:09 +02:00
Tijl Coosemans 60833da9f2 loader: Use thr_self syscall to get thread id on FreeBSD. 2007-08-09 15:01:04 +02:00
Andrew Talbot b1788c8462 server: Replace inline static with static inline. 2007-03-17 20:05:05 +01:00
Alexandre Julliard ae4ecb6c64 server: Print a trace when sending a signal to a thread. 2007-01-18 12:23:29 +01:00
Alexandre Julliard c273498ef4 server: Implement process control using Mach primitives for Mac OS.
With help from Ken Thomases.
2006-12-29 20:38:49 +01:00
Alexandre Julliard cd1c7fc056 server: Add hooks to support process tracing mechanisms other than ptrace. 2006-12-29 16:56:11 +01:00
Alexandre Julliard 48b74b3237 server: Split get_thread_from_pid to allow lookups by tid or pid only. 2006-12-29 16:53:33 +01:00
Eric Pouech 5b1f3b14ca ntdll: Fixed returned status for NtQueryThreadInformation's ThreadDescriptorTable
(spotted by Peter Oberndorfer).
2006-11-15 11:24:41 +01:00
Andrew Talbot e60c86657a server: Cast-qual warning fix. 2006-10-09 15:23:28 +02:00
Michael Stefaniuc a624977f21 server: Fix some comparisons between signed and unsigned. 2006-07-26 11:11:04 +02:00
Alexandre Julliard 0f273c17ff server: Added data_size_t type to represent sizes in the server protocol.
Make it an unsigned int to save some space on Win64, if we need to
transfer more than 4Gb over the server pipe something is seriously
wrong.
2006-07-26 11:11:03 +02:00
Alexandre Julliard 7b767fb71c server: Try harder to find a suitable thread for read/write_process_memory. 2006-07-25 11:41:47 +02:00