centos7安装bcc和简单测试
系统环境
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和简单测试相关推荐
- Centos7安装RocketMQ及配置测试
环境 Centos7 RocketMQ 3.2.6 安装位置 /usr/local/alibaba-rockermq 外网ip 182.254.145.66 内网ip 10.105.23.114 安装 ...
- Centos7安装ab(Apache Benchmark)测试工具及使用
Centos7安装ab(Apache Benchmark)测试工具及使用 Apache Benchmark简称AB 一.安装 yum install -y httpd-tools 二.创建Post请求 ...
- (一)win10下MySQL 8.0.23安装教程及简单测试
文章目录 (一)win10下MySQL 8.0.23安装教程及简单测试 1.MySQL官网下载 2.配置环境变量 3.命令行cmd安装MySQL 3.1 管理员权限运行cmd 3.2 数据库初始化 3 ...
- CentOS7 安装 MySQL 和简单优化
[0x0]环境及其软件介绍 操作系统:CentOS7.0 纯净版 MySQL 版本:5.7.16 [0x1]关闭SELinux SELinux(Security-Enhanced Linux) 是美国 ...
- CentOS7安装JDK1.8简单体验(java开发必备)
1.卸载OpenJDK CentOS7默认安装了OpenJDK,首先查一下版本信息 rpm -qa|grep java 可以查询到如下结果: 删除系统自带的OpenJDK rpm -e --nodep ...
- centos7安装docker 以及简单使用
一.系统要求 1.安装Docker CE,需要一个维护版本的Centos7 2.centos-extras库必须启用,这个存储库默认启用,但是如果您禁用了它,您需要重新启用它(AdditionalRe ...
- CentOS7安装教程,简单几步,小白也能上手装!
Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的Unix工具软件.应用程 ...
- Centos7安装netstat及简单使用
yum search ifconfig 通过yum search 这个命令我们发现ifconfig这个命令是在net-tools.x86_64这个包里,接下来我们安装这个包就行了 运行 yum ins ...
- centOS7安装C语言编译器
CentOs7 安装编译器 以及简单使用 1.vim 编辑器安装 yum -y install vim 2. 简单编译运行 1.直接创建文件(xxxxx.c) vim treeIndex.c 2.程序 ...
最新文章
- 神器与经典--sp_helpIndex
- 字节跳动的5条远程办公最佳实践
- springMVC对异常处理的支持
- linux搭建--ubuntu下安装libvirt注意事项(二)
- JavaScript-操作DOM对象-创建和插入dom节点
- 本地缓存Caffeine
- iPhone 12全球销量超过1亿部 研究机构称在4月份就已超过
- 环形单链表的约瑟夫问题
- Log4j 与 Logback的ConversionPattern对比
- 关于微信小程序使用获取用户信息getUserProfile的问题:TypeError: wx.getUserProfile is not a function
- oracle会计事件,新的一年打开会计期发生错误
- 推荐:详解AI加速器(最终篇)
- hbuilder TODO插件
- Modifier在java_Java-Modifier类常用方法详解
- pngimg 可以商用吗_推荐几个个人收藏的外国高清、免费、无版权可商用的网站...
- 职场暗访:女大学生应聘遭遇性测试
- 2020年中国知识产权服务从业人员数、营业收入及发展前景分析[图]
- 2018苹果开发者技术支持新规
- 鬼吹灯java攻略_密室逃脱鬼吹灯攻略完美过关图文详解
- 手持PDA功能及优势