Добавьте файлы проекта.
This commit is contained in:
170
DEBUGGING_QUICKSTART_RU.txt
Normal file
170
DEBUGGING_QUICKSTART_RU.txt
Normal file
@@ -0,0 +1,170 @@
|
||||
╔══════════════════════════════════════════════════════════════════════════╗
|
||||
║ 🐛 БЫСТРЫЙ СТАРТ - ОТЛАДКА МОДА ║
|
||||
╚══════════════════════════════════════════════════════════════════════════╝
|
||||
|
||||
|
||||
═══════════════════════════════════════════════════════════════════════════
|
||||
СПОСОБ 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 и подключите отладчик! ║
|
||||
╚══════════════════════════════════════════════════════════════════════════╝
|
||||
|
||||
|
||||
Удачной отладки! 🐛→✨
|
||||
|
||||
Reference in New Issue
Block a user