Конечно. Вот сжатая шпаргалка для **rust-gdb** (или чистого GDB), оптимизированная под твой стиль работы (терминал, эффективность, понимание процессов).

### 🚀 Запуск и База
```bash
rust-gdb target/debug/my_app        # Запуск с отладочными символами
rust-gdb --args target/debug/my_app arg1 arg2 # Запуск с аргументами
```

### 🎮 Управление (Control Flow)
| Команда | Сокр. | Описание |
| :--- | :--- | :--- |
| `run` | `r` | Запустить программу с начала |
| `continue` | `c` | Продолжить выполнение до следующей точки |
| `next` | `n` | **Шагнуть через** (выполнить строку, не заходя в функции) |
| `step` | `s` | **Шагнуть внутрь** (зайти внутрь функции на этой строке) |
| `finish` | `fin` | Выполнить функцию до конца и вернуться на уровень выше |
| `quit` | `q` | Выйти из GDB |

### 🛑 Точки останова (Breakpoints)
| Команда | Описание |
| :--- | :--- |
| `break main` | Остановиться на входе в `main` |
| `break 42` | Остановиться на строке 42 текущего файла |
| `break utils.rs:15` | Остановиться в файле `utils.rs` на строке 15 |
| `break is_prime if n == 13` | **Условный брейкпоинт** (остановиться, только если n = 13) |
| `info break` | Показать список всех точек |
| `delete 1` | Удалить точку останова номер 1 |
| `clear` | Удалить точку на текущей строке |

### 🕵️ Инспекция данных
| Команда | Сокр. | Описание |
| :--- | :--- | :--- |
| `print x` | `p` | Вывести значение переменной `x` |
| `print/x x` | `p/x` | Вывести в **HEX** (шестнадцатеричном) виде |
| `print/t x` | `p/t` | Вывести в **BIN** (двоичном) виде (полезно для битмасок!) |
| `display x` | | Автоматически выводить `x` при каждом шаге |
| `undisplay 1` | | Перестать следить (по ID из `info display`) |
| `info locals` | | Показать все локальные переменные в текущем скоупе |
| `ptype x` | | Показать точный тип переменной `x` |

### 🖥 Визуальный режим (TUI)
Это то, что делает GDB похожим на IDE в терминале.
*   **`Ctrl + X`, `A`** (или команда `layout src`) — Включить TUI (код + консоль).
*   **`Ctrl + X`, `2`** — Добавить окно ассемблера (код + asm + консоль).
*   **`Ctrl + L`** — Перерисовать экран (если поплыл вывод).
*   **`Up`/`Down`** — Скролить код (пока фокус на коде).
*   **`Ctrl + P` / `Ctrl + N`** — История команд (как в bash).

### 🛠 Продвинутые фишки
*   **`backtrace` (`bt`)**: Показать стек вызовов (кто вызвал эту функцию). Критично при панике.
*   **`frame 2` (`f 2`)**: Прыгнуть в стек-фрейм #2 (в функцию, которая вызвала текущую), чтобы посмотреть её переменные.
*   **`set var x = 10`**: **Изменить** значение переменной прямо во время выполнения (для тестов "а что если").
*   **`watch x`**: Остановиться, когда значение `x` **изменится** (hardware watchpoint). Супер для поиска багов, когда "кто-то портит память".

### 💡 Пример сессии
```gdb
# 1. Ставим брейк на функцию
b miller_rabin
# 2. Запускаем
r
# 3. Включаем красивый вид
layout src
# 4. Смотрим аргумент
p n
# 5. Идем по шагам
n
n
# 6. Заходим в mod_pow
s
# 7. Смотрим биты степени
p/t exp
```

$X \cdot X \cdot X \dots$

