记录一下Android堆栈打印方法,程序运行堆栈在分析代码运行逻辑中非常有用
1.在要打印堆栈的模块中添加libutilscallstack、libutils两个共享库依赖,有可能是Android.mk,也有可能是Android.bp
Android.bp:
cc_defaults {name: "xxxxxxxxxxx",shared_libs: ["xxxxx","libutils","libutilscallstack",],
}
Android.mk:
LOCAL_SHARED_LIBRARIES := \
+ libutils\
+ libutilscallstack \
2.在cpp文件中添加:#include <utils/CallStack.h>
3.打印堆栈:
CallStack stack;stack.update();stack.log("MINICOCO");
或者
CallStack cs("INTEL-MESA");cs.update();cs.log("INTEL-MESA", ANDROID_LOG_ERROR, "");
注意CallStack 在android名字空间中