diff options
author | Christopher Ferris <cferris@google.com> | 2014-09-02 12:49:32 -0700 |
---|---|---|
committer | Christopher Ferris <cferris@google.com> | 2014-09-05 17:17:04 -0700 |
commit | bebb26725ad04f775b040ca7b97ac4b930c0d362 (patch) | |
tree | b3aad1460ff4d8f3bf904265894c96c714cd647f | |
parent | 523afd157be99ddce8c0f643caceb9db4a9227bb (diff) | |
download | base-bebb26725ad04f775b040ca7b97ac4b930c0d362.tar.gz |
Add new header to support 32 bit/64 bit dumps.
Bug: 17319589
(cherry picked from commit 0d3c045a0d48193150689e5924bd04c511380a8a)
Change-Id: I79aa035098115de7b02171a9432ff7e9393328ab
-rw-r--r-- | core/jni/android_ddm_DdmHandleNativeHeap.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/core/jni/android_ddm_DdmHandleNativeHeap.cpp b/core/jni/android_ddm_DdmHandleNativeHeap.cpp index f5eaf94b15d2..9b963209f892 100644 --- a/core/jni/android_ddm_DdmHandleNativeHeap.cpp +++ b/core/jni/android_ddm_DdmHandleNativeHeap.cpp @@ -35,7 +35,15 @@ extern "C" void get_malloc_leak_info(uint8_t** info, size_t* overallSize, extern "C" void free_malloc_leak_info(uint8_t* info); +#define DDMS_HEADER_SIGNATURE 0x812345dd +#define DDMS_VERSION 2 + struct Header { +#if defined(__LP64__) + uint32_t signature; + uint16_t version; + uint16_t pointerSize; +#endif size_t mapSize; size_t allocSize; size_t allocInfoSize; @@ -77,6 +85,12 @@ static jbyteArray DdmHandleNativeHeap_getLeakInfo(JNIEnv* env, jobject) { ALOGD("*** mapSize: %d allocSize: %d allocInfoSize: %d totalMemory: %d", header.mapSize, header.allocSize, header.allocInfoSize, header.totalMemory); +#if defined(__LP64__) + header.signature = DDMS_HEADER_SIGNATURE; + header.version = DDMS_VERSION; + header.pointerSize = sizeof(void*); +#endif + jbyteArray array = env->NewByteArray(sizeof(Header) + header.mapSize + header.allocSize); if (array != NULL) { env->SetByteArrayRegion(array, 0, |