Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement
Disambig gray  本文章介绍的是如何定位和获得崩溃报告。关于什么是崩溃,请见“崩溃”。

通过学习本教程,你将学会如何获取游戏崩溃时所产生的报告。崩溃报告可以帮助开发者或其它有经验的玩家为你诊断及解决崩溃问题,同时在漏洞追踪器中提交报告时崩溃报告也应一同上传。

获取崩溃报告日志文件

首先,你需要找到启动器所使用的游戏目录。

  • 如果你使用的是官方启动器:
  • 在Windows,它默认位于%appdata%\.minecraft\
  • 在MacOS,它默认位于~/Library/Application Support/minecraft
  • 在Linux它默认位于~/.minecraft
  • 如果你使用的是第三方启动器,其通常都会拥有一个游戏目录的路径设置。大多数启动器都会将默认游戏文件路径设置为其所在的文件夹的.minecraft子文件夹中,或是直接使用上方的官方启动器路径。由于这因启动器的不同而异,详细信息请查看启动器的设置和帮助页面。

如果你已经成功定位了游戏目录,只需要打开它的crash-reports子文件夹,即可看到所有的崩溃报告。

  • 如果你没看到的话,这说明你可能使用了版本隔离——一种特殊的文件目录管理设置,使各个版本使用独立的数据。这种情况下只需要打开versions文件夹,找到你崩溃时所游玩的版本所对应的文件夹,崩溃报告就在它的crash-reports子目录中。
  • 如果以上两个位置都没能找到崩溃报告,或是crash-reports文件夹不存在,这说明游戏可能是因为Java虚拟机故障导致的崩溃。此时游戏目录中应当含有一个或多个hs_err_pid#####.log文件。它就是你要找的崩溃报告了。
  • 崩溃报告的文件名遵循此格式:crash-yyyy-mm-dd_hh.mm.ss-(client/server).txt。你需要根据崩溃报告生成的时间来判断哪个报告是你所需要的。

对报告进行反混淆

19w36a开始,所有公开发布的游戏版本都会附带混淆映射表。你可以利用它来对报告进行反混淆,使Mojang能更容易地找到漏洞和错误发生的原因。

Retrace是一款解析混淆映射表并进行反混淆的工具。[1]为了运行Retrace,你需要安装Java 8或更高版本的Java。

例如,对于Retrace 6.3.0 beta 1版本,这些是此软件所需要的文件(Retrace本身及其使用的库):

下载这些文件,把它们放进同一个目录中。

下载对应版本的客户端混淆映射表(客户端的混淆映射表包含了服务端混淆映射表的所有内容),且不要对它重命名(使其保持client.txt文件名)。把它与上面的东西放在同一个地方。

把你的崩溃报告也复制进上面的目录中。你可以给它重命名成一个更简易的名称,例如crash.txt,这样会使你更容易执行后续的步骤。

打开你的命令行工具,例如Windows中的命令指示符、PowerShell,MacOS的终端,Linux的Bash等等。首先你需要在命令行中切换至以上东西所在的目录:

cd (路径)

对于Windows用户,你可以直接在文件夹中按住Shift并右击空白处,再选择“在此处打开PowerShell窗口”。之后执行以下命令:

java -jar proguard-retrace-6.3.0beta1.jar client.txt crash.txt > output.txt

如果你的崩溃日志的文件名称不一样,将crash.txt换成崩溃日志的文件名。

之后,报告便会在反混淆后输出为output.txt,你就可以把它上传到漏洞追踪器了。

引用

  1. ProGuard manual | Retrace  — Guardsquare。
Advertisement