# valgrind

Ведёт агента по инструментам Valgrind: Memcheck ищет утечки и use-after-free, Cachegrind и Callgrind показывают промахи кэша и граф вызовов, Massif — рост кучи.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 678 установок · ★ 267
- Автор: mohitmishra786
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/mohitmishra786/low-level-dev-skills/tree/HEAD/skills/profilers/valgrind/SKILL.md
- Обновлён: 2026-06-27
- HTML: https://affpapa.org/nevibecode/skills/valgrind

## Что делает

Скилл описывает, как запускать четыре инструмента Valgrind и читать их вывод. Для Memcheck даётся готовая команда с `--leak-check=full`, `--show-leak-kinds=all` и `--track-origins=yes`, а рядом — таблица флагов: `--error-exitcode=1` для CI, `--log-file`, `--suppressions`, `--malloc-fill` и `--free-fill`. Есть разбор типичного отчёта: чем «Invalid read» отличается от «Use of uninitialised value», почему «Possibly lost» часто ложное срабатывание при своих аллокаторах.

Дальше идут Cachegrind с аннотацией через `cg_annotate` и сравнением прогонов `cg_diff`, Callgrind с `callgrind_annotate` и просмотром в KCachegrind, Massif с `ms_print`. Отдельный раздел — подавления: как сгенерировать директиву через `--gen-suppressions=yes` и подключить файл `valgrind.supp`, если ошибки лезут из чужого кода.

Компилировать программу стоит с `-g -O1`; `-O2` и выше дают ложные срабатывания. Memcheck работает примерно в 10–50 раз медленнее нативного запуска, поэтому скилл советует брать короткий нагрузочный сценарий, а для быстрой проверки в разработке использовать ASan. Valgrind остаётся для случаев, где санитайзер недоступен: старые тулчейны или окружение, близкое к продакшену.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill valgrind -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/valgrind/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/valgrind/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill valgrind -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/valgrind/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill valgrind -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/valgrind/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install mohitmishra786/low-level-dev-skills valgrind
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/valgrind/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill valgrind -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/mohitmishra786/low-level-dev-skills --path skills/profilers/valgrind
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/valgrind/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill valgrind -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/mohitmishra786/low-level-dev-skills/tree/HEAD/skills/profilers/valgrind/SKILL.md

## Когда брать
- найти утечку памяти в C-программе без санитайзеров
- разобрать отчёт Memcheck об invalid read и double free
- подавить ложные срабатывания из сторонних библиотек
- посмотреть промахи кэша L1 и LL по исходникам
- построить граф вызовов и открыть его в KCachegrind

## Примеры запросов агенту
- Прогони мою программу через Memcheck с полным отчётом об утечках и покажи, где теряется память
- Собери профиль Cachegrind и объясни, какие строки дают больше всего промахов L1
- Сгенерируй файл подавлений для ошибок из libssl, чтобы они не засоряли отчёт

## Похожие
- [golang-benchmark](https://affpapa.org/nevibecode/skills/golang-benchmark.md) — скилл · 39500 установок
- [debugging-strategies](https://affpapa.org/nevibecode/skills/debugging-strategies.md) — скилл · 13414 установок
- [cmux-debugging](https://affpapa.org/nevibecode/skills/cmux-debugging.md) — скилл · 4800 установок
- [memory-leak-detection](https://affpapa.org/nevibecode/skills/memory-leak-detection.md) — скилл · 580 установок
- [java-performance](https://affpapa.org/nevibecode/skills/java-performance.md) — скилл · 482 установки
- [161-java-profiling-detect](https://affpapa.org/nevibecode/skills/161-java-profiling-detect.md) — скилл · 337 установок

Из того же набора: [mohitmishra786/low-level-dev-skills](https://affpapa.org/nevibecode/by/mohitmishra786/low-level-dev-skills.md) — 62 карточки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
