网站建设空间空间有几种类型/搜索引擎营销的主要方式有哪些?

网站建设空间空间有几种类型,搜索引擎营销的主要方式有哪些?,政府党建网站模板下载,企业网站开发基本流程背景: 经常有学员朋友在做系统开发时候,有时候遇到binder相关的一些问题,这个时候可能就需要比较多的binder相关日志,但是正常情况下这些binder通讯的的内核日志都是没有的打印的,因为经常binder通讯太过于频繁&#…

背景:

经常有学员朋友在做系统开发时候,有时候遇到binder相关的一些问题,这个时候可能就需要比较多的binder相关日志,但是正常情况下这些binder通讯的的内核日志都是没有的打印的,因为经常binder通讯太过于频繁,如果正常版本都开放出来这些binder调试日志,那样会让系统卡顿,影响性能。
但是在分析binder驱动源码时候又可以看到类似如下日志:
在这里插入图片描述那么到底该怎么让这些日志可以打印出来呢?下面给大家介绍一下相关的打开日志的命令。
这里binder内核日志相关准备分为两节给大家分享:
第一节:主要介绍相关实战命令的使用让大家学会用命令去开放日志
第二节:主要介绍binder调试日志相关的源码分析和控制原理

实战调试命令:

通过控制debug_mask值来控制相关的binder调试日志的打开,那么debug_mask值的依据是什么呢?那就是来源下面这个枚举:
kernel-aosp14/common/drivers/android/binder.c

enum {BINDER_DEBUG_USER_ERROR             = 1U << 0, // 1BINDER_DEBUG_FAILED_TRANSACTION     = 1U << 1, // 2BINDER_DEBUG_DEAD_TRANSACTION       = 1U << 2, // 4BINDER_DEBUG_OPEN_CLOSE             = 1U << 3, // 8BINDER_DEBUG_DEAD_BINDER            = 1U << 4, // 16BINDER_DEBUG_DEATH_NOTIFICATION     = 1U << 5, // 32BINDER_DEBUG_READ_WRITE             = 1U << 6, // 64BINDER_DEBUG_USER_REFS              = 1U << 7, // 128BINDER_DEBUG_THREADS                = 1U << 8, // 216BINDER_DEBUG_TRANSACTION            = 1U << 9, // 512BINDER_DEBUG_TRANSACTION_COMPLETE   = 1U << 10,// 1024BINDER_DEBUG_FREE_BUFFER            = 1U << 11,// 2048BINDER_DEBUG_INTERNAL_REFS          = 1U << 12,// 4096BINDER_DEBUG_PRIORITY_CAP           = 1U << 13,// 8192BINDER_DEBUG_SPINLOCKS              = 1U << 14,// 16384
};

比如上面背景中我们看到有binder_debug打印,它带的参数是BINDER_DEBUG_OPEN_CLOSE
在这里插入图片描述
那么从枚举得出BINDER_DEBUG_OPEN_CLOSE = 1U << 3, // 8
所以只需要对debug_mask写入 8既可以实现让binder的中所有BINDER_DEBUG_OPEN_CLOSE相关binder_debug打印出来。

那么这个debug_mask在哪里呢?这里先直接告诉大家,是在如下目录:

NX563J:/sys/module/binder/parameters # ls
debug_mask  devices  stop_on_user_error

简单说就是在/sys/module/binder/parameters/debug_mask,这里的debug_mask文件就是要写入的文件
比如写入上面的值BINDER_DEBUG_OPEN_CLOSE为8 (注意一般需要debug机器)

NX563J:/ # echo 8 >  /sys/module/binder/parameters/debug_mask                                                                                                                                                  

然后这个时候抓取日志看看是否有显示binder的open相关日志:

130|NX563J:/ # logcat -b all -c;logcat -b kernel | grep binder                                                                                                                                                    03-04 00:33:46.170     0     0 I binder  : 30418 close vm area da398000-da496000 (1016 K) vma 10220051 pagep 60000000000f53
03-04 00:33:46.172     0     0 I binder  : binder_flush: 30418 woke 0 threads
03-04 00:33:46.172     0     0 I binder  : binder_deferred_release: 30418 threads 5, nodes 2 (ref 3), refs 8, active transactions 0
03-04 00:33:46.187     0     0 I binder  : 30385 close vm area 75d915f000-75d925d000 (1016 K) vma 10220051 pagep 60000000000f53
03-04 00:33:46.187     0     0 I binder  : 30385 close vm area 765da4f000-765db4d000 (1016 K) vma 10220051 pagep 60000000000f53
03-04 00:33:46.187     0     0 I binder  : binder_flush: 30385 woke 0 threads
03-04 00:33:46.187     0     0 I binder  : binder_flush: 30385 woke 0 threads
03-04 00:33:46.188     0     0 I binder  : binder_deferred_release: 30385 threads 1, nodes 0 (ref 0), refs 3, active transactions 0
03-04 00:33:46.195     0     0 I binder  : binder_deferred_release: 30385 threads 11, nodes 50 (ref 51), refs 53, active transactions 0
03-04 00:33:47.224     0     0 I binder  : binder_open: 30512:30512
03-04 00:33:47.224     0     0 I binder  : 30512:30512 ioctl 40046210 7fd05b5cc0 returned -22
03-04 00:33:47.224     0     0 I binder  : binder_mmap: 30512 765db5c000-765dc5a000 (1016 K) vma 200071 pagep 60000000000f53
03-04 00:33:47.499     0     0 I binder  : binder_open: 30512:30536
03-04 00:33:47.499     0     0 I binder  : 30512:30536 ioctl 40046210 765d23af04 returned -22
03-04 00:33:47.499     0     0 I binder  : binder_mmap: 30512 75f1646000-75f1744000 (1016 K) vma 200071 pagep 60000000000f53
03-04 00:33:53.466     0     0 I binder  : binder_open: 30556:30556
03-04 00:33:53.466     0     0 I binder  : 30556:30556 ioctl 40046210 7fd05b5cc0 returned -22
03-04 00:33:53.466     0     0 I binder  : binder_mmap: 30556 765db56000-765dc54000 (1016 K) vma 200071 pagep 60000000000f53
03-04 00:33:53.619     0     0 I binder  : binder_open: 30556:30579
03-04 00:33:53.619     0     0 I binder  : 30556:30579 ioctl 40046210 765d23af04 returned -22
03-04 00:33:53.619     0     0 I binder  : binder_mmap: 30556 765cfa9000-765d0a7000 (1016 K) vma 200071 pagep 60000000000f53

明显可以看到open,closer日志

如果想要多个开放多个枚举,那么只需要做或运算,然后最后结果写入 debug_mask既可以
比如开放如下几个枚举:

BINDER_DEBUG_USER_ERROR             = 1U << 0, // 1
BINDER_DEBUG_FAILED_TRANSACTION     = 1U << 1, // 2
BINDER_DEBUG_DEAD_TRANSACTION       = 1U << 2, // 4
BINDER_DEBUG_OPEN_CLOSE             = 1U << 3, // 8

那么最后写入的值就是8 + 4+ 2+ 1 = 15

NX563J:/ # echo 15 >  /sys/module/binder/parameters/debug_mask                                                                                                                                                  

和binder相关的/sys/module/还有一个binder_alloc,它主要是binder 申请相关的日志,这里枚举有差异

kernel-aosp14/common/drivers/android/binder_alloc.c

enum {BINDER_DEBUG_USER_ERROR             = 1U << 0, // 1BINDER_DEBUG_OPEN_CLOSE             = 1U << 1, // 2BINDER_DEBUG_BUFFER_ALLOC           = 1U << 2, // 4BINDER_DEBUG_BUFFER_ALLOC_ASYNC     = 1U << 3, // 8
};

这里写入值方式和binder下面节点一样

NX563J:/ # echo 7 >  /sys/module/binder_alloc/parameters/debug_mask                                                                                                                                                  

写完后可以看到日志有大量的alloc相关打印:

03-04 00:42:12.716     0     0 I binder_alloc: 15501: binder_alloc_buf size 128 got buffer 0000000000000000 size 1040384
03-04 00:42:12.716     0     0 I binder_alloc: 15501: allocate pages 0000000000000000-0000000000000000
03-04 00:42:12.716     0     0 I binder_alloc: 15501: add free buffer, size 1040256, at 0000000000000000
03-04 00:42:12.716     0     0 I binder_alloc: 15501: binder_alloc_buf size 128 got 0000000000000000
03-04 00:42:12.717     0     0 I binder_alloc: 15501: binder_free_buf 0000000000000000 size 128 buffer_size 128
03-04 00:42:12.717     0     0 I binder_alloc: 15501: free pages 0000000000000000-0000000000000000
03-04 00:42:12.717     0     0 I binder_alloc: 15501: merge free, buffer 0000000000000000 do not share page with 0000000000000000 or 0000000000000000
03-04 00:42:12.717     0     0 I binder_alloc: 15501: free pages 0000000000000000-0000000000000000
03-04 00:42:12.717     0     0 I binder_alloc: 15501: add free buffer, size 1040384, at 0000000000000000
03-04 00:42:12.717     0     0 I binder_alloc: 15733: binder_alloc_buf size 9648 got buffer 0000000000000000 size 1040384
03-04 00:42:12.717     0     0 I binder_alloc: 15733: allocate pages 0000000000000000-0000000000000000
03-04 00:42:12.717     0     0 I binder_alloc: 15733: add free buffer, size 1030736, at 0000000000000000
03-04 00:42:12.717     0     0 I binder_alloc: 15733: binder_alloc_buf size 9648 got 0000000000000000
03-04 00:42:12.717     0     0 I binder_alloc: 15733: binder_free_buf 0000000000000000 size 9648 buffer_size 9648
03-04 00:42:12.717     0     0 I binder_alloc: 15733: free pages 0000000000000000-0000000000000000
03-04 00:42:12.717     0     0 I binder_alloc: 15733: merge free, buffer 0000000000000000 do not share page with 0000000000000000 or 0000000000000000
03-04 00:42:12.717     0     0 I binder_alloc: 15733: free pages 0000000000000000-0000000000000000
03-04 00:42:12.717     0     0 I binder_alloc: 15733: add free buffer, size 1040384, at 0000000000000000
03-04 00:42:12.963     0     0 I binder_alloc: 15501: binder_alloc_buf size 304 got buffer 0000000000000000 size 304
03-04 00:42:12.963     0     0 I binder_alloc: 15501: allocate pages 0000000000000000-0000000000000000
03-04 00:42:12.963     0     0 I binder_alloc: 15501: binder_alloc_buf size 304 got 0000000000000000
03-04 00:42:12.963     0     0 I binder_alloc: 1114: binder_free_buf 0000000000000000 size 48 buffer_size 48
03-04 00:42:12.963     0     0 I binder_alloc: 1114: free pages 0000000000000000-0000000000000000
03-04 00:42:12.963     0     0 I binder_alloc: 1114: merge free, buffer 0000000000000000 do not share page with 0000000000000000 or 0000000000000000
03-04 00:42:12.963     0     0 I binder_alloc: 1114: free pages 0000000000000000-0000000000000000
03-04 00:42:12.963     0     0 I binder_alloc: 1114: add free buffer, size 1040384, at 0000000000000000
03-04 00:42:12.964     0     0 I binder_alloc: 15501: binder_free_buf 0000000000000000 size 304 buffer_size 304
03-04 00:42:12.964     0     0 I binder_alloc: 15501: free pages 0000000000000000-0000000000000000
03-04 00:42:12.964     0     0 I binder_alloc: 15501: add free buffer, size 304, at 0000000000000000
03-04 00:42:12.964     0     0 I binder_alloc: 1114: binder_alloc_buf size 48 got buffer 0000000000000000 size 1040384
03-04 00:42:12.964     0     0 I binder_alloc: 1114: allocate pages 0000000000000000-0000000000000000
03-04 00:42:12.964     0     0 I binder_alloc: 1114: add free buffer, size 1040336, at 0000000000000000
03-04 00:42:12.964     0     0 I binder_alloc: 1114: binder_alloc_buf size 48 got 0000000000000000

更多framework实战开发,请关注下面“千里马学框架”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/72520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 安装达梦数据库(离线)

docker安装达梦数据库&#xff0c;官网上已经下载不了docker版本的了&#xff0c;下面可通过百度网盘下载 通过网盘分享的文件&#xff1a;dm8_20240715_x86_rh6_rq_single.tar.zip 链接: https://pan.baidu.com/s/1_ejcs_bRLZpICf69mPdK2w?pwdszj9 提取码: szj9 上传到服务…

MWC 2025 | 紫光展锐联合移远通信推出全面支持R16特性的5G模组RG620UA-EU

2025年世界移动通信大会&#xff08;MWC 2025&#xff09;期间&#xff0c;紫光展锐联合移远通信&#xff0c;正式发布了全面支持5G R16特性的模组RG620UA-EU&#xff0c;以强大的灵活性和便捷性赋能产业。 展锐芯加持&#xff0c;关键性能优异 RG620UA-EU模组基于紫光展锐V62…

STM32单片机芯片与内部115 DSP-FIR IIR低通 高通 带通 带阻 中值 自适应 滤波器 逐个数据实时 样条插值拟合

目录 一、FIR 低通、高通、带通、带阻 1、FIR滤波器特点 2、滤波器结构 3、滤波器系数 4、滤波实现 5、FIR 滤波后的群延迟 二、IIR 低通、高通、带通、带阻 1、IIR滤波器特点 2、滤波器结构 3、滤波器系数 4、滤波实现 5、IIR滤波后的群延迟 三、中值滤波 1、中值…

C语言_图书管理系统_借阅系统管理

✨✨ 欢迎大家来到小伞的大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;数据结构与算法 小伞的主页&#xff1a;xiaosan_blog 本文所需对顺序表的理解&#xff1a; 注&#xff1a;由于顺序表实现图书…

表达式基础

文章目录 1、表达式组成1、运算符 2、表达式的分类1、算数运算符1、自增运算符和自减运算2、取余运算(%)3、除法运算(/)4、案例 2、关系运算符3、逻辑运算符4、条件运算符(三目运算符)1、案例 5、赋值运算()1、赋值类型转换2、复合赋值运算 6、逗号运算7、取地址运算(&)8、…

Web服务器配置

配置虚拟主机 通过虚拟主机&#xff0c;可以实现用自定义的域名来访问&#xff0c;并且可以为不同的域名指定不同的站点目录。 配置IP地址和域名的映射关系 申请真实的域名需要一定的费用&#xff0c;为了方便开发&#xff0c;可以通过修改hosts文件来实现将任意域名解析到本…

爬虫逆向实战小记——解决webpack实记

注意&#xff01;&#xff01;&#xff01;&#xff01;某XX网站实例仅作为学习案例&#xff0c;禁止其他个人以及团体做谋利用途&#xff01;&#xff01;&#xff01; aHR0cHM6Ly9wbW9zLnhqLnNnY2MuY29tLmNuOjIwMDgwL3B4Zi1zZXR0bGVtZW50LW91dG5ldHB1Yi8jL3B4Zi1zZXR0bGVtZW5…

蓝桥杯 之 前缀和与查分

文章目录 题目求和棋盘挖矿 前缀和有利于快速求解 区间的和、异或值 、乘积等情况差分是前缀和的反操作 前缀和 一维前缀和&#xff1a; # 原始的数组num,下标从1到n n len(num) pre [0]*(n1) for i in range(n):pre[i1] pre[i] num[i] # 如果需要求解num[l] 到num[r] 的区…

YOLOv8 自定义目标检测

一、引言 YOLOv8 不仅支持预训练模型的推理&#xff0c;还允许用户将其应用于自定义对象检测。本文将详细介绍如何使用 YOLOv8 训练一个新的模型&#xff0c;并在自定义数据集上进行对象检测。 二、数据集准备 1. 数据集格式 YOLOv8 支持多种数据集格式&#xff0c;包括 CO…

关于tresos Studio(EB)的MCAL配置之GPT

概念 GPT&#xff0c;全称General Purpose Timer&#xff0c;就是个通用定时器&#xff0c;取的名字奇怪了点。定时器是一定要的&#xff0c;要么提供给BSW去使用&#xff0c;要么提供给OS去使用。 配置 General GptDeinitApi控制接口Gpt_DeInit是否启用 GptEnableDisable…

IDE集成开发环境MyEclipse中安装SVN

打开Myeclipse的help菜单----install from site 点击add弹出对话框 在输入框中输入对应内容 http://subclipse.tigris.org/update_1.10.x 点击OK之后&#xff0c;会刷新出两个选项&#xff0c;需要选中的 点击next&#xff0c;出现许可的时候选中同意&#xff0c;一直结束等…

服务器CPU微架构

1、微架构图 前端&#xff1a;预解码、解码、分支预测、L1指令缓存、指令TLB缓存 后端&#xff1a;顺序重排缓存器ROB处理依赖&#xff0c;调度器送到执行引擎 执行引擎&#xff1a;8路超标量&#xff0c;每一路可以进行独立的微操作处理 Port0、1、5、6支持整数、浮点数的加…

SpringBoot调用DeepSeek

引入依赖 <dependency><groupId>io.github.pig-mesh.ai</groupId><artifactId>deepseek-spring-boot-starter</artifactId><version>1.4.5</version> </dependency>配置 deepseek:api-key: sk-******base-url: https://api.…

【前端基础】Day 9 PC端品优购项目

目录 1. 品优购项目规划 1.1 网站制作流程 1.2 品优购项目整体介绍 1.3 学习目的 1.4 开发工具以及技术栈 1.5 项目搭建工作 1.6 网站favicon图标 1.7 网站TDK三大标签SEO优化 2. 品优购首页制作 2.1 常见模块类命名 2.2 快捷导航shortcut制作 2.3 header制作 2.4…

OpenMCU(一):STM32F407 FreeRTOS移植

概述 本文主要描述了STM32F407移植FreeRTOS的简要步骤。移植描述过程中&#xff0c;忽略了Keil软件的部分使用技巧。默认读者熟练使用Keil软件。本文的描述是基于OpenMCU_FreeRTOS这个工程&#xff0c;该工程已经下载放好了移植stm32f407 FreeRTOS的所有文件 OpenMCU_FreeRTOS工…

NetBeans 8.2 开发 CIFLog3.5 - 创建WelcomeDemo

NetBeans 8.2 开发 CIFLog3.5 - 创建WelcomeDemo NetBeans 8.2 开发 CIFLog3.5 - 创建WelcomeDemo创建一个基于CIFLog平台的应用系统1. 下载安装CIFLog2. 授权使用3. 解决本地机器码验证错误问题4. 创建一个基于CIFLog平台的应用系统&#xff08;1&#xff09;新建项目&#xf…

MARL零样本协调之Fictitious Co-Play学习笔记

下列引用来自知乎作者Algernon 知乎link FCP作为ZSC领域两阶段训练方法的开创者 论文《Collaborating with Humans without Human Data》来自 NeurIPS 2021。这篇论文提出 Fictitious Co-Play (FCP) 来解决 ZSC 问题。论文认为&#xff0c;ZSC 的第一个重要问题是对称性&#x…

SpringBoot-模拟SSE对话交互

SpringBoot-模拟SSE对话交互 后端使用SSE进行会话&#xff0c;前端使用Html模拟大模型的问答交互->【前端】【后端】 1-学习目的 本项目代码仓库&#xff1a;https://gitee.com/enzoism/springboot_sse 1-核心知识点 1&#xff09;什么是SSE协议->客户端发起一次请求&am…

Avalonia 中文乱码

代码字体文件设置成支持中文的&#xff0c;但是编译的代码还是显示的乱码&#xff0c;原因是代码文件的文件编码格式不支持中文导致的。 如下面的2个页面一部分中文显示正常&#xff0c;一部分显示正常&#xff0c;一部分显示乱码。

国产编辑器EverEdit - 工具栏自定义及认识工具栏上的按钮

1 设置-高级-工具条 1.1 设置说明 1.1.1 工具条自定义 选择主菜单工具 -> 设置 -> 常规&#xff0c;在弹出的选项窗口中选择工具条分类&#xff0c;如下图所示&#xff1a; 左侧窗口是当前支持所有功能按钮列表(上图中居中栏)&#xff0c;右侧的窗口是当前显示在工具栏…