К основному содержанию
скилл CX Codex

kernel-debugging-advanced — скилл для Claude Code: трассировка ядра

Скилл для трассировки ядра Linux: ftrace, trace-cmd, perf, kprobes, kgdb и разбор vmcore. Пригодится, когда драйвер тормозит без явной ошибки.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add mohitmishra786/low-level-dev-skills --skill kernel-debugging-advanced -a claude-code
Открыть на GitHub

Что делает 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-code

2Вручную: положить файлы

~/.claude/skills/kernel-debugging-advanced/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/kernel-debugging-advanced/

По шагам, с командами для каждой платформы: Как установить скилл в 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

Похожие скиллы

Всё по теме «DevOps и инфраструктура» →
kernel-exploitation yaklang Справочник по анализу уязвимостей ядра Linux для ИИ-агента. Помогает настроить окружение в QEMU и разобрать механизмы защиты ядра вроде KASLR и SMEP. CX Codex +1 3 600установок analyzing-linux-kernel-rootkits mahipal Скилл ищет признаки руткитов уровня ядра в дампах памяти Linux и на работающей системе. Пригодится для расследований и форензики. CX Codex +1 442установок kernel-typescript-sdk kernel Скилл для автоматизации браузера Kernel из TypeScript: сессии, профили, прокси и корректная очистка ресурсов. CX Codex +1 403установок kernel-python-sdk kernel Учит агента писать Python-код для сессий Kernel: Playwright на сервере, CDP, профили, прокси и корректная очистка ресурсов. CX Codex +1 353установок performance-tuning devops-skills Скилл для настройки производительности Linux: подбор параметров ядра, поиск узких мест, работа с планировщиком I/O и памятью. Пригодится, когда сервер тормозит или готовится к нагрузке. CX Codex +1 403установок debugview microsoft Скилл для работы с Sysinternals DebugView CLI: ловит отладочный вывод приложений и драйверов Windows прямо из командной строки. 15установок

Из того же набора62

reverse-engineering Скилл для разбора скомпилированных бинарей: подсказывает агенту порядок работы с Ghidra, radare2 и Binary Ninja. Пригодится, когда исходников нет, а логику восстановить надо. CX Codex +1 350установок abi-and-calling-conventions Скилл для ИИ-агента, который разбирает правила ABI: какие регистры держат аргументы, как выравнивается стек, что ломается в FFI. CX Codex +1 342установок linux-kernel-architecture Даёт агенту карту ядра Linux: порядок загрузки, крупные подсистемы, уровни initcall и места, где искать код в linux.git. CX Codex +1 333установок cuda Помогает агенту писать и оптимизировать CUDA-ядра: иерархия потоков, разделяемая память, потоки, флаги nvcc и Thrust. CX Codex +1 320установок cuda-profiling Ведёт агента по профилированию CUDA-приложений: таймлайн в Nsight Systems, метрики ядер в Nsight Compute, разбор roofline и узких мест. CX Codex +1 316установок datasheet-and-refmanual-reading Учит агента читать даташиты и reference manual микроконтроллеров: где искать карту регистров, биты, дерево тактирования и errata. CX Codex +1 314установок cpu-pipelines-and-hazards Объясняет стадии конвейера CPU, конфликты данных и управления, проброс и простои. Пригодится, когда непонятно, почему горячий цикл тормозит. CX Codex +1 311установок qemu-kvm Ведёт агента по запуску виртуальных машин на QEMU с ускорением KVM: флаги, virtio-устройства, проброс VFIO и загрузка своих ядер. CX Codex +1 304установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой