[PATCH] ntdll: Block SIGTRAP during server calls.
Huw Davies
huw at codeweavers.com
Mon Oct 15 09:48:53 CDT 2018
On 15 Oct 2018, at 15:08, Huw Davies <huw at codeweavers.com> wrote:
>
> This prevents issues with gdbproxy, where gdb adds breakpoints to
> the dynamic loader which get triggered on thread destruction.
> It also allows setting a gdb breakpoint in sigaction().
>
> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45070
> Signed-off-by: Huw Davies <huw at codeweavers.com>
> ---
> dlls/ntdll/server.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c
> index ec03445..689f0e7 100644
> --- a/dlls/ntdll/server.c
> +++ b/dlls/ntdll/server.c
> @@ -1399,6 +1399,9 @@ void server_init_process(void)
> sigaddset( &server_block_set, SIGUSR1 );
> sigaddset( &server_block_set, SIGUSR2 );
> sigaddset( &server_block_set, SIGCHLD );
> +#ifdef SIGTRAP
> + sigaddset( &server_block_set, SIGTRAP );
> +#endif
> pthread_sigmask( SIG_BLOCK, &server_block_set, NULL );
>
> /* receive the first thread request fd on the main socket */
Hmm, this can't work as the debugger needs to handle the overwritten
opcode. Sorry for the noise.
Huw.
More information about the wine-devel
mailing list