summaryrefslogtreecommitdiffstats
path: root/core/jni/android_os_Debug.cpp
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2010-10-17 23:40:43 -0700
committerBrian Carlstrom <bdc@google.com>2010-10-17 23:40:43 -0700
commit393b84c137fe52f42205cef7e63b7a04b4bfd789 (patch)
tree4fa178b0928e883c34ee39425775d5a19faf9899 /core/jni/android_os_Debug.cpp
parentd609279c33f7d5587e5fa0bd954bff846623e246 (diff)
downloadframeworks_base-393b84c137fe52f42205cef7e63b7a04b4bfd789.zip
frameworks_base-393b84c137fe52f42205cef7e63b7a04b4bfd789.tar.gz
frameworks_base-393b84c137fe52f42205cef7e63b7a04b4bfd789.tar.bz2
Extended android.os.Debug.dumpNativeHeap to include /proc/self/maps contents
Change-Id: I86da98bc48111007d8226d8d0dbc7be470bde877
Diffstat (limited to 'core/jni/android_os_Debug.cpp')
-rw-r--r--core/jni/android_os_Debug.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/core/jni/android_os_Debug.cpp b/core/jni/android_os_Debug.cpp
index 4a877d2..2297834 100644
--- a/core/jni/android_os_Debug.cpp
+++ b/core/jni/android_os_Debug.cpp
@@ -397,8 +397,22 @@ static void dumpNativeHeap(FILE* fp)
ptr += infoSize;
}
- fprintf(fp, "END\n");
free_malloc_leak_info(info);
+
+ fprintf(fp, "MAPS\n");
+ const char* maps = "/proc/self/maps";
+ FILE* in = fopen(maps, "r");
+ if (in == NULL) {
+ fprintf(fp, "Could not open %s\n", maps);
+ return;
+ }
+ char buf[BUFSIZ];
+ while (size_t n = fread(buf, sizeof(char), BUFSIZ, in)) {
+ fwrite(buf, sizeof(char), n, fp);
+ }
+ fclose(in);
+
+ fprintf(fp, "END\n");
}
#endif /*HAVE_ANDROID_OS*/