Fix 'strace -T -pid=' Index: cygwin/include/sys/strace.h =================================================================== --- cygwin/include/sys/strace.h.orig +++ cygwin/include/sys/strace.h @@ -40,6 +40,7 @@ class strace unsigned char _active; public: void activate (); + void toggle (); strace () {activate ();} int microseconds (); int version; Index: cygwin/sigproc.cc =================================================================== --- cygwin/sigproc.cc.orig +++ cygwin/sigproc.cc @@ -1194,7 +1194,7 @@ wait_sig (VOID *) talktome (&pack.si); break; case __SIGSTRACE: - strace.activate (); + strace.toggle (); strace.hello (); break; case __SIGPENDING: Index: cygwin/strace.cc =================================================================== --- cygwin/strace.cc.orig +++ cygwin/strace.cc @@ -43,6 +43,21 @@ strace::activate () } void +strace::toggle() +{ + if (active()) + { + /* turn off stracing */ + _active ^= 1; + } + else + { + /* announcing _STRACE_INTERFACE_ACTIVATE_ADDR makes the stracer turn on stracing */ + activate (); + } +} + +void strace::hello () { if (active ())