0
点赞
收藏
分享

微信扫一扫

打印函数调用流程

在程序中我们无法判断是谁调用这个函数的,这个时候需要打印出堆栈信息(callstack)。即可知道调用顺序

  • cpp函数中打印
  1. 步骤加入头文件#include <utils/CallStack.h>
  2. 然后包含加入头文件的bp文件中加入libutilscallstack.so文件
    在.cpp的[Android.mk或bp中LOCAL_SHARED_LIBRARIES添加 libutilscallstack,
    LOCAL_SHARED_LIBRARIES :=
    libutilscallstack
  3. 在调用函数里面

          android::CallStack stack;

          stack.update();

          stack.log("set你想打印的东西");

  • 在.java文件的code里面
  • 在.c文件中打印
  1. 把附件callstack.h和callstack.cpp拷到.c的目录下
    callstack.cpp:

#include <utils/CallStack.h>

#include "callstack.h"

void dumping_callstack(void)
{
android::CallStack cs("qqtest");
}

callstack.h

#ifdef __cplusplus
extern "C" {
#endif

void dumping_callstack(void);
#ifdef __cplusplus
#endif

}


  1. 在.c文件所在的的Android.mk或bp里面LOCAL_SHARED_LIBRARIES添加 libutilscallstack,在LOCAL_SRC_FILES下面添加callstack.cpp
    LOCAL_SHARED_LIBRARIES :=
    libutilscallstack
    LOCAL_SRC_FILES:=  
    callstack.cpp
  2. 加入头文件#include "callstack.h"
  3. 函数里添加dumping_stack();
  • 在kernel下打印堆栈

dump_stack();

举报

相关推荐

0 条评论