系统环境

uname -r
5.10.2-1.el7.elrepo.x86_64
cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

升级内核版本 https://www.cnblogs.com/xzkzzz/p/9627658.html

按照官方的安装流程安装

https://github.com/iovisor/bcc/blob/master/INSTALL.md#centos—source

安装依赖

更新安装会花一些时间

sudo yum install -y epel-release
sudo yum update -y
sudo yum groupinstall -y "Development tools"
sudo yum install -y elfutils-libelf-devel cmake3 git bison flex ncurses-devel
sudo yum install -y luajit luajit-devel  # for Lua support

安装llvm

curl  -LO  http://releases.llvm.org/7.0.1/llvm-7.0.1.src.tar.xz
curl  -LO  http://releases.llvm.org/7.0.1/cfe-7.0.1.src.tar.xz
tar -xf cfe-7.0.1.src.tar.xz
tar -xf llvm-7.0.1.src.tar.xzmkdir clang-build
mkdir llvm-buildcd llvm-build
cmake3 -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \-DCMAKE_BUILD_TYPE=Release ../llvm-7.0.1.src
make
sudo make installcd ../clang-build
cmake3 -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \-DCMAKE_BUILD_TYPE=Release ../cfe-7.0.1.src
make
sudo make install
cd ..

按照教程里下载速度非常慢,可以直接去github上找到源码包下载 https://github.com/llvm/llvm-project/releases

安装bcc

git clone https://github.com/iovisor/bcc.git
mkdir bcc/build; cd bcc/build
cmake3 ..
make
sudo make install

报错

error: no matching function for call to ‘llvm::object::SectionRef::getName() const’

搜索之后发现是因为最新的bcc对llvm的版本有要求,最低支持llvm11 https://github.com/iovisor/bcc/issues/3881

有两种解决方法

1. 下载llvm11 重新安装
2. bcc版本切换到release 0.24.0, commit 8f40d6f,使用旧版本bcc进行编译就可以成功了

由于上面已经安装过了llvm7,所以不想再编译安装一次,这里使用了方法2

测试

新建hello.c文件

int hello_world(void *ctx)
{bpf_trace_printk("Hello, World!");return 0;
}

新建hello.py

#!/usr/bin/env python3
from bcc import BPFb = BPF(src_file="hello.c")
b.attach_kprobe(event="do_sys_openat2", fn_name="hello_world")
b.trace_print()

测试

sudo python3 hello.py

centos7安装bcc和简单测试相关推荐

  1. Centos7安装RocketMQ及配置测试

    环境 Centos7 RocketMQ 3.2.6 安装位置 /usr/local/alibaba-rockermq 外网ip 182.254.145.66 内网ip 10.105.23.114 安装 ...

  2. Centos7安装ab(Apache Benchmark)测试工具及使用

    Centos7安装ab(Apache Benchmark)测试工具及使用 Apache Benchmark简称AB 一.安装 yum install -y httpd-tools 二.创建Post请求 ...

  3. (一)win10下MySQL 8.0.23安装教程及简单测试

    文章目录 (一)win10下MySQL 8.0.23安装教程及简单测试 1.MySQL官网下载 2.配置环境变量 3.命令行cmd安装MySQL 3.1 管理员权限运行cmd 3.2 数据库初始化 3 ...

  4. CentOS7 安装 MySQL 和简单优化

    [0x0]环境及其软件介绍 操作系统:CentOS7.0 纯净版 MySQL 版本:5.7.16 [0x1]关闭SELinux SELinux(Security-Enhanced Linux) 是美国 ...

  5. CentOS7安装JDK1.8简单体验(java开发必备)

    1.卸载OpenJDK CentOS7默认安装了OpenJDK,首先查一下版本信息 rpm -qa|grep java 可以查询到如下结果: 删除系统自带的OpenJDK rpm -e --nodep ...

  6. centos7安装docker 以及简单使用

    一.系统要求 1.安装Docker CE,需要一个维护版本的Centos7 2.centos-extras库必须启用,这个存储库默认启用,但是如果您禁用了它,您需要重新启用它(AdditionalRe ...

  7. CentOS7安装教程,简单几步,小白也能上手装!

    Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的Unix工具软件.应用程 ...

  8. Centos7安装netstat及简单使用

    yum search ifconfig 通过yum search 这个命令我们发现ifconfig这个命令是在net-tools.x86_64这个包里,接下来我们安装这个包就行了 运行 yum ins ...

  9. centOS7安装C语言编译器

    CentOs7 安装编译器 以及简单使用 1.vim 编辑器安装 yum -y install vim 2. 简单编译运行 1.直接创建文件(xxxxx.c) vim treeIndex.c 2.程序 ...

最新文章

  1. 神器与经典--sp_helpIndex
  2. 字节跳动的5条远程办公最佳实践
  3. springMVC对异常处理的支持
  4. linux搭建--ubuntu下安装libvirt注意事项(二)
  5. JavaScript-操作DOM对象-创建和插入dom节点
  6. 本地缓存Caffeine
  7. iPhone 12全球销量超过1亿部 研究机构称在4月份就已超过
  8. 环形单链表的约瑟夫问题
  9. Log4j 与 Logback的ConversionPattern对比
  10. 关于微信小程序使用获取用户信息getUserProfile的问题:TypeError: wx.getUserProfile is not a function
  11. oracle会计事件,新的一年打开会计期发生错误
  12. 推荐:详解AI加速器(最终篇)
  13. hbuilder TODO插件
  14. Modifier在java_Java-Modifier类常用方法详解
  15. pngimg 可以商用吗_推荐几个个人收藏的外国高清、免费、无版权可商用的网站...
  16. 职场暗访:女大学生应聘遭遇性测试
  17. 2020年中国知识产权服务从业人员数、营业收入及发展前景分析[图]
  18. 2018苹果开发者技术支持新规
  19. 鬼吹灯java攻略_密室逃脱鬼吹灯攻略完美过关图文详解
  20. 手持PDA功能及优势

热门文章

  1. 伤感日志_茫茫天涯走遍,寂寞心酸
  2. [转贴]民国记者有多牛:揭黑损人骂街是常事
  3. 计算机 90学时培训总结,90学时培训心得体会
  4. 电话交换机的作用,程控交换机的作用
  5. 域名防洪跳转html单页,域名防红跳转
  6. 【其他】【RQNOJ】吉祥数
  7. pcl_viewer的使用
  8. Win10 VC++运行库集合|VC++ 2005 2008 2010 2012 2015
  9. 个人windows-manjaro双系统配置记录
  10. 网络基础之静态路由配置及网络问题排查思路