kprobe
来源:互联网 发布:zabbix snmp windows 编辑:程序博客网 时间:2024/04/30 10:20
kprobe是内核提供的探测内核代码的一种机制,有助于开发人员跟踪内核代码运行状态。
1,three types
--Kprobes, Jprobes, Return Probes
2, arch support
--- i386
---arm
---...
3,configs
--CONFIG_KPROBES
--CONFIG_MODULES
--CONFIG_MODULE_UNLOAD
--CONFIG_KALLSYMS
--CONFIG_KALLSYMS_ALL
--CONFIG_DEBUG_INFO
4,API
register_kprobe
#include <linux/kprobes.h>
int register_kprobe(struct kprobe *kp);
User's pre-handler (kp->pre_handler):
#include <linux/kprobes.h>
#include <linux/ptrace.h>
int pre_handler(struct kprobe *p, struct pt_regs *regs);
User's post-handler (kp->post_handler):
#include <linux/kprobes.h>
#include <linux/ptrace.h>
void post_handler(struct kprobe *p, struct pt_regs *regs,
unsigned long flags);
User's fault-handler (kp->fault_handler):
#include <linux/kprobes.h>
#include <linux/ptrace.h>
int fault_handler(struct kprobe *p, struct pt_regs *regs, int trapnr);
register_jprobe
#include <linux/kprobes.h>
int register_jprobe(struct jprobe *jp)
register_kretprobe
#include <linux/kprobes.h>
int register_kretprobe(struct kretprobe *rp);
User's return-probe handler (rp->handler):
#include <linux/kprobes.h>
#include <linux/ptrace.h>
int kretprobe_handler(struct kretprobe_instance *ri, struct pt_regs *regs);
unregister_*probe
#include <linux/kprobes.h>
void unregister_kprobe(struct kprobe *kp);
void unregister_jprobe(struct jprobe *jp);
void unregister_kretprobe(struct kretprobe *rp);
register_*probes
#include <linux/kprobes.h>
int register_kprobes(struct kprobe **kps, int num);
int register_kretprobes(struct kretprobe **rps, int num);
int register_jprobes(struct jprobe **jps, int num);
unregister_*probes
#include <linux/kprobes.h>
void unregister_kprobes(struct kprobe **kps, int num);
void unregister_kretprobes(struct kretprobe **rps, int num);
void unregister_jprobes(struct jprobe **jps, int num);
disable_*probe
#include <linux/kprobes.h>
int disable_kprobe(struct kprobe *kp);
int disable_kretprobe(struct kretprobe *rp);
int disable_jprobe(struct jprobe *jp);
enable_*probe
#include <linux/kprobes.h>
int enable_kprobe(struct kprobe *kp);
int enable_kretprobe(struct kretprobe *rp);
int enable_jprobe(struct jprobe *jp);
http://lxr.linux.no/linux+v2.6.31/samples/kprobes/
http://lxr.linux.no/linux+v2.6.31/Documentation/kprobes.txt
- 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存在兼容性问题
- 传智播客学习之正则表达式
- 传智播客学习之DOM基础
- PKU3356 AGTC (简单DP)
- 上善若水——项目管理的真谛
- 打破Google编造的Andriod七大神话
- kprobe
- 一个资深教授。。。。
- FLEX中使用样式方法
- Invalid postback or callback argument.
- OpenGL:位图与图像
- Ubuntu8.04上用飞信 libfetion
- 延庆石京龙滑雪记
- 编辑词条
- Linux下的vi编辑器的一些简单命令