分享

Android中C/C 打印堆栈的方法

 吴家小院 2012-05-31

Java可以方便的打印函数的调用栈。C/C++也可以
为了显示在vm/Misc.cpp中谁调用了函数dvmAllocRegion,在这个函数中加入下面红色代码:

点击(此处)折叠或打开

  1. #include <utils/CallStack.h>
  2. ...
  3. void *dvmAllocRegion(size_t byteCount, int prot, const char *name) {
  4. ...
  5. #ifdef _ARM_
  6.     LOGW("name=%s", name);
  7.     android::CallStack stack;
  8.     stack.update(1, 100);
  9.     stack.dump("");
  10. #endif

  11. ...
  12. }
在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就投入使用了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多