206 lines
6.1 KiB
Markdown
206 lines
6.1 KiB
Markdown
# Инструкция по использованию отладочных инструментов 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`
|