Java可以方便的打印函数的调用栈。C/C++也可以
为了显示在vm/Misc.cpp中谁调用了函数dvmAllocRegion,在这个函数中加入下面红色代码:
- #include
- ...
- void *dvmAllocRegion(size_t byteCount, int prot, const char *name) {
- ...
- #ifdef _ARM_
- LOGW("name=%s", name);
- android::CallStack stack;
- stack.update(1, 100);
- stack.dump("");
- #endif
- ...
- }
在vm/Dvm.mk中,加入:
LOCAL_CFLAGS += -D_ARM_
LOCAL_SHARED_LIBRARIES += libutils
"mmm dalvik" 得到libdvm.so。然后
adb root
adb remount
adb push libdvm.so /system/lib
adb reboot
系统重启后,新的libdvm.so就投入使用了。
阅读(13370) | 评论(2) | 转发(0) |