Files
ai-images/DEBUGGING_QUICKSTART_RU.txt
2025-10-26 17:02:04 +03:00

171 lines
9.4 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.
╔══════════════════════════════════════════════════════════════════════════╗
║ 🐛 БЫСТРЫЙ СТАРТ - ОТЛАДКА МОДА ║
╚══════════════════════════════════════════════════════════════════════════╝
═══════════════════════════════════════════════════════════════════════════
СПОСОБ 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 и подключите отладчик! ║
╚══════════════════════════════════════════════════════════════════════════╝
Удачной отладки! 🐛→✨