mcpField
K
kernel-debugging-advanced

kernel-debugging-advanced

github.com/mohitmishra786Development269330 installsUpdated 18w ago
Repository

About kernel-debugging-advanced

A skill for agents investigating kernel latency and failures with tracing and post-mortem tools. It covers ftrace, trace-cmd, kernel perf, probes, kgdb, and vmcore analysis for production-oriented debugging workflows.

Key features

  1. 01ftrace function-graph tracing
  2. 02Recording and reporting with trace-cmd
  3. 03Kernel profiling and perf probes
  4. 04Dynamic inspection with kprobes
  5. 05kgdb and vmcore analysis

Use cases

  1. 01Tracing kernel driver latency spikes
  2. 02Inspecting kernel call graphs
  3. 03Examining live kernel behavior without recompiling
  4. 04Analyzing vmcore after a panic

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/mohitmishra786/low-level-dev-skills --skill kernel-debugging-advanced

After installing, type/kernel-debugging-advancedin Claude Code to confirm it loaded.

Details

From the project README

Advanced Kernel Debugging

Purpose

Extend skills/kernel/kernel-debugging with production-grade tracing: ftrace, trace-cmd, kernel perf, kprobes/kretprobes, kgdb, crash dump analysis, and printk discipline. Not merged with kernel-debugging — that skill covers baseline kgdb/dyndbg; this one focuses on trace-cmd, function_graph, and live/post-mortem production workflows.

When to Use

  • Latency spikes in kernel driver without obvious bug
  • Tracing function call graph in kernel
  • Live inspection without recompiling (kprobes, bpf)
  • Post-mortem vmcore after panic

Workflow

1. ftrace function graph
# Enable function graph tracer
echo function_graph > /sys/kernel/debug/tracing/current_tracer
echo my_driver_probe > /sys/kernel/debug/tracing/set_graph_function
echo 1 > /sys/kernel/debug/tracing/tracing_on
# reproduce issue
cat /sys/kernel/debug/tracing/trace
echo 0 > /sys/kernel/debug/tracing/tracing_on

Requires CONFIG_FUNCTION_GRAPH_TRACER and debugfs mounted.

2. trace-cmd record
trace-cmd record -p function_graph -F my_probe
trace-cmd report
trace-cmd stat

Portable capture for sharing with others.

3. perf in kernel context
perf record -a -g -- sleep 10
perf report --stdio
perf probe --add my_driver:probe

See skills/profilers/linux-perf for userspace overlap.

4. kprobes (dynamic)
#include <linux/kprobes.h>

static struct kprobe kp = {
    .symbol_name = "do_sys_open",
    .pre_handler = handler,
};
register_kprobe(&kp);

Use sparingly in production; prefer static tracepoints when available.

5. dyndbg and printk discipline
echo 'module mydriver +p' > /sys/kernel/debug/dynamic_debug/control
echo 'file drivers/foo/*.c +p' > /sys/kernel/debug/dynamic_debug/control
pr_debug("state=%d\n", s);           /* compile-time optional */
printk_ratelimited(KERN_WARNING "hw fault\n");
6. kgdb / kdb
# kernel cmdline: kgdboc=ttyS0,115200 kgdbwait
echo g > /proc/sysrq-trigger   # break into debugger (when configured)
7. Crash dump (vmcore)
# after kdump capture
crash /usr/lib/debug/vmlinux vmcore
crash> bt
crash> dev -s
8. Agent usage
/kernel-debugging-advanced Trace my_driver_ioctl latency with ftrace function_graph

Common Problems

SymptomCauseFix
Empty traceTracer not enabledtracing_on; check current_tracer
ftrace overheadGraph all functionsFilter with set_graph_function
kprobe failInlined symbolTry nearby symbol or static key
kgdb no connectWrong kgdboc ttyMatch serial/USB gadget
crash no symbolsMissing debuginfoInstall linux-image-dbg / vmlinux

Related Skills

  • skills/kernel/kernel-debugging — baseline kgdb, dyndbg
  • skills/profilers/linux-perf — perf record/report
  • skills/observability/ebpf — BPF kprobe alternative
  • skills/kernel-dev/writing-char-drivers — ioctl trace targets
  • skills/debuggers/core-dumps — userspace core parallels

Comments

Markdown supported