Скачать CME is Bad — Minecraft Моды — MetaMods

CME is Bad

Активный

Установок

0

Последнее обновление

1 месяц назад

Версии

1.8 — 1.21.8
Клиент
Fabric
Forge
Neoforge
Библиотеки

CME is Bad - Дебаггер конкурентных ошибок в Minecraft

CME is Bad — это специализированный мод для диагностики коварных сбоев в играх на базе Java, которые вызываются ошибками параллельного изменения (CME) и выходом за границы коллекций (IOOBE). В отличие от стандартных отчетов об ошибках, которые показывают только стек текущего потока, этот инструмент предоставляет полную историю изменений проблемной коллекции.

Как работает модификация

Когда возникает критическая ошибка, CME is Bad создает подробный журнал загрузки и модификации целевой коллекции, позволяя точно определить, какой именно поток и мод вызывает конфликт. Это особенно полезно в многопоточных сценариях, характерных для модифицированного Minecraft.

Начало работы

  1. Поместите файл JAR в папку модов
  2. Добавьте в аргументы виртуальной машины Java (JVM) следующую строку:
    -javaagent:mods/CMESuckMyDuck-<версия>.jar=<полное_имя_класса>;<имя_поля>;<тип>;<фаза>
  3. Запустите игру — при следующем сбое будет создан подробный отчет

Параметры конфигурации

Основные аргументы агента

  • Полное имя класса: Используйте слеши вместо точек (например, net/minecraft/client/audio/SoundEngine)
  • Имя поля: Название отслеживаемого поля в целевом классе (для Forge используйте SRG-имена)
  • Тип контейнера: Поддерживаются List, Set и Map
  • Фаза: static для статических полей, nonstatic для нестатических

Примеры использования

CME в SoundEngine для Forge 1.16.5: -javaagent:mods/CMESuckMyDuck-1.0.0.jar=net/minecraft/client/audio/SoundEngine;field_217942_m;Map;nonstatic

CME в PotionBrewing для Forge 1.20.1: -javaagent:mods/CMESuckMyDuck-1.0.0.jar=net/minecraft/world/item/alchemy/PotionBrewing;f43494;List;static

Расширенные настройки

Уровень логирования

Системное свойство -Dcme_suck_my_duck.log_level=<уровень> управляет детализацией журнала:

  • Уровень 1 (по умолчанию) — логирует только модификации
  • Уровень 0 — включает отладочные сообщения (не рекомендуется, создает огромные файлы)

Совместимость с ASM API

Для старых версий Minecraft (например, 1.12.2) может потребоваться изменение версии ASM API: -Dcme_suck_my_duck.asm_api_version=5

Ограничение размера файла

Настройка -Dcme_suck_my_duck.file_max_entries=<размер> определяет максимальное количество записей в журнале (по умолчанию 500). Сохраняются только последние две страницы операций.

Белый список конструкторов

Позволяет фильтровать мониторинг для часто используемых контейнеров: -Dcme_suck_my_duck.whitelist_constructor_stacktrace=<строка>

CME is Bad превращает сложную задачу отладки многопоточных ошибок в понятный и управляемый процесс, экономя время разработчиков модпаков и опытных игроков.

Пример CME из SimpleReloadInstance

Пример журнала мода

Участники проекта
Viola-Siemens

Viola-Siemens

Разработчик

Создан: 19 дек 2024

ID: 67905