Android Native打印CallStack

1,202 阅读1分钟

代码中打印

  1. 新增头文件
#include "utils/CallStack.h"
  1. 在需要打印callstack的地方
android::CallStack stack(("print callstack")); // 字符串可以自定义
  1. 在Android.mk中新增shared libraries
LOCAL_SHARED_LIBRARIES += libutilscallstack

有必要的话,还可以新增 LOCAL_C_INCLUDES += $(TOP)/system/core/include

命令行打印

debuggerd -b pid

cmd脚本打印camera provider CallStack

adb wait-for-device
adb remount

set Folder="Log_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%_%time:~6,2%"
rd /s /q %Folder%\

mkdir %Folder%

adb wait-for-device

adb shell "ps -ef | grep  camera | grep -v grep | grep android.hardware.camera.provider | awk '{print $2}' | xargs debuggerd -b" > %Folder%\callstack.dump