基本信息
我的世界Java版本
平台
其他链接
详情信息
**本工具刚刚进入测试阶段,格式和外观仍有诸多不足,许多功能仍需修复或改进,我们将在未来几天内持续优化。您可以通过提交报告来帮助我们——尤其是那些内置检测器未能准确识别的问题,以便我们更好地了解并实施相关改进。
如您存在争议并拥有相关证据,我们非常乐意通过 BBSMC 私信(DMs)进行处理,这是我们的首选争议解决方式。 **
这是一个堆栈跟踪(stacktrace)读取器和日志分析器。它能够解析堆栈跟踪信息,并在后台创建一个子进程,用于持续监测游戏进程是否仍在运行;一旦游戏进程停止,它便会执行一系列检查。
主要功能包括:
-
检测缺失的依赖项
-
识别不良驱动程序
-
诊断早期窗口问题(EarlyWindowIssues)
-
兼容 ModLauncher(MCForge 及其衍生版本)1.13+、FabricMC 和 FeatureCreep
-
免费且开源
-
支持多语言:西班牙语、英语、阿拉伯语、葡萄牙语、俄语、中文、波斯语、韩语、日语、世界语等
-
识别损坏的 SpongeMixin 配置
-
在堆栈跟踪中检测 ModLauncher 服务和 SpongeMixins
-
识别日志行中的 JAR 文件路径
-
若日志行中无 modfile 信息,则检查 modid(这在开发环境及面向开发者的启动器中很常见)
-
若仍无 modid,则进一步检查该行中的包名(package)
-
区分致命(Fatal)与非致命(nonFatal)堆栈跟踪,并建议优先处理致命错误
-
采用等级(level)与行号(line number)系统:等级越高应越优先处理;同等级下,行号越小越优先
-
内置拒绝列表(denylists),用于过滤加载器包名、modid 和 JAR 文件,避免其出现在输出结果中
-
识别致命的“类未找到”(Class Not Found)错误
-
兼容多种启动器生成的不同日志格式
-
简化崩溃原因定位流程
-
提供基于 HTML 的可定制 GUI 界面,模组包制作者可自行编辑(只需修改 crash_detector/pantilla.htm 文件,并保留 {} 内的内容)
-
显示日志文件所在位置
-
支持通过多种日志上传 API 和网站(如 securelogger.net、mclo.gs、paste.mikumikudance.jp 等)分享报告;这些站点由 MCLogs API 和 stikked 支持,用户可通过编辑 crash_detector 文件夹中的配置文件进行自定义
-
检测其他常见问题,如旧版 ASM 或 Java 版本不匹配
-
客户端日志匿名化功能(目前处于测试阶段,默认开启):在日志上传前自动移除敏感信息,如访问令牌、UUID、用户名和 IP 地址。此功能仍在测试中,可能存在缺陷
-
致敬 Vtuber 的纪念功能
-
每年六月,界面顶部会显示彩虹主题的“骄傲月”(Pride Month)提示信息
-
识别 NullPointerException(空指针异常)
-
检测内存不足(Low Memory)问题
-
支持从本地计算机或其他来源手动导入(sideload)日志
-
支持从 Markdown 格式的链接(如 Discord、QQ、Slack、AI 助手或 Crash Assistant 消息中的链接)读取日志
-
可查看模组列表(modlist)
-
能够对比自上次运行和上次成功运行以来的模组列表变化
-
提供“Mods”按钮,可比较 CrashDetector 安装后任意两次运行的模组列表
-
可检测并修复“IPV4 Not preferred”错误(常见于 Groovy Modloader),该修复功能可手动启用
-
支持在 GUI 中直接编辑配置
-
内置 MCreator 模组扫描器
-
检测服务器与客户端 ID 列表不一致导致的无法加入服务器问题
-
利用 NeoForge Waifu API(每分钟限 1 次查询)查找缺失类的模组
-
支持在所有已安装模组中搜索字段(field)和方法(method)引用
-
可查看所有模组的内部结构,包括嵌套 JAR(Jar-in-Jar)、类、方法和字段
-
提供扩展系统,允许用户自行开发扩展以增强 CrashDetector 功能(详见相关接口文档)
-
检测 mods.toml 文件中的非法字符或短语
-
识别无效的访问转换器(access transformers)
-
检测在服务端尝试加载客户端类(或反之)的情况
-
检查 mods.toml 中缺失的字段
-
验证 mods.toml 中的 modid 是否与 @Mod 注解中的 modid 一致
-
检测 mods.toml 中因 [[dependencies.modid]] 配置错误导致的 modid 元数据缺失问题
-
识别类中未找到监听器(No listeners found in class)的情况
-
诊断 SoundPhysicsMod 与声音系统相关的错误
-
识别 UnionFileSystem$UncheckedIOException: java.util.zip.ZipException: zip END header not found 错误(通常由模组包安装损坏引起,尤其在某些启动器上常见)
-
检测 GeckoLib/AzureLib 在 Fabric 模组中过早初始化(用于 MCForge 环境)的问题
-
C2ME 兼容性支持
-
提供基于 holotalk 风格的彩色日志查看器 UI,带有背景主题
-
识别 IDependencyLocator 相关问题
-
检测缺失的方法(Missing Methods)和字段(Missing Fields)
-
支持通过 JSON 文件添加自定义崩溃原因
-
提供图形化界面用于创建自定义崩溃原因的 JSON 配置
计划中的功能:
-
集成 MixerLogger
-
支持更多启动器
-
优化 Buscardor(查找器):改为按需读取类字节码,而非每次运行时都加载,以提升大多数情况下的性能
-
改进 Mods 树状视图
-
添加加载光标以显示加载状态
-
增加更多 Vtuber 元素,并回溯更新旧版 GUI,使其更贴合主题、视觉效果更佳
-
减少误报(false positives)
-
增强分析能力:我们已租用服务器,用于运行模组间的兼容性测试,以发现更多错误和不兼容问题
-
集成性能分析器(Profiler)
-
添加重新启动器(Relauncher)功能
-
作为 JVM 基础启动器的插件运行
-
整体优化,减少卡顿
-
改进对 NeoForge 的支持
-
恢复 Java 8 下的 ModLauncher 开发支持
-
支持 MCForge 1.7–1.12.2 版本,对 1.5–1.6.4 MCForge 提供有限支持
-
支持 Rift Loader
-
支持 LiteLoader
-
支持 Risugami's Modloader(但若需补丁功能,仍需启用 agent)
-
新增印尼语和越南语支持
目前该工具仍需更多真实环境测试与界面美化,但最终有望成为一个功能完善的堆栈跟踪阅读器。
注意事项:
尚未在 Quilt Loader 及 QSL 日志库上进行测试。
若启动器(如 MultiMC/PrismMC)未将日志保存为文件,程序会弹出对话框,允许您手动复制开发控制台或 Minecraft 日志内容以供分析。
当前 Java 8 下的 ModLauncher 开发工作已暂停。我们官方目标版本为 1.13–1.16.5,但更旧版本理论上也可能运行。问题仅存在于源码级别——将 CPW ModLauncher、MCForge ModLauncher 和 1.17 之前的 ModLauncher 同时集成到同一个 ITransformationService 中时出现了源码兼容性问题。该问题在二进制层面并不难解决,我们计划尽快修复。
在 Java 8 环境下(常见于 1.16.5 及更早版本),使用官方端点分享报告时可能因旧版 Java 的 SSL 证书问题而失败。这也是许多旧版 Java 无法用于 MCForge 安装程序的相同原因。
在 Java 8 环境下,部分检测 Java 进程和定位 Java 二进制文件的方法可靠性较低,我们正计划提升其稳定性。目前已在 macOS 10.14 Mojave 系统上的 1.16.5 MCForge 环境中完成测试。
附加功能:
支持在 Windows 系统中搜索文件夹内的字符串(包括二进制文件)。
能够分享日志
日志阅读器,方便你查看日志中的错误位置。
模组树(Mods Tree)功能,可让你查看嵌套的 JAR 文件、类、方法、字段、方法引用和字段引用,并支持对这些内容进行搜索。请注意,如果你安装了过多模组,加载过程可能会非常耗时且运行缓慢,但此功能可用于查找哪些模组修改了哪些类。
如果你是一名模组开发者,可以实现我们的接口
com.asbestosstar.crashdetector.Extension
,从而为你的模组添加新的错误检测功能,例如指定需要监控的新日志内容、在图形界面(GUI)中添加新按钮、加入自定义的日志分割器和清理器、集成新的 Pastebin API 和网站、添加自定义补丁等。你不需要掌握太多西班牙语,因为大部分术语与英语非常相似。
模组整合包(Modpack)制作者也可以利用此功能为其整合包进行定制。但如果你希望进行更深层次的修改,建议直接 Fork CrashDetector 项目。CrashDetector 不受知识产权保护,你可以自由地 Fork 并进行任意修改,甚至无需声明你的 Fork 版本与原项目有任何关联。
如果你不想编译新的 Java 模组,也可以通过在
crash_detector
文件夹中创建一个名为 firmas.json
的文件,使用 JSON 进行配置。该文件可以根据某一行日志或整个日志是否包含特定字符串或正则表达式,执行基本的分析。你可以为自己的公司或模组整合包(modpack)定义自定义的崩溃原因。
你甚至不需要会编程——我们提供了一个无代码(NoCode)图形界面(GUI),可以自动为你生成所需的配置代码。
隐私声明:
如果你使用了“分享报告”(Share Report)按钮,系统会将你报告的副本上传至我们的网站 asbestosstar.egoism.jp/crash_detector/,并在该网站上保留 3 天。同时,你的日志也会在一段时间内上传至 securelogger.net。
如果你不希望你的日志被上传,请不要使用分享按钮。
报告中包含以下信息:
- 你的日志链接
- 我们图形界面(GUI)中央屏幕所显示的内容
默认情况下,Crash Detector 会在客户端对你的日志进行匿名化处理。你可以在分享界面底部的配置中开启或关闭此功能。启用后,系统会在日志上传到日志站点之前,自动移除敏感信息,例如访问令牌(access tokens)、UUID、用户名和 IP 地址等。
不过请注意,该匿名化功能目前仍处于 测试阶段(beta),可能存在一些问题。
在分享界面的配置中,你还可以:
- 切换不同的日志托管站点和报告端点(report endpoints)
- 通过编辑
crash_detector
文件夹中的配置文件,使用自定义的日志站点(只要该站点支持你所选的 API)
如果你是通过模组整合包(modpack)获得 Crash Detector 的,请务必检查这些设置,因为整合包开发者有权修改这些默认配置。