【質問禁止】クラッシュレポートを読む方法 (2013/11/15更新)

クライアント/サーバーMODの開発に関する話題、技術交換はこちらで。質問は質問フォーラムへお願いします。
  • (PostNo.57451)

【質問禁止】クラッシュレポートを読む方法 (2013/11/15更新)

投稿記事by Aurora » 2012年10月07日(日) 15:33

miyabi@運営チーム[運営宛のメッセージ(PM)を作成] このトピックは質問をする場所ではありません。
情報の追記などを可能にするため、返信を許可していますが、質問の返信は、発見次第全て削除致します。
適切なトピックへの移動などは一切行いません。


MOD開発で大変お世話になるクラッシュエラー&デバッグ作業。
MODの導入によるプレイでも発生することがある、突然の終了。
原因を探って解決したい、軽率に報告して回答者に迷惑を掛けたくもない、
そんな方に向けたトピックです。

例外とは、主に言語がプログラムを異常と判断したときに発生する現象。
 Minecraftでは、ハードウェアの故障でよく用いられる「エラー」「クラッシュ」「フリーズ」などと言われます。

ここでクラッシュを発生された場所と原因を記されたのが、クラッシュレポートです。
ランチャーを起動している時にクラッシュした場合は、ランチャーに表示します。

クラッシュレポートは自動的に保存されるので、その場所を探せばいつでも見る事ができます。
ランチャーの「Edit Profile」からProfile Editorの「Open Game Dir」を押し、対象フォルダを開きます。
crash-reportsフォルダから対象のtxtファイル、MOD基本ソフト(MinecraftForge)を使ってる場合は「ForgeModLoader-client-0.log」を開きます。

Minecraftのバージョンにもよりますが、大体はこんな感じに記述されていると思います。
※以下のエラー文のMinecraftのバージョンは1.2.5です。
コード: 全て選択
 0:18 mods loaded
 1:Optifine OptiFine_1.2.5_HD_C6
 2:Minecraft Forge 3.3.8.164
 3:FML v2.2.106.176
 4:Forge Mod Loader version 2.2.106.176 for Minecraft 1.2.5
 5:   mod_MinecraftForge : Available (minecraft.jar)
 6:   mod_IC2 : Available (industrialcraft-2-client_1.97.jar)
        (長いので省略)
21:   mod_TwilightForest : Available (twilightforest-1.10.0.zip)
22:
23:      Minecraft has crashed!     
24:      ----------------------     
25:
26:Minecraft has stopped running because it encountered a problem.
27:
28:
29:
30:
31:--- BEGIN ERROR REPORT e41a973e --------
32:Generated 12/10/07 14:17
33:
34:Minecraft: Minecraft 1.2.5
35:OS: Windows 7 (amd64) version 6.1
36:Java: 1.7.0_06-ea, Oracle Corporation
37:VM: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
38:LWJGL: 2.8.4
39:OpenGL: ATI Radeon HD 5700 Series version 4.2.11733 Compatibility Profile Context, ATI Technologies Inc.
40:
41:java.lang.NullPointerException
42:   at xd.k(World.java:4393)
43:   at xd.w(World.java:4401)
44:   at xd.l(World.java:4412)
45:   at xd.x(World.java:4427)
46:   at ic2.common.BlockIC2Explosive.a(BlockIC2Explosive.java:64)
47:   at ack.a(Chunk.java:680)
48:   at xd.b(World.java:1606)
49:   at xd.d(World.java:1701)
50:   at vd.a(ItemBlock.java:85)
51:   at aan.a(SourceFile:88)
52:   at aff.a(PlayerControllerCreative.java:92)
53:   at net.minecraft.client.Minecraft.c(Minecraft.java:1360)
54:   at net.minecraft.client.Minecraft.k(Minecraft.java:1804)
55:   at net.minecraft.client.Minecraft.x(Minecraft.java:825)
56:   at net.minecraft.client.Minecraft.run(Minecraft.java:753)
57:   at java.lang.Thread.run(Unknown Source)
58:--- END ERROR REPORT 36fbce1f ----------
59:
60:
61:

以上を解読すると、こんな感じになります。
0行~21行 導入MODの名前とバージョン
23行 Minecraftはクラッシュしました!
26行 プログラムの例外に遭遇したので、Minecraftは動作をやめました。
32行 エラーが発生した時間
34行 使用中のMinecraftのバージョン
35行 使用中のOS
36行 使用中のJavaのバージョン
37行 JavaVM
38行 使用中のLWJGLのバージョン
39行 使用中のOpenGLのバージョン
41行 例外の種類
42行 例外が発生したクラスとメソッド(ソース名:例外が出た行)
43~57行 例外が発生した親クラスorメソッド

この中から読み解く為に重要な部分がいくつかあり、クラッシュした原因をある程度は理解する事ができます。
41行 例外の種類 ここにあります。
51行の「SourceFile」となってる部分は、それはどのMODも変更を加えていないファイルを意味してます。この場合、バニラファイルです。
SourceFileを発信源とするエラーが先頭にあったら、原因の特定が難しいので報告は慎重にしましょう。

java.lang.IllegalArgumentException: Slot **** is already occupied by ###### when adding ######
 ブロックまたはアイテムIDの競合です。
 これを原因とするエラーを報告するのは無知の極みです。このような失礼のないようにお気をつけください。
解決方法
###### when adding ######に書かれてるのは競合したIDのクラスのパスで、そのパスにはMODに関連した名前が書かれている事が多いため、導入したMODの中にこれらに関連した名前などが一致しているか探します。
原因を発生させているMODが分かったらconfigフォルダを開いてSlot ****の数字を検索して、該当部分を、どのMODにも割り当ててない数字に書き換えて保存します。
起動してこの例外が出なければ、成功です。

java.lang.OutOfMemoryErrorjava.lang.StackOverflowErrorjava.lang.IndexOutOfBoundsException
 メモリ不足によるエラーです。
 Javaに設定されたメモリ割り当て量を上げるか、必要ないアプリケーションを閉じてください。
解決方法
メモリ割り当て量を上げる方法
 ランチャーのプロファイル編集のJVM Arguments項目を変更します。
 「-Xmx1G」から「-Xmx1024M」に変更し、1024から好みに上げます。
 ※Java 32bitではメモリ割り当て量の上限は1GB(1024MB)なので、Java 64bitを使う事をお勧めします。
Javaのバージョンを変更する方法
 ランチャーのプロファイル編集のExecutableを変更するだけです。
 「C:\Program Files (x86)\Java\jre7\bin\java.exe」(Windows Vista以降 Java 32bitのデフォルトルート)
 「C:\Program Files\Java\jre7\bin\java.exe」(Windows 64bit Vista以降 Java 64bitのデフォルトルート)

cpw.mods.fml.common.LoaderExceptionjava.nio.file.NoSuchFileExceptionjava.lang.NoClassDefFoundErrorjava.lang.NoSuchMethodError
 左から順番に MOD読み込み失敗、対象ファイル、クラスファイル、クラスメソッドが見つからない。
 MODが必要とするファイルが見つからない場合に発生する可能性の高い例外です。
 MODが他のMODと連携しようとして発生したり、jarMODの導入の仕方を間違えているなど、原因は多種に渡ります。
 前提MODである可能性が高いので、トピックを読んでください。
 MinecraftForgeのバージョンによっても発生する事があるので、
 MODがどのバージョンのMinecraftForgeに対応しているか確認して、更新またはダウングレードする場合があります。

org.lwjgl.LWJGLException: Pixel format not accelerated
 GPU内臓CPU、チップセット、グラフィックカード、グラフィックドライバ、ディスプレイドライバ
 のいずれかのバージョンが古い可能性が高いです。
 PCについて詳しくない場合、PCを買い換えるとよいでしょう。

java.lang.StackOverflowError
 メモリスタックのサイズが足りていない。
解決方法
メモリスタックの割り当て量を上げる方法
 ランチャーのプロファイル編集のJVM Arguments項目を変更します。
 「-Xss1M」を追加する。

java.lang.NullPointerExceptionjava.lang.NumberFormatExceptionjava.lang.ArithmeticExceptionjava.lang.ArrayIndexOutOfBoundsExceptionjava.lang.NegativeArraySizeException
 多くの場合、MODの不具合によって発生した例外です。
 複数のMODとの相性の問題(競合)によって発生する場合もあります。
 基本的にこの問題を解決する事自体が困難なため、MOD開発者へ報告するといいでしょう。
 この報告はフォーラムでもたびたび見かけるため、MODを最新版にすると解決する可能性があります。

java.lang.ClassCastException
 変換できないクラスへキャストしようとした。
 複数のMODとの相性の問題(競合)によって発生する場合がよくあります。

java.lang.ClassFormatError
 クラスが壊れている、またはフォーマットが読み込めない。
 使用してるJavaのバージョンが古すぎるかもしれません。
 もう一度ファイルをダウンロードしてもこの例外が出るなら、MOD開発者に連絡したほうがいいかもしれません。

java.lang.SecurityException
 Javaが要求したシステム情報へのアクセスを拒否したときに発生します。
 セキュリティ違反を知らせる例外なので、MODによって不正な情報を盗み見られている可能性があります。

java.lang.RuntimeExceptionjava.lang.Exception
 エラーを起こした原因がJavaでは理解できなかった場合に発生する例外です。
 MOD側のエラーメッセージとして利用される場合があります。
 その場合は「Description:」に続く文字が書かれている可能性があるので、探してください。

以上です。他にも様々な例外があります。
分からない例外があれば検索するのもよし、調べる余地は十分あります。

問題は解決したでしょうか?指摘・改善案があればよろしくです。



MOD開発者へ報告する前に
最初にMODとMinecraftForgeのバージョンを最新版にしましょう。殆どの場合、トピックは最新版から最近のバージョンに準拠します。
解決しない場合、MODのトピックを詳しく読み実行しましょう。次にトピックの最近のコメントも読んでください。
ここまでの間に短くても30分の時間を費やし、投稿すべきかどうかを判断します。

MOD開発者へ報告する場合
 MOD開発者へ報告する場合は、常識の範囲内で詳しく記述する必要があります。
 MODの名前とバージョン、MinecraftForge名前とバージョンは絶対必要です。エラー文があれば載せてください。
 どの場面・どのタイミングで問題があったか、出来るだけ詳しく書いてください。
 ここを怠るとMOD開発者に迷惑を掛ける場合があるので、MODを利用してる側としての感謝と礼儀を忘れぬよう気をつけてください。


クラッシュエラーを修正する方法(Modding開発者向け)
詳細
今回、例外を出した原因の修正までのやり方です(参考までに。環境や状況により異なります)
最初に、World.java:4393を探しましょう。(これはMinecraft Forgeの使用クラスですが、Minecraft Forge用に対応されたWorld Optimizer 1.2.5 v14のファイルなので注意。バニラではこのメソッドは存在しないので注意)
コード: 全て選択
4390:    public boolean isBlockProvidingPowerTo(int par1, int par2, int par3, int par4)
4391:    {
4392:        int var5 = this.getBlockId(par1, par2, par3);
4393:        return var5 == 0 ? false : Block.blocksList[var5].isIndirectlyPoweringTo(this, par1, par2, par3, par4);
4394:    }

と明記されているのが分かります。エラーの種類は「NullPointerException」とあるので、「Block.blocksList[var5]」がNullを出してるのではないか?と、容易に推測できるのです。
Block.blocksListはブロックデータでNullと吐き出されてますので、そのブロックは存在していないという事になります。
return var5 == 0 ? false : Block.blocksList[var5].isIndirectlyPoweringTo(this, par1, par2, par3, par4);
から、
return Block.blocksList[var5] == null || var5 == 0 ? false : Block.blocksList[var5].isIndirectlyPoweringTo(this, par1, par2, par3, par4);
に修正する事で、一応この問題は解決します。
よく見ると、46行のBlockIC2Explosive.classが怪しいですね。そこからIndustrialCraft2が関係する不具合の可能性があると分かります。(現在は修正されているので、IndustrialCraft2の開発者に連絡しないでください)
最後に編集したユーザー Aurora [ 2013年11月15日(金) 21:34 ], 累計 3 回
アバター
Aurora
ID:754258b5
金掘り
 
記事: 457
登録日時: 2011年6月27日(月) 23:46
お住まい: Aurora City

  • (PostNo.137089)

Re: Minecraftのクラッシュエラーを読む方法 v2

投稿記事by Aurora » 2013年10月30日(水) 00:14

皆様にご利用頂き、誠にありがとうございます。
本トピックの投稿から一年余りも経過し、アクセス数も5000を超過したことによる一定の需要を感じた事を気に、改変&追記してみました。

今回は投稿当初からの知識蓄積も相まって、いくつかの例外情報と問題解決方法などを追加しました。
現在においても、情報提供の募集を行ってます。
まだ希薄なページですが、今までより多くの方々の悩みを減らせたらと思います。

本トピックのリンクは自由です。
それでは快適なマインクラフトライフをお過ごしください。
[PR]軽量化MODを公開しています
アバター
Aurora
ID:754258b5
金掘り
 
記事: 457
登録日時: 2011年6月27日(月) 23:46
お住まい: Aurora City

  • (PostNo.175439)

Re: クラッシュレポートを読む方法 (2013/11/15更新)

投稿記事by わっふるわhっふる » 2014年5月30日(金) 12:11

1.6.4のクラッシュレポートの読み方も上記と一緒ですか?
違うのであれば是非1.6.4の方のレポートの説明をお願いしたいのですが・・・
わっふるわhっふる
ID:7276501e
 

  • (PostNo.175455)

Re: クラッシュレポートを読む方法 (2013/11/15更新)

投稿記事by miyabi » 2014年5月30日(金) 15:09

わっふるわhっふる さんが書きました:1.6.4のクラッシュレポートの読み方も上記と一緒ですか?
違うのであれば是非1.6.4の方のレポートの説明をお願いしたいのですが・・・

基本的には変わらないか、類似したメッセージです。
1.7でも同様です。
マイクラサーバを立てる前に、PCの基礎知識を身につけましょう。
サーバ管理補助ツール MCSC(Windows専用) の開発をしたり、Minecraft Modding Wikiの管理したりしてます。
アバター
miyabi
ID:71524eb2
ブタ飼い
 
記事: 6678
登録日時: 2011年8月07日(日) 14:35
お住まい: さいたまさいたまさいたま!

  • (PostNo.218689)

Re: クラッシュレポートを読む方法 (2013/11/15更新)

投稿記事by yukimori » 2015年2月23日(月) 19:43

ありがとうございますこれでエラーが読める
1,7,10最高mod多いし軽いよ1,2,5もね
mod開発中http://forum.minecraftuser.jp/viewtopic.php?f=21&t=27817
気が向いたので1.81.9のmodを開発します
mod作成ソフトMCreatorで作成しています
アバター
yukimori
ID:a86a6299
大工さん
 
記事: 68
登録日時: 2015年2月07日(土) 10:43
お住まい: 学園都市minecraftmod市

  • (PostNo.220438)

Re: クラッシュレポートを読む方法 (2013/11/15更新)

投稿記事by 水力@風化した鎌足 » 2015年3月06日(金) 23:39

素人ながら考えたのですが、ここに書き込む皆様が「解らん」連呼してコードをコピペしてしまうのは、
MC側でランチャーが実装される等してクラッシュレポートの書式が少し変わっているのも原因かと思います。

私もこのトピックには何かある度に読み返す事も有ってお世話になりました。
素人の余計なお節介かもしれませんが現在のクラッシュレポートの書式について私なりに少し書いてみました。

1 ---- Minecraft Crash Report ----
2 // Surprise! Haha. Well, this is awkward.
3
4 Time: 15/03/06 21:44
5 Description: Updating screen events
6
7 java.lang.NoSuchMethodError: buildcraft.api.core.JavaTools.getAllFields(Ljava/lang/Class;)Ljava/util/List;
8 at

〜長いので省略〜 :tnt:

37 at
38
39
40 A detailed walkthrough of the error, its code path and all known details is as follows:
41 ---------------------------------------------------------------------------------------
42
43 -- Head --
44 Stacktrace:
45 at

〜長いので省略〜

64 at
65
66 -- Affected screen --
67 Details:
68 Screen name: net.minecraft.client.gui.inventory.GuiContainerCreative
69
70 -- Affected level --
71 Details:
72 Level name: MpServer
73 All players: 1 total; [EntityClientPlayerMP['suiriki'/307, l='MpServer', x=516.84, y=9.84, z=839.94]]
74 Chunk stats: MultiplayerChunkCache: 81, 81
75 Level seed: 0
76 Level generator: ID 01 - flat, ver 0. Features enabled: false
77 Level generator options:
78 Level spawn location: World: (519,4,843), Chunk: (at 7,0,11 in 32,52; contains blocks 512,0,832 to 527,255,847), Region:
79 (1,1; contains chunks 32,32 to 63,63, blocks 512,0,512 to 1023,255,1023)
80 Level time: 38171 game time, 48243 day time
81 Level dimension: 0
82 Level storage version: 0x00000 - Unknown?
83 Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
84 Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
85 Forced entities: 64 total;

〜長いので省略〜 :agd:

1' Retry entities: 0 total; []
2' Server brand: fml,forge
3' Server type: Integrated singleplayer server
4' Stacktrace:
5' at
6' at
7' at
8' at
9' at
10' at
11' at
12' at
13' at
14' at
15'
16' -- System Details --
17' Details:
18' Minecraft Version: 1.7.10
19' Operating System: Mac OS X (x86_64) version 10.7.5
20' Java Version: 1.8.0_31, Oracle Corporation
21' Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
22' Memory: 216160976 bytes (206 MB) / 529530880 bytes (505 MB) up to 954728448 bytes (910 MB)
23' JVM Flags: 1 total; -Xmx1G
24' AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
25' IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0

〜長いので省略〜 :dia:

LWJGL: 2.9.1
OpenGL: Intel HD Graphics 3000 OpenGL Engine GL version 2.1 APPLE-7.32.12, Intel Inc.
GL Caps: Using GL 1.3 multitexturing.
Using framebuffer objects because ARB_framebuffer_object is supported and separate blending is supported.
Anisotropic filtering is supported and maximum anisotropy is 16.
Shaders are available because OpenGL 2.1 is supported.

Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Packs: []
Current Language: 日本語 (日本)
Profiler Position: N/A (disabled)
Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Anisotropic Filtering: Off (1)



至極単純ですが、クラッシュの大まかな原因は7行目に書かれています
(書かれている内容に付いてはこのトピックの冒頭が詳しいです)


:tnt: には、クラッシュ原因の詳細についてが書かれているようです。
◯『at 』で始まる行は、見つからない/競合しているなどのクラス/ファイル等が書かれています。
◯『Caused by:』の行では、minecraft(主にMOD)が要求している足りないファイル/クラス等が書かれています。

:agd: には、クラッシュ時に読み込んでいたエンティティ(モブやブロックでないアイテム)の座標について書かれています
(クラッシュには関係ない場合が殆どです)

16'以降には現在マインクラフトを遊んでいる環境についての詳細が載っています

:dia: には、導入されているMODとそのバージョン情報が書かれています



恐らく間違えている箇所もあると思うのでご指摘をお願いします
最近はsteamでホリデーセールに嵌ってます(衝動買い)
水力@風化した鎌足
ID:9f929c71
木を殴ってる
 
記事: 12
登録日時: 2013年12月09日(月) 22:42

  • (PostNo.226751)

Re: クラッシュレポートを読む方法 (2013/11/15更新)

投稿記事by delvi » 2015年4月09日(木) 22:15

いつもMOD制作や通常のプレイ等でクラッシュしたときはお世話になっております。
この記事に感謝しています、今更ですがコードの読み方についての記事作成ありがとうございます!
javaについて勉強している途中です。夢はでっかくSEGA就職です。
delvi
ID:2723d280
木を殴ってる
 
記事: 38
登録日時: 2013年12月02日(月) 15:52
お住まい: セハガガ学園


Return to 開発関連

x