Linux内核中Kprobes调试技术的实现
内核开发者一直在试图寻找一种快捷高效的内核调试手段,用于内核开发之中。高效的调试技术有利于提高内核开发效率,缩短内核开发周期。 本文研究了一种新型的内核调试技术―Kprobes, Kprobes是一个轻量级的内核调试工具,利用Kprobes技术可以在运行的内核中动态的插入探测点,在探测点处执行用户预定义的操作。本文首先根据Kprobes在Linux内核中的源码实现,针对Linux CPU异常技术,single-step技术,Loadable Kernel Module技术以及RCU同步技术在Kprobes中的应用进行了研究。其次,针对Kprobes目前所支持的kprobe,jprobe,kretprobe等三种调试手段的实现进行了详细的分析研究。
一、Kprobes调试技术
Kprobes调试技术概述
一直以来,内核开发者一直在试图寻找一种快捷高效的内核调试手段,用于内核开发之中。从 2.6版本的Linux开始,一种新的内核调试技术出现了,这就是Kprobes技术。
Kprobes最早是源于IBM的Dprobe项目发展起来的,Dprobe是一个IBM公司开发的内核调试工具。从2.6.9 Linux内核开始,Kprobes被加入内核源码,并处于不断完善之中,越来越多的功能被添加到 Kprobes 内核调试技术中来。Kprobes 目前已经能在 i386,x86_64, ppc64, ia64,sparc64等CPU平台上正常工作。
(查看全文…)
