╔══════════════════════════════════════════════════════════════════════════╗ ║ 🐛 БЫСТРЫЙ СТАРТ - ОТЛАДКА МОДА ║ ╚══════════════════════════════════════════════════════════════════════════╝ ═══════════════════════════════════════════════════════════════════════════ СПОСОБ 1: ATTACH TO PROCESS (С BREAKPOINTS) ⭐ ═══════════════════════════════════════════════════════════════════════════ ✅ Проект уже настроен для отладки! ✅ .pdb файл создаётся автоматически при сборке 📋 ШАГИ: 1️⃣ Откройте проект в Visual Studio или Rider: Source/AIImages/AIImages.csproj 2️⃣ Соберите в Debug режиме (уже собрано): cd Source/AIImages dotnet build -c Debug 3️⃣ Запустите RimWorld (через Steam или напрямую) 4️⃣ В Visual Studio: • Debug → Attach to Process... (Ctrl+Alt+P) • Найдите "RimWorldWin64.exe" • Нажмите "Attach" В Rider: • Run → Attach to Process... • Найдите "RimWorldWin64" • Нажмите OK 5️⃣ Откройте файл с кодом (например PawnGizmoPatch.cs) 6️⃣ Поставьте breakpoint: • Кликните слева от номера строки • Появится красная точка 🔴 7️⃣ В игре выберите пешку → Код остановится на breakpoint! → Можно смотреть значения переменных ═══════════════════════════════════════════════════════════════════════════ СПОСОБ 2: ЛОГИРОВАНИЕ (ПРОСТОЙ) 📝 ═══════════════════════════════════════════════════════════════════════════ 1️⃣ Добавьте в код Log.Message(): Log.Message("[AI Images] Pawn selected: " + __instance.Name); 2️⃣ Соберите проект: dotnet build 3️⃣ Запустите RimWorld 4️⃣ В игре нажмите Ctrl+F12 → окно логов 5️⃣ Выберите пешку → увидите сообщение в логе! ═══════════════════════════════════════════════════════════════════════════ ГОТОВЫЕ ПРИМЕРЫ ДЛЯ ВСТАВКИ ═══════════════════════════════════════════════════════════════════════════ 📍 В PawnGizmoPatch.cs (строка 16): Log.Message($"[AI Images] GetGizmos for: {__instance.Name}"); 📍 В Window_AIImage.cs (в DoWindowContents, строка 25): Log.Message($"[AI Images] Drawing window for: {pawn.Name}"); 📍 При нажатии кнопки (PawnGizmoPatch.cs, строка 34): Log.Message("[AI Images] Button clicked!"); ═══════════════════════════════════════════════════════════════════════════ ГДЕ НАХОДЯТСЯ ЛОГИ ═══════════════════════════════════════════════════════════════════════════ В игре: Ctrl+F12 → окно с логами в реальном времени Файл лога: C:\Users\mrleo1nid\AppData\LocalLow\Ludeon Studios\ RimWorld by Ludeon Studios\Player.log ═══════════════════════════════════════════════════════════════════════════ ПОЛЕЗНЫЕ КОМАНДЫ ═══════════════════════════════════════════════════════════════════════════ Сборка в Debug (с .pdb): cd Source/AIImages dotnet build -c Debug Сборка в Release (без .pdb, для публикации): dotnet build -c Release Очистка и пересборка: dotnet clean dotnet build -c Debug ═══════════════════════════════════════════════════════════════════════════ СОВЕТЫ ═══════════════════════════════════════════════════════════════════════════ ✅ Используйте префикс [AI Images] в логах - легче искать ✅ Dev Mode в игре (Options → Settings → Development mode) Даёт доступ к Debug Actions и Debug Inspector ✅ Логируйте важные моменты: • Когда метод вызывается • Значения переменных • Успех/неудачу операций ✅ Try-Catch для отлова ошибок: try { // Ваш код } catch (Exception ex) { Log.Error($"[AI Images] Error: {ex}"); } ═══════════════════════════════════════════════════════════════════════════ TROUBLESHOOTING ═══════════════════════════════════════════════════════════════════════════ ❓ Breakpoint не срабатывает? → Убедитесь, что собрано в Debug (не Release) → Проверьте, что .pdb файл есть в Assemblies/ → Код действительно выполняется? (добавьте Log.Message) ❓ Не видите свой мод в Process List? → Убедитесь, что мод загружен в игре → Попробуйте перезапустить игру ❓ "Symbols not loaded"? → Удалите все из Assemblies/ → Пересоберите: dotnet clean && dotnet build -c Debug ═══════════════════════════════════════════════════════════════════════════ ДОПОЛНИТЕЛЬНАЯ ДОКУМЕНТАЦИЯ ═══════════════════════════════════════════════════════════════════════════ 📖 Полная инструкция: DEBUGGING_RU.md 📖 Примеры кода: DEV_CHEATSHEET.txt ╔══════════════════════════════════════════════════════════════════════════╗ ║ ✅ ВСЁ ГОТОВО ДЛЯ ОТЛАДКИ! ║ ║ ║ ║ Файлы в Assemblies/: ║ ║ • AIImages.dll ✅ ║ ║ • AIImages.pdb ✅ (отладочные символы) ║ ║ • 0Harmony.dll ✅ ║ ║ ║ ║ Запустите RimWorld и подключите отладчик! ║ ╚══════════════════════════════════════════════════════════════════════════╝ Удачной отладки! 🐛→✨