# sanitizers

Помогает настроить санитайзеры Clang и GCC для поиска утечек памяти, гонок данных и неопределённого поведения в C/C++, а также расшифровать их отчёты.

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

## Что делает

Скилл подсказывает агенту, какой runtime-санитайзер выбрать для поиска конкретного дефекта в коде на C и C++. Внутри собрана шпаргалка по флагам сборки под GCC и Clang для AddressSanitizer, UndefinedBehaviorSanitizer, ThreadSanitizer, MemorySanitizer и LeakSanitizer. Инструкция объясняет, как читать адресные смещения в отчётах об ошибках и по каким строкам искать некорректное обращение к памяти.

Для автоматизации скилл даёт шаблоны секций CMake и шагов для GitHub Actions. В них настроены переменные окружения `ASAN_OPTIONS` и `UBSAN_OPTIONS`, включая немедленное падение теста при сбое через `abort_on_error=1` и остановку по флагу `-fno-sanitize-recover=all`. Также описано создание файлов `.supp` для исключения ложных утечек.

Совмещать санитайзеры можно не всегда. Скилл прямо запрещает собирать TSan или MSan вместе с ASan. Для MemorySanitizer компилятор Clang остаётся обязательным требованием, причём все системные библиотеки придётся пересобрать с инструментацией MSan.

## Установка

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

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

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

### Codex

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

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

### Cursor

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

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

### GitHub Copilot

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

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

### Gemini CLI

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

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

### Windsurf (Devin Desktop)

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

### OpenCode

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

### Claude.ai

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

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

## Когда брать
- выбрать подходящий санитайзер под конкретный класс дефекта памяти или многопоточности
- настроить флаги компиляторов GCC и Clang для сборки с ASan и UBSan
- расшифровать стек вызовов при переполнении буфера или обращении после освобождения
- составить файлы правил подавления ложных срабатываний для LSan и UBSan
- интегрировать санитайзеры в конфигурацию CMake и тесты GitHub Actions

## Примеры запросов агенту
- С какими флагами скомпилировать проект на GCC, чтобы объединить ASan и проверку переполнения целых чисел?
- Помоги разобрать отчёт ASan с ошибкой heap-buffer-overflow и найди место переполнения памяти.
- Создай файл правил подавления для LeakSanitizer при утечках в OpenSSL.

## Похожие
- [improve-codebase-architecture](https://affpapa.org/nevibecode/skills/improve-codebase-architecture.md) — скилл · 1163035 установок
- [design-taste-frontend](https://affpapa.org/nevibecode/skills/design-taste-frontend.md) — скилл · 678700 установок
- [tdd](https://affpapa.org/nevibecode/skills/tdd.md) — скилл · 1141062 установки
- [skill-creator](https://affpapa.org/nevibecode/skills/skill-creator.md) — скилл · 414180 установок
- [agent-browser](https://affpapa.org/nevibecode/skills/vercel-labs-agent-browser.md) — скилл · 1200000 установок
- [prototype](https://affpapa.org/nevibecode/skills/prototype.md) — скилл · 986201 установка

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

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

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