Files
elowdb-go/USAGE.md

206 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Инструкция по использованию отладочных инструментов LineDB
## 🎯 Быстрый старт
### 1. Отладка в VS Code (рекомендуется)
1. Откройте проект в VS Code
2. Нажмите `F5` или выберите "Run and Debug" в боковой панели
3. Выберите одну из конфигураций:
- **Debug LineDB Debug App** - отладка основного приложения
- **Debug LineDB Simple Test** - отладка простого теста
- **Debug LineDB Tests** - отладка тестов
- **Debug LineDB Example** - отладка примера
### 2. Отладка через командную строку
```bash
# Отладка основного приложения
make debug-simple
# Отладка основного теста
make debug-main
# Отладка тестов
make debug-tests
# Отладка примера
make debug-example
```
### 3. Отладка через скрипт
```bash
# Отладка основного приложения
./debug.sh simple
# Отладка основного теста
./debug.sh main
# Отладка тестов
./debug.sh tests
# Отладка примера
./debug.sh example
```
## 📁 Файлы для отладки
### debug_app.go
Основной файл для отладки с подробной информацией:
- Инициализация базы данных
- Вставка данных
- Чтение данных
- Фильтрация
- Обновление данных
- Подробные логи каждого шага
### debug_main.go
Альтернативный тест с базовой функциональностью
### simple.go
Простой тест для быстрой проверки
### tests/linedb_test.go
Официальные тесты проекта
## 🔧 Команды отладки
### VS Code
- `F5` - Запуск отладки
- `F9` - Установить/снять точку останова
- `F10` - Следующая строка (Step Over)
- `F11` - Войти в функцию (Step Into)
- `Shift+F11` - Выйти из функции (Step Out)
- `Ctrl+Shift+F5` - Перезапуск отладки
- `Shift+F5` - Остановка отладки
### Delve (dlv)
```bash
# Основные команды
break main.main # Точка останова в main
break pkg/linedb/line_db.go:30 # Точка останова на строке 30
continue # Продолжить выполнение
next # Следующая строка
step # Войти в функцию
print variable # Вывести значение переменной
vars # Показать все переменные
goroutines # Показать горутины
stack # Показать стек вызовов
quit # Выйти из отладчика
```
## 🎯 Ключевые точки останова
### Рекомендуемые места для установки точек останова
```go
// Инициализация базы данных
pkg/linedb/line_db.go:61
// Вставка данных
pkg/linedb/line_db.go:140
// Чтение данных
pkg/linedb/line_db.go:123
// Фильтрация
pkg/linedb/line_db.go:343
// Обновление данных
pkg/linedb/line_db.go:307
// Удаление данных
pkg/linedb/line_db.go:330
```
## 🐛 Отладка проблем
### Программа зависает
```bash
# Проверьте кэш и очистите данные
make clean
make run-simple
```
### Ошибки при работе с файлами
```bash
# Проверьте права доступа
ls -la testdata/
# Создайте папку заново
mkdir -p testdata
```
### Ошибки кэша
```bash
# Проверьте размер кэша в коде
# Убедитесь, что TTL установлен корректно
```
## 📊 Мониторинг производительности
### Проверка кэша
```go
// В коде добавьте:
fmt.Printf("Cache size: %d\n", db.GetActualCacheSize())
fmt.Printf("Cache limit: %d\n", db.GetLimitCacheSize())
```
### Проверка памяти
```bash
# Запустите с профилированием
go run -memprofile=mem.prof debug_app.go
go tool pprof mem.prof
```
## 🔍 Полезные команды
### Makefile
```bash
make help # Показать все команды
make clean # Очистить данные
make build # Собрать проект
make test # Запустить тесты
make lint # Проверить код
make fmt # Форматировать код
```
### Скрипт отладки
```bash
./debug.sh # Показать справку
./debug.sh simple # Отладка основного приложения
./debug.sh main # Отладка основного теста
./debug.sh tests # Отладка тестов
./debug.sh example # Отладка примера
```
## 📖 Дополнительная документация
- `DEBUG.md` - Полная документация по отладке
- `QUICK_DEBUG.md` - Краткая инструкция
- `OPTIMIZATION_SUMMARY.md` - Резюме оптимизаций
## 🚀 Советы по эффективной отладке
1. **Используйте VS Code** для удобной отладки с графическим интерфейсом
2. **Устанавливайте точки останова** в ключевых местах кода
3. **Изучите переменные** во время отладки для понимания состояния
4. **Используйте логи** для отслеживания выполнения
5. **Проверяйте кэш** при проблемах с производительностью
6. **Очищайте данные** между тестами с помощью `make clean`