kernel-debugging-advanced — скилл для Claude Code: трассировка ядра
Скилл для трассировки ядра Linux: ftrace, trace-cmd, perf, kprobes, kgdb и разбор vmcore. Пригодится, когда драйвер тормозит без явной ошибки.
npx skills add mohitmishra786/low-level-dev-skills --skill kernel-debugging-advanced -a claude-codeЧто делает kernel-debugging-advanced
Скилл ведёт агента по рабочим сценариям отладки ядра. Внутри — восемь шагов: трассировка function_graph через ftrace, запись через trace-cmd, профилирование perf, динамические kprobes, дисциплина dyndbg и printk, kgdb/kdb и разбор дампа паники в crash.
Для ftrace нужен CONFIG_FUNCTION_GRAPH_TRACER и смонтированный debugfs — без этого трасса останется пустой. kprobes советует применять в проде с осторожностью и предпочитать статические tracepoints. Разбор vmcore не заработает без debuginfo: нужен linux-image-dbg или vmlinux.
Скилл не заменяет базовый kernel-debugging, а дополняет его: там kgdb и dyndbg, здесь — trace-cmd, function_graph и сценарии для живой системы и посмертного анализа. Есть таблица типовых сбоев: пустая трасса, лишние накладные расходы ftrace, не зарегистрированный kprobe на инлайновом символе, отсутствие соединения kgdb.
Какие задачи решает
- поймать всплеск задержки в драйвере без очевидного бага
- построить граф вызовов функций ядра
- посмотреть состояние системы без пересборки модуля
- разобрать vmcore после паники
- включить отладочные сообщения модуля на ходу
Примеры запросов агенту
- /kernel-debugging-advanced Trace my_driver_ioctl latency with ftrace function_graph
- Помоги записать трассу через trace-cmd record -p function_graph и разобрать отчёт
- Разбери vmcore в crash: покажи bt и dev -s
Как установить kernel-debugging-advanced
1Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill kernel-debugging-advanced -a claude-code2Вручную: положить файлы
~/.claude/skills/kernel-debugging-advanced/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/kernel-debugging-advanced/
1Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill kernel-debugging-advanced -a codex2Вручную: положить файлы
.agents/skills/kernel-debugging-advanced/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill kernel-debugging-advanced -a cursor2Вручную: положить файлы
.cursor/skills/kernel-debugging-advanced/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install mohitmishra786/low-level-dev-skills kernel-debugging-advanced2Вручную: положить файлы
.github/skills/kernel-debugging-advanced/SKILL.md1Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill kernel-debugging-advanced -a gemini-cli2Командой платформы
gemini skills install https://github.com/mohitmishra786/low-level-dev-skills --path skills/kernel-dev/kernel-debugging-advancedВручную: положить файлы
.devin/skills/kernel-debugging-advanced/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill kernel-debugging-advanced -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о kernel-debugging-advanced
Как установить kernel-debugging-advanced в Claude?
Выполните npx skills add mohitmishra786/low-level-dev-skills --skill kernel-debugging-advanced -a claude-code. Скилл появится в ~/.claude/skills/kernel-debugging-advanced/SKILL.md.
Что делает kernel-debugging-advanced?
Описывает рабочие шаги отладки ядра Linux: ftrace, trace-cmd, perf, kprobes, dyndbg, kgdb и анализ crash-дампа. Агент применяет их, когда вы спрашиваете про трассировку функций ядра или разбор vmcore.
Чем он отличается от kernel-debugging?
Базовый скилл закрывает kgdb и dyndbg, этот добавляет trace-cmd, function_graph и сценарии для продакшена — живую инспекцию и посмертный анализ. Они не объединены.
Исходный текст
SKILL.md · MIT
---
name: kernel-debugging-advanced
description: Advanced kernel debugging skill for ftrace, trace-cmd, perf, kprobes, kgdb, and crash analysis. Use when tracing kernel functions, profiling syscalls in kernel, dynamic instrumentation, or analyzing vmcore. Activates on queries about ftrace, trace-cmd, kprobe, kgdb, kernel crash dump, or dyndbg.
---
# 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
```bash
# 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
```bash
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
```bash
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)
```c
#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
```bash
echo 'module mydriver +p' > /sys/kernel/debug/dynamic_debug/control
echo 'file drivers/foo/*.c +p' > /sys/kernel/debug/dynamic_debug/control
```
```c
pr_debug("state=%d\n", s); /* compile-time optional */
printk_ratelimited(KERN_WARNING "hw fault\n");
```
### 6. kgdb / kdb
```bash
# kernel cmdline: kgdboc=ttyS0,115200 kgdbwait
echo g > /proc/sysrq-trigger # break into debugger (when configured)
```
### 7. Crash dump (vmcore)
```bash
# 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
| Symptom | Cause | Fix |
|---------|-------|-----|
| Empty trace | Tracer not enabled | `tracing_on`; check `current_tracer` |
| ftrace overhead | Graph all functions | Filter with `set_graph_function` |
| kprobe fail | Inlined symbol | Try nearby symbol or static key |
| kgdb no connect | Wrong `kgdboc` tty | Match serial/USB gadget |
| crash no symbols | Missing debuginfo | Install `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
© mohitmishra786 · MIT · mohitmishra786/low-level-dev-skills