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