android 里面添加打印调用堆栈

本文详细介绍了在Android Native层如何正确使用CallStack来打印C++堆栈信息,包括在Android.bp或Android.mk中配置lib库,以及在代码中包含必要的头文件和调用CallStack的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    C++里面

1.

Android.bp文件

shared_libs: [

"libbacktrace",

"libutilscallstack",

]

如果是Android.mk文件,添加

LOCAL_SHARED_LIBRARIES += libcutils libutils

2. Native层的头文件上添加
#include<utils/CallStack.h>


3. 在需要dump的位置添加:
android::CallStack stack("Debug info");

在P版本上发现,打印C++堆栈,

出现undefined reference to 'android::CallStack::CallStack()

没有lib库。

解决方法:

添加

LOCAL_SHARED_LIBRARIES := \
    libutilscallstack\

P版本的callstack依赖库从libutils \改到libutilscallstack\中了。
 

{

在需要导包的地方加入

#include <utils/CallStack.h>

android::CallStack stack;

}

{

在需要添加log的地方加入

   stack.update();
    stack.log("log_tag");

}

{

Android.mk里面添加

LOCAL_SHARED_LIBRARIES := \
    libutilscallstack\

    libcutils \

    libutils\

}

JAVA里面

1. Java打印调用堆栈

Log.d(TAG,Log.getStackTraceString(new Throwable()));  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值