+2006-05-24 Christopher Faylor <cgf@timesys.com>
+
+ * strace.cc (proc_child): Propagate return code from child process.
+ (dostrace): Ditto.
+ (main): Ditto.
+
2006-03-03 Christian Franke <franke@computer.org>
* regtool.cc (options): Add 'binary'.
fflush (ofile);
}
-static void
+static DWORD
proc_child (unsigned mask, FILE *ofile, pid_t pid)
{
+ DWORD res = 0;
DEBUG_EVENT ev;
time_t cur_time, last_time;
break;
case EXIT_PROCESS_DEBUG_EVENT:
+ res = ev.u.ExitProcess.dwExitCode >> 8;
remove_child (ev.dwProcessId);
break;
case EXCEPTION_DEBUG_EVENT:
if (!processes)
break;
}
+
+ return res;
}
static void
return;
}
-static void
+static DWORD
dostrace (unsigned mask, FILE *ofile, pid_t pid, char **argv)
{
if (!pid)
create_child (argv);
else
attach_process (pid);
- proc_child (mask, ofile, pid);
- return;
+ return proc_child (mask, ofile, pid);
}
typedef struct tag_mask_mnemonic
if (!ofile)
ofile = stdout;
+ DWORD res = 0;
if (toggle)
dotoggle (pid);
else
- dostrace (mask, ofile, pid, argv + optind);
+ res = dostrace (mask, ofile, pid, argv + optind);
+ return res;
}
#undef CloseHandle