Opened 9 years ago

Closed 9 years ago

Last modified 6 years ago

#304 closed defect (fixed)

The --enable-ptrace option does not work with threads

Reported by: rainer Owned by: rainer
Priority: major Milestone: 3.0.6
Component: main Version:
Keywords: Cc:

Description

The --enable-ptrace option does not work with threads, because it uses raise(), which will deliver the signal to the current thread. Need to unblock the signal (reported by [anonymous]).

--- src/sh_pthread.c~	2011-04-24 22:42:24.000000000 +0200
+++ src/sh_pthread.c	2012-08-08 21:50:45.380332741 +0200
@@ -84,6 +84,12 @@
   /* block all signals 
    */
   sigfillset( &signal_set );
+#if defined(SCREW_IT_UP)
+  /* The SIGTRAP signal is used to detect a connected debugger
+     via sh_sigtrap_handler(), so we want our thread to still
+     have this signal handler. */
+  sigdelset( &signal_set, SIGTRAP );
+#endif
   pthread_sigmask( SIG_BLOCK, &signal_set, NULL );
 
   /* find a free slot in threads[]

Change History (1)

comment:1 Changed 9 years ago by rainer

Resolution: fixed
Status: newclosed

Believed to be fixed by changeset [405].

Note: See TracTickets for help on using tickets.