开启binder驱动 log

本文介绍了两种开启Androidbinder驱动日志的方法:临时修改系统配置和修改binder.c源码。详细列出了不同级别的binder日志标志位及其含义。
摘要由CSDN通过智能技术生成

背景

  分析binder驱动问题,需要开启log。由于内核是底层,log不能随便加随便开。不然性能撑不住。

开启binder日志

  有2种方法:1、修改系统配置 2、修改binder.c源码

  1. 修改系统配置

    这个是临时的,每次重启,需要重新设置。
    举例:adb shell ‘echo 1536 > /sys/module/binder/parameters/debug_mask’
    解释1536 = 1024 +512 = 2 ^10 + 2^9,
    代表想打开下面的两个标志位的日志,
    BINDER_DEBUG_TRANSACTION = 1U << 9,
    BINDER_DEBUG_TRANSACTION_COMPLETE = 1U << 10,

  2. 修改binder.c源码

    在binder_debug_mask变量上,打开对应的位。
    举例,想打开BINDER_DEBUG_TRANSACTION。

	binder_debug_mask = BINDER_DEBUG_USER_ERROR | BINDER_DEBUG_FAILED_TRANSACTION | BINDER_DEBUG_DEAD_TRANSACTION | BINDER_DEBUG_TRANSACTION;        

  下面是各个级别的binder log位

enum {
	BINDER_DEBUG_USER_ERROR             = 1U << 0,
	BINDER_DEBUG_FAILED_TRANSACTION     = 1U << 1,
	BINDER_DEBUG_DEAD_TRANSACTION       = 1U << 2,
	BINDER_DEBUG_OPEN_CLOSE             = 1U << 3,
	BINDER_DEBUG_DEAD_BINDER            = 1U << 4,
	BINDER_DEBUG_DEATH_NOTIFICATION     = 1U << 5,
	BINDER_DEBUG_READ_WRITE             = 1U << 6,
	BINDER_DEBUG_USER_REFS              = 1U << 7,
	BINDER_DEBUG_THREADS                = 1U << 8,
	BINDER_DEBUG_TRANSACTION            = 1U << 9,
	BINDER_DEBUG_TRANSACTION_COMPLETE   = 1U << 10,
	BINDER_DEBUG_FREE_BUFFER            = 1U << 11,
	BINDER_DEBUG_INTERNAL_REFS          = 1U << 12,
	BINDER_DEBUG_BUFFER_ALLOC           = 1U << 13,
	BINDER_DEBUG_PRIORITY_CAP           = 1U << 14,
	BINDER_DEBUG_BUFFER_ALLOC_ASYNC     = 1U << 15,
};
static uint32_t binder_debug_mask = BINDER_DEBUG_USER_ERROR |
	BINDER_DEBUG_FAILED_TRANSACTION | BINDER_DEBUG_DEAD_TRANSACTION;
binder.c
  1. 尽情期待
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值