在程序中我们无法判断是谁调用这个函数的,这个时候需要打印出堆栈信息(callstack)。即可知道调用顺序
- cpp函数中打印
- 步骤加入头文件#include <utils/CallStack.h>
- 然后包含加入头文件的bp文件中加入libutilscallstack.so文件
在.cpp的[Android.mk或bp中LOCAL_SHARED_LIBRARIES添加 libutilscallstack,
LOCAL_SHARED_LIBRARIES :=
libutilscallstack - 在调用函数里面
android::CallStack stack;
stack.update();
stack.log("set你想打印的东西");
- 在.java文件的code里面
- 在.c文件中打印
- 把附件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
}
- 在.c文件所在的的Android.mk或bp里面LOCAL_SHARED_LIBRARIES添加 libutilscallstack,在LOCAL_SRC_FILES下面添加callstack.cpp
LOCAL_SHARED_LIBRARIES :=
libutilscallstack
LOCAL_SRC_FILES:=
callstack.cpp - 加入头文件#include "callstack.h"
- 函数里添加dumping_stack();
- 在kernel下打印堆栈
dump_stack();