ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

调试过程中的堆栈打印

调试过程中的堆栈打印

一、android 中native 层的打印堆栈(c++)
1. android::CallStack用于代码分析
C++代码架构经常特别复杂,可以使用android::CallStack将所在线程的调用栈打印出来
基本用法:
#include <utils/CallStack.h>
#include <utils/Log.h>
android::CallStack stack;
stack.update();
//stack.dump(1); //输出到printf
stack.log("log_tag"); //输出到logcat
CallStack的实现其实是通过libbacktrace实现的,后面有需求可以分析下源码
二、Java打印堆栈信息:
Log.d("zjy","setOnLongClickListener throw:"+Log.getStackTraceString(new Throwable()));

或者:Thread.dumpStack();

新的系统已经有改动,参考:https://www.cnblogs.com/ArsenalfanInECNU/p/14510304.html

【Android Debug】Android native 层加堆栈打印信息_...-CSDN博客

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进