kprobe 0.1.0

A Rust crate for implementing kernel probes (kprobes) in operating systems.
Documentation
# Kprobe Crate

A Rust crate for implementing kernel probes (kprobes) in operating systems. This crate provides functionality for dynamically instrumenting kernel code by inserting breakpoints and debug points.

## Features
- Support for multiple architectures:
  - x86_64
  - RISC-V 64
  - LoongArch64

## Usage

### Basic Usage

```rust
use kprobe::{KprobeManager, KprobePointList, KprobeBuilder};

// Create a kprobe manager and point list
let mut manager = KprobeManager::new();
let mut point_list = KprobePointList::new();

// Create and register a kprobe
let kprobe = register_kprobe(
    &mut manager,
    &mut point_list,
    KprobeBuilder::new(probe_addr)
);

// Unregister the kprobe when done
unregister_kprobe(&mut manager, &mut point_list, kprobe);
```

## Example
- See [DragonOS Kprobe]https://github.com/DragonOS-Community/DragonOS/tree/master/kernel/src/debug/kprobe for more details.
- See [Alien Kprobe]https://github.com/Godones/Alien/blob/main/kernel/src/kprobe/mod.rs for more details.

## API Overview

### Core Types

- `KprobeManager` - Manages registered kprobes
- `KprobePointList` - Tracks kprobe points
- `Kprobe` - Represents a single kprobe
- `KprobeBuilder` - Builder for creating kprobes
- `KprobePoint` - Represents a probe point in memory

### Key Functions

- `register_kprobe` - Register a new kprobe
- `unregister_kprobe` - Remove a registered kprobe
- `KprobeManager::get_break_list` - Get the list of breakpoints
- `KprobeManager::get_debug_list` - Get the list of debug points

## Safety Considerations

- This crate uses `#![no_std]` and is designed for kernel-level code
- Proper synchronization is required when using kprobes in multi-threaded environments
- Care must be taken when instrumenting critical kernel paths

## Rust Version
Requires Rust 1.88 or later(nightly).