Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2011-11-25 01:36:53 +0400
committerChristopher Faylor <me@cgf.cx>2011-11-25 01:36:53 +0400
commitef8bff85be3057385b34a4c0f8ba2b274041ffcc (patch)
treef131b4c4b2e0a349fa8791c0d4b17b2bf8296b4a /winsup/cygwin/strace.cc
parent8942ed09ac9491f52337395e11b6dc0c554be05f (diff)
* cygthread.h (cygthread::name): Default name to "main" if we are early in the
process of setting up the DLL and no name is known. * dcrt0.cc (initial_env): Remove CYGWIN_SLEEP stuff. (get_cygwin_startup_info): Activate strace here as appropriate. (dll_crt0_0): Move get_cygwin_startup_info as early as possible to avoid missing strace output. * fork.cc (frok::child): Move debugging statement to point where ppid will be set. * pinfo.cc (pinfo::thisproc): Remove obsolete call to strace.hello. Tweak debug output slightly. * select.cc (select_stuff::wait): Allow APCS to be triggered while waiting since we use them now. Report when that happens. * sigproc.cc (child_info::child_info): Use strace.active() rather than strace.attached(). * spawn.cc (child_info_spawn::worker): Only write strace child pid when we know it's a cygwin process. Accommodate change to write_child argument list. * strace.cc (strace::hello): Delete. Move functionality... (strace::activate): ...to here. (mypid): Just use raw GetCurrentProcessId () if myself isn't set. (strace::write_childpid): Don't wait for subproc_ready. Remove arg which was required for it. * include/sys/strace.h (strace::hello): Delete. (strace::write_childpid): Delete first argument.
Diffstat (limited to 'winsup/cygwin/strace.cc')
-rw-r--r--winsup/cygwin/strace.cc48
1 files changed, 24 insertions, 24 deletions
diff --git a/winsup/cygwin/strace.cc b/winsup/cygwin/strace.cc
index 58dbb8887..120ba32c3 100644
--- a/winsup/cygwin/strace.cc
+++ b/winsup/cygwin/strace.cc
@@ -39,29 +39,30 @@ strace::activate (bool isfork)
char buf[30];
__small_sprintf (buf, "cYg%8x %x %d", _STRACE_INTERFACE_ACTIVATE_ADDR, &_active, isfork);
OutputDebugString (buf);
- }
-}
-
-void
-strace::hello ()
-{
- if (active ())
- {
- char pidbuf[80];
- if (myself->progname[0])
- __small_sprintf (pidbuf, "(pid %d, ppid %d, windows pid %u)", myself->pid,
- myself->ppid ?: 1, GetCurrentProcessId ());
- else
+ if (_active)
{
- GetModuleFileNameW (NULL, myself->progname, sizeof (myself->progname));
- __small_sprintf (pidbuf, "(windows pid %d)", GetCurrentProcessId ());
+ char pidbuf[80];
+ WCHAR progname_buf[NT_MAX_PATH - 512];
+ WCHAR *progname;
+ if (myself)
+ {
+ __small_sprintf (pidbuf, "(pid %d, ppid %d, windows pid %u)", myself->pid,
+ myself->ppid ?: 1, GetCurrentProcessId ());
+ progname = myself->progname;
+ }
+ else
+ {
+ GetModuleFileNameW (NULL, progname_buf, sizeof (myself->progname));
+ __small_sprintf (pidbuf, "(windows pid %u)", GetCurrentProcessId ());
+ progname = progname_buf;
+ }
+ prntf (1, NULL, "**********************************************");
+ prntf (1, NULL, "Program name: %W %s", progname, pidbuf);
+ prntf (1, NULL, "OS version: Windows %s", wincap.osname ());
+ if (cygheap && cygheap->user_heap.chunk)
+ prntf (1, NULL, "Heap size: %u", cygheap->user_heap.chunk);
+ prntf (1, NULL, "**********************************************");
}
- prntf (1, NULL, "**********************************************");
- prntf (1, NULL, "Program name: %W %s", myself->progname, pidbuf);
- prntf (1, NULL, "OS version: Windows %s", wincap.osname ());
- if (cygheap)
- prntf (1, NULL, "Heap size: %u", cygheap->user_heap.chunk);
- prntf (1, NULL, "**********************************************");
}
}
@@ -127,7 +128,7 @@ mypid (char *buf)
if (myself && myself->pid)
__small_sprintf (buf, "%d", myself->pid);
else
- __small_sprintf (buf, "(%d)", cygwin_pid (GetCurrentProcessId ()));
+ __small_sprintf (buf, "(%d)", GetCurrentProcessId ());
return buf;
}
@@ -224,13 +225,12 @@ strace::write (unsigned category, const char *buf, int count)
}
void
-strace::write_childpid (child_info& ch, DWORD pid)
+strace::write_childpid (DWORD pid)
{
char buf[30];
if (!attached () || !being_debugged ())
return;
- WaitForSingleObject (ch.subproc_ready, 30000);
__small_sprintf (buf, "cYg%8x %x", _STRACE_CHILD_PID, pid);
OutputDebugString (buf);
}