Android调用栈打印

1.用户空间打印调用栈

 

       void *stack_addr[10];  
       int layer;  
       int i;  
       char **ppstack_funcs;  
  
       /* 通过调用libc函数实现 */  
       layer = backtrace(stack_addr, 10);  
       ppstack_funcs = backtrace_symbols(stack_addr, layer);  
       for(i = 0; i < layer; i++)  
             printf("\n%s:%p\n", ppstack_funcs[i], stack_addr[i]);  

2.HAL层打印调用栈

 

 

#include <utils/CallStack.h>
	android::CallStack stack;
	stack.update(1);
	stack.log("xxxtag");

Android Q之后的版本Android.mk中添加

LOCAL_SHARED_LIBRARIES += libutilscallstack

 

3.Kernel打印调用栈

Dump_stack();//void dump_stack(void)

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值