From 100ce3910d6d603ba7c4908de541ea71d93c5cdc Mon Sep 17 00:00:00 2001 From: Josh Gao Date: Mon, 31 Oct 2016 17:37:37 -0700 Subject: [PATCH] crasher: add option to wait for input before crashing. This will be useful for tests that want to do things with crasher's pid before it crashes. Bug: http://b/30705528 Test: crasher wait-abort; crasher wait-thread-abort Change-Id: I8ba826094dc304d6cd0e6ab088e5cfdb35d2007b --- debuggerd/crasher.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/debuggerd/crasher.cpp b/debuggerd/crasher.cpp index 3db67b30d..b0e8b175f 100644 --- a/debuggerd/crasher.cpp +++ b/debuggerd/crasher.cpp @@ -160,7 +160,11 @@ static int do_action(const char* arg) { fprintf(stderr, "%s: init pid=%d tid=%d\n", __progname, getpid(), gettid()); - if (!strncmp(arg, "exhaustfd-", strlen("exhaustfd-"))) { + if (!strncmp(arg, "wait-", strlen("wait-"))) { + char buf[1]; + TEMP_FAILURE_RETRY(read(STDIN_FILENO, buf, sizeof(buf))); + return do_action(arg + strlen("wait-")); + } else if (!strncmp(arg, "exhaustfd-", strlen("exhaustfd-"))) { errno = 0; while (errno != EMFILE) { open("/dev/null", O_RDONLY); @@ -235,6 +239,8 @@ static int do_action(const char* arg) fprintf(stderr, "on the process' main thread.\n"); fprintf(stderr, "prefix any of the above with 'exhaustfd-' to exhaust\n"); fprintf(stderr, "all available file descriptors before crashing.\n"); + fprintf(stderr, "prefix any of the above with 'wait-' to wait until input is received on stdin\n"); + return EXIT_SUCCESS; }