跳到正文

Crash Assistant

作者:KostromDan

Minecraft 崩溃后显示 GUI,立即展示并分析所有受影响的日志。

收藏

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

在 Minecraft 崩溃后显示一个 GUI,立即展示所有受影响的游戏/启动器日志、崩溃报告或 hs_err 文件。提供一键上传、复制链接以及执行其他操作的解决方案,便于更轻松地报告、调试和排查问题。分析日志以识别许多已知的崩溃原因。提供许多实用的分析工具。当 Minecraft 在集成 GPU 上运行而独立 GPU 可用时发出警告。包含对许多常见问题的自动修复。

该模组仅限客户端。在服务器上,它不会执行任何操作。

如果你有任何问题,欢迎加入我的 Discord 服务器:https://discord.gg/dV8WFrJZK6

功能:

GUI:

GUI

支持拖放。你可以直接将文件从 GUI 移动到任意位置,或通过从“可用日志文件:”标签拖动来拖放所有日志。

日志分析:

分析日志以识别许多已知的崩溃原因。如果检测到已知问题,会显示一个对话框,包含问题描述和详细解决方案。

atio6axx

支持的分析:

hs_err(JVM 崩溃):

  • AlLibAlcCleanup(某些与 RAM 分配相关的奇怪问题)
  • atio6axx.dll(AMD 驱动问题)
  • glfw.dll(通用 GPU 驱动问题)
  • ig7icd64.dll(旧版 Intel 集成 GPU 驱动问题)
  • InsufficientMemory(系统物理 RAM 或交换空间不足)
  • JavaTooHigh(例如 Spark 模组在 Java ≥ 22 上崩溃)
  • jemalloc.dll(jemalloc 内存分配器问题)
  • jvm.dll(潜在的硬件问题或 JVM 本身的 bug)
  • libglfw.so / libopenal.so(常见的 Linux 库问题)
  • libGLProgrammability.dylib(macOS 上不兼容的光影包)
  • ~StubRoutines::SafeFetch32(Apple Silicon 上的 macOS 使用了不正确的 JDK)
  • nglMultiDrawElementsBaseVertex / 0x0000(GPU 驱动问题)
  • nvoglv64.dll(Nvidia 驱动问题)

log / crash-report:

  • ConnectorIncompatibleFabricMods(检测使用 Sinytra Connector 时不兼容的 Fabric 模组,如 Sodium/Iris)
  • Create6Addons(Create 版本与其附属模组之间的不兼容,提供一个按钮,一键即可找出所有不兼容的模组)
  • CtovWithoutLithostitched(ChoiceTheorem’s Overhauled Village 模组缺少必需的前置依赖)
  • CurseForgeCorrupted(CurseForge 启动器安装的 Minecraft/加载器已损坏)
  • DiskSpaceEnded(系统磁盘空间已耗尽)
  • DuplicatedMods(安装了同一模组的多个版本)
  • EpicFightAddons(Epic Fight 版本与其附属模组之间的不兼容,提供一个按钮,一键即可找出所有不兼容的模组)
  • FeatureOrderCycle(世界生成特性存在循环依赖)
  • FerriteCoreNeighborTable(检测到某个模组不当访问 FerriteCore 的邻居表,提供临时的配置变通方案)
  • GeckoLibOculusCompat(警告在 Minecraft 1.20.1+ 上已不再需要 GeckoLib Oculus Compat 模组,且会导致崩溃)
  • GroovyModLoaderIPv6(GML 因 IPv6 问题无法下载映射,包含自动修复功能,一键即可修复问题或找出所有依赖 GML 的模组)
  • KubeJSDataPack(使用 KubeJS 加载数据包时出错)
  • LanguageProviderMismatch(模组需要不同版本的 Forge/NeoForge)
  • LegacyTooManyIds(在 1.12.2 等旧版 Minecraft 上超出了方块/物品 ID 上限)
  • MixinApply(检测由 Mixin 冲突或错误引起的大量崩溃,包含缺失类检测和自动修复功能,可找出依赖该缺失类的模组)
  • MissingEmbeddiumForOculus(安装了 Oculus 模组但缺少其必需的前置依赖 Embeddium)
  • MissingIndium(某个模组需要 Indium 以兼容 Fabric 渲染器 API,但未安装)
  • MissingUnsupportedDependencies(Forge/NeoForge 检测到的通用依赖冲突)
  • ModernFixWatchDog(内置服务器已死锁)
  • NeoForgeVersion1_20_1(提示 1.20.1 上的 Neo 已被放弃并会导致大量崩溃,切换到 Forge 是该版本 Neo 的官方建议)
  • ModuleFind / ModuleResolution(Java 模块系统错误,通常由依赖冲突引起,可立即识别出是哪个模组导致的问题,无需像以前那样通过二分查找来定位)
  • Optifine(警告 OptiFine 已知会导致许多不兼容问题,并建议使用现代替代品)
  • OutOfMemoryError(Minecraft 分配的 RAM 已耗尽)
  • ResourceLocationException(资源名称包含无效字符,通常由非英文系统设置引起)
  • Rubidium(警告 Rubidium 已被放弃并会导致问题,建议使用 Embeddium)
  • ServerConfigCorrupted(服务端配置文件格式错误)
  • UnsupportedClassVersion(某个模组编译所用的 Java 版本高于当前使用的版本)
  • UsedByAnotherProcess(文件被另一个程序锁定)
  • Version1_21(警告 Minecraft 1.21 已过时并会导致许多问题;建议切换到 1.21.1)

win_event(Windows 事件日志):

  • WasClosedByWindows(游戏卡死并被操作系统终止,通常由加载期间的用户输入引起)

Codex 日志分析器集成:

  • 上传后,每个受支持的日志都会由 mclo.gs 的 Codex 日志分析器进行分析。有时 Codex 的消息对普通用户来说可能不够清晰。在这种情况下,会显示一条包含详细修复指南的消息:
  • 出错的方块/实体

这显著减轻了整合包支持的负担,因为很大比例(超过 75%)的问题是常见且容易解决的问题。如果需要,你可以在配置中将任何分析加入黑名单。

分析工具

Crash Assistant 包含一套强大的分析工具,可从 GUI 菜单访问:

  • Create/Epic Fight 附属兼容性:扫描你的模组,找出与你所安装的 Create 或 Epic Fight 版本不兼容的附属模组。
  • MCreator 模组检测器:列出所有使用 MCreator 工具制作的模组。
  • 包/类查找器:搜索所有模组,找出哪一个包含特定的 Java 类或包。
  • Jdeps 依赖分析:识别哪些模组依赖于特定的类或包,帮助调试 NoClassDefFoundError 崩溃。

集成显卡检测:

当有更强大的独立显卡可用时,检查游戏是否正在集成显卡上运行,并显示警告。包含一键自动修复按钮,用于配置 Windows 为 Java 使用正确的显卡。

IGPU

Intel 芯片缺陷警告:

检测你的 CPU 是否属于已知存在严重稳定性缺陷的 Intel 第 13/14 代型号。它会检查你的微码版本,并提供详细的警告和建议。

兼容性:

该模组旨在实现最大的兼容性和稳定性。它在一个独立的进程中运行,等待 Minecraft JVM 停止。它作为 Coremod(Forge)或 LanguageAdapter(Fabric/Quilt)极早加载,使其能够捕获甚至早期启动崩溃。

一键上传所有日志并复制链接:

你可以一键上传所有可用日志,并获得一条格式整齐、可直接粘贴到 GitHub 或 Discord 的消息。如果你是整合包作者,你将始终知道所有日志都是最新的,并包含所有可用信息,无需再请求额外文件。

加入预配置链接的按钮:

你的整合包玩家可以轻松地一键找到你的 Discord,并在崩溃后立即请求帮助。这一点,再加上极其简便的日志上传,显著提高了单个崩溃被报告的概率。对于单独下载或未配置的情况,它会将用户引导至相应模组加载器的 Discord 服务器。

模组列表:

每次游戏启动时,由整合包作者保存整合包的模组列表。你也可以使用 /crash_assistant modlist save 命令手动保存模组列表。它对整合包和单独下载的工作方式不同:

整合包:

生成的消息包含最终用户相对于官方整合包列表添加、移除或更新的模组列表。

单独下载 / 整合包作者:

跟踪自上次成功启动以来的模组列表变化,如果你点击了“全部更新”按钮或添加了有问题的模组却忘了是哪些,这会非常有用。

配置:

完全可配置:你可以启用或禁用任何功能、更改 Discord 链接,以及自定义标签、按钮等的文本。

本地化:

完全本地化。目前支持的语言:

  • 英语
  • 德语
  • 俄语
  • 中文
  • 西班牙语
  • 意大利语

没有硬编码的字符串(除了日志记录)。你可以更改每一个可见的字符串。如需更多本地化信息,或想添加新语言,请阅读语言 README。

崩溃命令:

/crash_assistant crash 有 3 个选项:

  • game – 使 Minecraft 崩溃并生成崩溃报告。
  • jvm – 使 JVM 崩溃并生成 hs_err_pid 文件。
  • no_crash – 应用附加参数但不崩溃。

在崩溃目标之后,你可以使用附加参数:

  • --withThreadDump – 在日志中生成线程转储。
  • --withHeapDump – 生成堆转储文件。
  • --GCBeforeHeapDump – 在堆转储之前执行垃圾回收。

问题模组配置:

添加一个配置文件 problematic_mods_config.json,让你可以将模组标记为与你的整合包不兼容。它有两种模式:检测到不兼容模组时使游戏崩溃,或仅通知用户。添加该模组的最终用户将收到一条预配置的消息,说明其为何不兼容,并会看到一个用于移除它的按钮。

合作伙伴

YourKit 通过创新且智能的工具支持开源项目,用于监控和分析 Java 和 .NET 应用程序。
YourKit 是 YourKit Java Profiler、YourKit .NET Profiler 和 YourKit YouMonitor 的创建者。

YourKit

隐私

日志仅在用户明确点击“上传”按钮时才会被上传,并且会直接发送到 mclo.gs,这是一个由 Aternos 运营的日志分享服务。

在发布之前,mclo.gs 会自动遮蔽敏感数据——例如访问令牌、IP 地址、系统用户名等——以确保粘贴内容可安全分享。

有关保留期限、谁可以访问日志以及你的 GDPR 权利的完整信息,请参阅他们的隐私政策。

由于 mclo.gs 的移动端 UI 可能不方便,Crash Assistant 默认会通过 gnomebot.dev 包装返回的 URL(例如 https://mclo.gs/X → https://gnomebot.dev/paste/mclogs/X)。你可以在设置中禁用此行为。gnomebot.dev 是由 Latvian Modder 创建的开源在线日志查看器;它从 mclo.gs 获取数据,并以方便的格式向用户显示,在最后一次访问后将粘贴内容缓存在 RAM 中五分钟,然后将其丢弃。

Crash Assistant 本身完全位于客户端——它没有服务器,也永远不会收到你的日志副本。

这是一段简短的隐私说明。完整的隐私政策可以在 Crash Assistant 内的隐私菜单中找到。Crash Assistant 会在你首次尝试上传日志时提示你阅读并接受我们的隐私政策。

评论

登录后评论和评分

KostromDan 的其他作品

查看全部 →