当前位置: 首页 > news >正文

3.8 Android eBPF HelloWorld调试(二)

写在前面

    我们开发eBPF程序的初衷就是再不改动内核的情况下,将内核监控数据传递给到用户态;像应用进程开发一样开发内核监控程序。

    Android开机的时候eBPF程序被加载器加载到内核中,但此时它并没有被附加到内核函数上去,也就是ebpf程序并不会执行,我们可以理解为,它仅仅被安装到了内核当中。

    那么,如果要将ebpf程序运行起来还需要进行attach。attach就是为了把ebpf程序hook到对应的内核监控点上,如tracepoint等类型。attach成功,ebpf程序才算真正的在内核中运行起来。

一,Android eBPF API

Android已经为我们封装了一个api调试list,来方便应用程序内核的ebpf程序。我们可以更方便的借助这些api来读取内核传递到用户态的map数据,它就是BpfSyscallWrappers,我们来看下BpfSyscallWrappers操作函数有哪些?

#pragma once#include <linux/bpf.h>
#include <linux/unistd.h>#ifdef BPF_FD_JUST_USE_INT#define BPF_FD_TYPE int#define BPF_FD_TO_U32(x) static_cast<__u32>(x)
#else#include <android-base/unique_fd.h>#define BPF_FD_TYPE base::unique_fd&#define BPF_FD_TO_U32(x) static_cast<__u32>((x).get())
#endif#define ptr_to_u64(x) ((uint64_t)(uintptr_t)(x))namespace a
http://www.lryc.cn/news/221209.html

相关文章:

  • xss如何快速提取cookies
  • 在 ASP.NET C# 中用Aspose.PDF将 PDF 页面转换为 JPG 图像
  • Docker Compose安装milvus向量数据库单机版-milvus基本操作
  • 极致性能优化:前端SSR渲染利器Qwik.js | 京东云技术团队
  • ES6~ES13新特性(二)
  • soildwork2022怎么样添加螺纹孔?
  • 【t5 pytorch版源码学习】t5-pegasus-pytorch源码学习
  • 【springboot】spring的Aop结合Redis实现对短信接口的限流
  • 【MedusaSTears】怎么禁用edge浏览器截图功能?
  • 【计算机网络】(谢希仁第八版)第三章课后习题答案
  • 批量异步任务处理
  • 宜昌市公安局、点军区政府与中科升哲达成战略合作,共建视频图像联合创新实验室
  • java版小程序商城免费搭建-直播商城平台规划及常见的营销模式有哪些?电商源码/小程序/三级分销
  • Linux下yum源配置实战
  • JSONP 跨域访问(2), JSONP劫持
  • 【java】实现自定义注解校验——方法一
  • JavaScript基础入门03
  • P1903 [国家集训队] 数颜色 / 维护队列
  • uniapp 请求接口的方式
  • 怎么查看当前vue项目,要求的node.js版本
  • QT5自适应
  • 蓝桥杯官网练习题(日期问题)
  • PDF文件解析
  • 初识微服务技术栈
  • windows 下运行正常,但是linux下报错 : Could not find or load main class
  • MySQL 数据目录和 InnoDB 表空间补充知识:详细结构
  • 移远EC600U-CN开发板 day02
  • visual studio Python 配置QGIS(qgis)教程
  • 第二证券:消费电子概念活跃,博硕科技“20cm”涨停,天龙股份斩获10连板
  • petalinux 2022.2 在 ubantu18.04 下的安装