diff options
author | Christopher Faylor <me@cgf.cx> | 2011-11-24 02:17:55 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2011-11-24 02:17:55 +0000 |
commit | 8942ed09ac9491f52337395e11b6dc0c554be05f (patch) | |
tree | bdd0f41aa11c48fe91eb07f483fad89f7baffe8f /winsup/cygwin/strace.cc | |
parent | 5f38ec468115a6ddf2c458f2b8f9c4abfd8b0359 (diff) | |
download | newlib-8942ed09ac9491f52337395e11b6dc0c554be05f.zip newlib-8942ed09ac9491f52337395e11b6dc0c554be05f.tar.gz newlib-8942ed09ac9491f52337395e11b6dc0c554be05f.tar.bz2 |
* child_info.h (CURR_CHILD_INFO_MAGIC): Reset for previous changes.
* dcrt0.cc (get_cygwin_startup_info): Signal readiness when stracing since
strace::write_child relies on it. Use strace.activate to notify strace
process, passing in arg indicating whether we're forked.
* sigproc.cc (wait_sig): Accommodate new strace::activate argument.
* spawn.cc (child_info_spawn::worker): Oops. Previous suspended test was
actually correct. Revert and document.
* strace.cc (strace::activate): Send additional flag indicating whether this is
an attempt to activate a forked process.
(strace::hello): Report on windows pid.
* include/sys/strace.h (strace::strace): Make a dummy.
(strace::activate): Modify declaration to accept an argument.
(strace::write_childpid): Set regparm.
Diffstat (limited to 'winsup/cygwin/strace.cc')
-rw-r--r-- | winsup/cygwin/strace.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/winsup/cygwin/strace.cc b/winsup/cygwin/strace.cc index 6b3de5c..58dbb88 100644 --- a/winsup/cygwin/strace.cc +++ b/winsup/cygwin/strace.cc @@ -32,12 +32,12 @@ class strace NO_COPY strace; #ifndef NOSTRACE void -strace::activate () +strace::activate (bool isfork) { if (!dynamically_loaded && !_active && being_debugged ()) { char buf[30]; - __small_sprintf (buf, "cYg%8x %x", _STRACE_INTERFACE_ACTIVATE_ADDR, &_active); + __small_sprintf (buf, "cYg%8x %x %d", _STRACE_INTERFACE_ACTIVATE_ADDR, &_active, isfork); OutputDebugString (buf); } } @@ -47,9 +47,10 @@ strace::hello () { if (active ()) { - char pidbuf[40]; + char pidbuf[80]; if (myself->progname[0]) - __small_sprintf (pidbuf, "(pid %d, ppid %d)", myself->pid, myself->ppid ?: 1); + __small_sprintf (pidbuf, "(pid %d, ppid %d, windows pid %u)", myself->pid, + myself->ppid ?: 1, GetCurrentProcessId ()); else { GetModuleFileNameW (NULL, myself->progname, sizeof (myself->progname)); |