增加callstack是一种非常常用和有效的debug方法,下面将分别说明一下kernel,native framework和Java framework的callstack如何添加。
kernel
dump_stack();
例如:在函数里面加入dump_stack();后就可以在kernel log看到dapm_seq_insert函数的调用栈。
native framework
首先增加头文件#include <utils/CallStack.h>
其次在android.mk或者android.bp增加shared_libs: libutilscallstack
最后在函数里面增加 CallStack cs("AudioTrack::start()Callbacks");
java framework
首先import android.util.Slog;
Java framework增加调用栈
RuntimeException e = new RuntimeException("adjustStreamVolume stack");
e.fillInStackTrace();
Slog.i(TAG,"amad:stack",e);
搜索:amad:stack,它的下面就是打印出的调用栈