最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

怎么看崩潰日志(入門)

2021-01-28 15:23 作者:道家深湖  | 我要投稿

總有人問我怎么看崩潰日志,這里我簡單講一下。

日志(崩潰日志、崩潰報告、log、crash-report),是診斷問題的主要途徑。

(嚴格來講,崩潰報告和日志不一樣,但這里我就不做區(qū)分了,因為它們在崩潰的時候幾乎完全一樣,不崩潰的時候都沒什么人看。)


看日志有三步:

  1. 看報錯類型,看看是不是內(nèi)存不足之類的

  2. 看堆棧,找是哪個mod

  3. 看游戲當前狀態(tài),合理分析

當然,這只是給新手做的劃分。像我實際看的時候,都是憑感覺隨便翻翻就行。熟練之后你也可以。

圖1,崩潰報告核心部分

上圖是日志的核心部分舉例。

一篇日志可能前后都有很長的內(nèi)容,但,

核心部分的開頭一定是“---- Minecraft Crash Report ----”(意思是“我的世界崩潰報告”)(Mohist服務器則是中文的“---- Mohist 崩潰報告 ----”)

后面有一句“A detailed walkthrough of the error, its code path and all known details is as follows:(意思是“錯誤的詳細信息,其代碼路徑和所有已知的細節(jié)如下所示:”)

大部分情況是英文的,但,如果你用的是mohist服務器,你會發(fā)現(xiàn)這些都變成了中文,那么你就要找到中文的這兩句話。

這兩句的后面都有著明顯的開頭空格對齊的文字,開頭都是“at”,特征很明顯。有經(jīng)驗的人只要一眼就能找到這部分,如果你是新手,可以靠Ctrl+F搜索“detailed walkthrough”一詞來尋找。

當然,如果你發(fā)現(xiàn)日志里真的沒有這一段,那可能是非常嚴重的底層錯誤,就得找大佬了。

舉例:

圖2,一個Java本身報錯,無堆棧的日志

像這種沒頭沒尾的日志,就算是大佬都不一定能搞定。我只能祝你遇到的不是這種情況。

回到圖1,看正常的例子?!?strong>Description: ”后面的一句話是報錯類型,有時候還跟著幾行,告訴你為什么崩潰。當然,這句話是給程序員看的,很多時候不寫代碼的人并不能看懂。

一眼就能確診的有:

  • Description: Not Enough Memory ——內(nèi)存不足

  • Wrong Minecraft Versions!?—— 裝到了錯誤的MC版本。舉例來說,你把1.12.2的mod裝到了1.7.10里。

沒法一眼確診的典型:

  • Description: Exception ticking world

  • Description: Exception in server tick loop

  • Description: Unexpected error

  • Description: Initializing game

  • Description: Batching chunks

  • ……

好,一眼不能確診的話,我們往下看“堆棧”區(qū)。堆棧區(qū)的格式是這樣的:

某某錯誤

? at 某某.某某.某某……(某文件的某行)

? at 某某.某某.某某……(某文件的某行)

? at 某某.某某.某某……(某文件的某行)

? ……

崩潰例子A:

java.lang.NoClassDefFoundError: net/minecraft/world/World$2

? at net.minecraft.world.World.func_190524_a(World.java:557)

? at net.minecraft.world.World.func_175685_c(World.java:492)

? at net.minecraft.world.World.func_175722_b(World.java:440)

? at net.minecraft.world.World.markAndNotifyBlock(World.java:381)

? at net.minecraft.world.World.func_180501_a(World.java:361)

? at net.minecraft.block.BlockBush.func_176475_e(BlockBush.java:68)

? at net.minecraft.block.BlockBush.func_180650_b(BlockBush.java:60)

? at com.rumaruka.thaumicbases.common.block.BlockTBSapling.func_180650_b(BlockTBSapling.java:59)

? at net.minecraft.block.Block.func_180645_a(Block.java:508)

? at net.minecraft.world.WorldServer.func_147456_g(WorldServer.java:476)

? at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:225)

? at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:756)

? at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668)

? at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:185)

? at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)

? at java.lang.Thread.run(Unknown Source)

后面一大堆“at”開頭的行,你會發(fā)現(xiàn)他們的開頭格式固定為“某某點某某點某某……”,這一般是com.作者名.mod名,mod名就藏在這一部分。當然,也有可能是其他的格式,這取決于mod作者怎么寫的。后面會講到,你不需要知道所有的情況,你只需要知道這里是最與眾不同的部分即可。

準確地說,這里的不是mod名,而是modid,一個用來區(qū)分mod的詞。比如,匠魂是“tconstruct”,神兵是“dweapon”,別指望這里有漢字的名稱。

那,怎么判斷哪行來自mod呢?

排除以下開頭的行,剩下的基本就是了:

  • net.minecraft

  • net.minecraftforge

  • java.

  • sun.reflect

  • cpw.mods.modlauncher

  • com.google.

說白了,mod運行在MC上,MC運行在Java上,崩潰了你既不能刪mc也不能刪java,只好刪mod,所以日志里提到的mc和java相關(guān)的東西都無視掉就好。

例子A里,唯一提到的mod是“com.rumaruka.thaumicbases”,那么九成九的情況下它就是罪魁禍首。可是,這是什么mod呢?如果你經(jīng)驗豐富,你會知道“thaumic”是神秘時代。如果你經(jīng)驗不豐富,那么就把這一段的每個單詞(除了“com”“github”以外)拿出來Ctrl+F搜索,看看他會不會在某個列表里出現(xiàn)。如果你發(fā)現(xiàn)你的日志沒有mod列表,或者根本查不到,那就得去網(wǎng)上搜搜這是個啥了。

1.12.x的mod列表
1.15.x的mod列表


1.12.x的mod列表


1.16.x的崩潰列表

查出來是哪個mod的問題了,怎辦?如果你毫無頭緒,那就更新這個mod的版本。如果還不行,刪了這mod。

當然,也有的時候有好幾個mod都被點名了。比如這個例子:(這里com/xxx/xxx視同com.xxx.xxx來看)

java.lang.NoClassDefFoundError: com/animania/common/entities/sheep/EntityEweBase

at org.orecruncher.dsurround.client.renderer.AnimaniaBadge.scale(AnimaniaBadge.java:109)

at org.orecruncher.dsurround.client.renderer.BadgeRenderLayer.doRenderLayer(BadgeRenderLayer.java:127)

at net.minecraft.client.renderer.entity.RenderLivingBase.renderLayers(RenderLivingBase.java:561)

at net.minecraft.client.renderer.entity.RenderLivingBase.doRender(RenderLivingBase.java:270)

這里,“animania”是動物谷,“dsurround”是動態(tài)環(huán)繞。出現(xiàn)多個mod的時候,往往是它們沖突了。這也很正常,各個mod作者各寫各的,誰也不能保證互相全都兼容。世界上少說幾萬個,誰也不能逐一測試。遇到這情況,請果斷裁決,刪掉哪個。如果是我的話……我可能會刪動態(tài)環(huán)繞。

到此,你已經(jīng)能查出一些基本的問題了。剩下的第三步,通俗點說就是整篇日志全都看一遍,然后看哪里可疑。這個過程需要比較好的英語水平,以及對MC和mod運作原理的認知,還要有豐富的經(jīng)驗。對于小白來說,知道前面的看報錯類型和堆棧就已經(jīng)差不多了。

第三步的舉例,以后我再講解吧。

(待續(xù))


怎么看崩潰日志(入門)的評論 (共 條)

分享到微博請遵守國家法律
正阳县| 鸡西市| 阜康市| 禹州市| 阳泉市| 武城县| 尉犁县| 当阳市| 大石桥市| 忻城县| 余干县| 清原| 时尚| 道孚县| 锡林浩特市| 弋阳县| 长沙市| 巫山县| 龙川县| 五大连池市| 嵩明县| 旬阳县| 闽清县| 明溪县| 密山市| 夹江县| 红安县| 贵定县| 沧源| 祥云县| 尚志市| 张家港市| 当涂县| 平山县| 湖州市| 华亭县| 格尔木市| 榕江县| 金塔县| 固安县| 故城县|