kprobe
来源:互联网 发布:小微电视直播软件 编辑:程序博客网 时间:2024/04/30 09:37
1、保证编译环境可用。
1)获取 Compile_Tool-3.0.93-1.0.x86_64.rpm 。
2)解压:rpm2cpio Compile_Tool_3.0.93-1.0.x86_64.rpm | cpio -div
3) 安装环境rpm包:rpm -ivh kernel-source-3.0.93-0.8.2.x86_64.rpm
rpm -ivh kernel-xen-devel-3.0.93-0.8.2.x86_64.rpm
2、修改samples/kprobes/Makefile ,如:
obj-m := kprobe_example.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm *.o *.ko *.mod.c Modules.symvers modules.order -f
3、增加samples/kprobes/kprobe_example.c用例后,make产生一个ko文件。
在linux目录下
make modules M=samples/kprobes
4、insmod ko文件。 看dmesg信息打印。
vim /proc/kallsyms 获.取内核函数符号表
struct timespec ts0_start, ts0_end;
/* kprobe pre_handler: called just before the probed instruction is executed */
static int ocfs2_write_begin_handler_pre(struct kprobe *probe, struct pt_regs *regs)
{
dump_stack();
ktime_get_ts(&ts0_start);
printk("ocfs2_write_begin ... \n");
//printk("ocfs2_write_begin, start_ns: %llu\n", timespec_to_ns(&ts0_start));
return 0;
}
/* kprobe post_handler: called after the probed instruction is executed */
static void ocfs2_write_begin_handler_post(struct kprobe *p, struct pt_regs *regs,
unsigned long flags)
{
ktime_get_ts(&ts0_end);
printk("ocfs2_write_begin spend time: %llu ns, ts0_start_ns: %llu, ts0_end_ns: %llu \n",
timespec_to_ns(&ts0_end) - timespec_to_ns(&ts0_start), timespec_to_ns(&ts0_start), timespec_to_ns(&ts0_end));
}
- kprobe
- kprobe
- kprobe
- kprobe
- kprobe
- Kprobe和debugfs
- kprobe和systemtap
- Linux内核kprobe机制
- kprobe module code
- kprobe内核探测介绍
- kprobe钩子详细介绍
- ftrace kprobe调试
- kprobe工作原理
- linux内核kprobe分析
- kprobe实现轻量级内核热补丁机制
- Linux 下的调式诊断工具 kprobe
- 关于kprobe的几种使用
- kprobe探测中使用offset存在兼容性问题
- java 使用httpclient出错org.apache.http.client.ClientProtocolException
- android java json与实体互相转换工具
- 谷歌收购移动应用开发商Launchpad Toys
- 水温表坏了
- Android依赖库 程序安装出现了两个图标
- kprobe
- 网站实例开发二 环境配置
- strcpy和memcpy的区别
- 【LeetCode】Container With Most Water
- linux环境变量PATH
- Java总结篇系列:java.lang.Object
- spark:--spark-shell运行简单语句、用Idea编写例子--8
- int *p=NULL与*p=NULL
- 欢迎使用CSDN-markdown编辑器