diff options
author | Dianne Hackborn <hackbod@google.com> | 2011-11-03 19:19:28 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2011-11-04 13:38:18 -0700 |
commit | 9b424b44515490cb173ce1837b763ac0f6153a17 (patch) | |
tree | 4a2a4c263fb8cad134f212d720967f905eedfde8 | |
parent | e4ca92421cc07c2f7f152b774dd1ac7a8944028b (diff) | |
download | frameworks_base-9b424b44515490cb173ce1837b763ac0f6153a17.zip frameworks_base-9b424b44515490cb173ce1837b763ac0f6153a17.tar.gz frameworks_base-9b424b44515490cb173ce1837b763ac0f6153a17.tar.bz2 |
DO NOT MERGE. Integrate: Include showmap output in bug report.
Change-Id: I51265eb248b7eba360f0758fa9eb8a01821f108a
-rw-r--r-- | cmds/dumpstate/dumpstate.c | 2 | ||||
-rw-r--r-- | cmds/dumpstate/dumpstate.h | 3 | ||||
-rw-r--r-- | cmds/dumpstate/utils.c | 9 |
3 files changed, 14 insertions, 0 deletions
diff --git a/cmds/dumpstate/dumpstate.c b/cmds/dumpstate/dumpstate.c index 30aed33..ca66a4e 100644 --- a/cmds/dumpstate/dumpstate.c +++ b/cmds/dumpstate/dumpstate.c @@ -209,6 +209,8 @@ static void dumpstate() { run_command("LIST OF OPEN FILES", 10, "su", "root", "lsof", NULL); + for_each_pid(do_showmap, "SMAPS OF ALL PROCESSES"); + #ifdef BOARD_HAS_DUMPSTATE printf("========================================================\n"); printf("== Board\n"); diff --git a/cmds/dumpstate/dumpstate.h b/cmds/dumpstate/dumpstate.h index 597ab1f..6d66b1b 100644 --- a/cmds/dumpstate/dumpstate.h +++ b/cmds/dumpstate/dumpstate.h @@ -45,6 +45,9 @@ void for_each_pid(void (*func)(int, const char *), const char *header); /* Displays a blocked processes in-kernel wait channel */ void show_wchan(int pid, const char *name); +/* Runs "showmap" for a process */ +void do_showmap(int pid, const char *name); + /* Play a sound via Stagefright */ void play_sound(const char* path); diff --git a/cmds/dumpstate/utils.c b/cmds/dumpstate/utils.c index b2f9e80..14984ec 100644 --- a/cmds/dumpstate/utils.c +++ b/cmds/dumpstate/utils.c @@ -96,6 +96,15 @@ out_close: return; } +void do_showmap(int pid, const char *name) { + char title[255]; + char arg[255]; + + sprintf(title, "SHOW MAP %d (%s)", pid, name); + sprintf(arg, "%d", pid); + run_command(title, 10, "su", "root", "showmap", arg, NULL); +} + /* prints the contents of a file */ int dump_file(const char *title, const char* path) { char buffer[32768]; |