diff options
author | Glenn Kasten <gkasten@google.com> | 2012-06-05 16:42:22 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2012-10-08 15:48:53 -0700 |
commit | a09aa3eaad6ed5432ee13c764c67e67f7f43cac9 (patch) | |
tree | a2dd4d5c1b0bc1c2b3cb0080c9a5ad287cb951a0 | |
parent | 24505a5826d7c5cf89f3da85058befd671a73444 (diff) | |
download | extras-a09aa3eaad6ed5432ee13c764c67e67f7f43cac9.tar.gz |
Add -n and -S options for 'nohup', offline traces
Change-Id: Ieef12b36b8519ff689ab5a81447b1b9bf4806171
-rw-r--r-- | atrace/atrace.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/atrace/atrace.c b/atrace/atrace.c index 5edc47b3..890165af 100644 --- a/atrace/atrace.c +++ b/atrace/atrace.c @@ -39,6 +39,8 @@ static bool g_traceWorkqueue = false; static bool g_traceOverwrite = false; static int g_traceBufferSizeKB = 2048; static bool g_compress = false; +static bool g_nohup = false; +static int g_initialSleepSecs = 0; /* Global state */ static bool g_traceAborted = false; @@ -417,7 +419,9 @@ static void showHelp(const char *cmd) } static void handleSignal(int signo) { - g_traceAborted = true; + if (!g_nohup) { + g_traceAborted = true; + } } static void registerSigHandler() { @@ -443,7 +447,7 @@ int main(int argc, char **argv) for (;;) { int ret; - ret = getopt(argc, argv, "b:cidflst:uwz"); + ret = getopt(argc, argv, "b:cidflst:uwznS:"); if (ret < 0) { break; @@ -478,10 +482,18 @@ int main(int argc, char **argv) g_traceFrequency = true; break; + case 'n': + g_nohup = true; + break; + case 's': g_traceSchedSwitch = true; break; + case 'S': + g_initialSleepSecs = atoi(optarg); + break; + case 't': g_traceDurationSeconds = atoi(optarg); break; @@ -516,6 +528,10 @@ int main(int argc, char **argv) registerSigHandler(); + if (g_initialSleepSecs > 0) { + sleep(g_initialSleepSecs); + } + bool ok = startTrace(isRoot); if (ok) { |