バグ:履歴から特定のシナリオを開くと強制終了
α2リリースお疲れ様です。
α2・64bit 左上ファイルの履歴から「私版・狼の親子」というシナリオを選んだ時に確認。
α1では再現しませんでした。
ログが出力されなかったため201デイリー版を落とし直すと意図しないエラーが出ました。
2017-02-01 23:51:57 [Build: 2017-02-01 21:07:45 Debug / Console (64-bit)] cwx\utils.d:135 Stack Trace --------
cwx\editor\gui\dwt\mainwindow.d-mixin-4334, 4334
cwx\editor\gui\dwt\mainwindow.d-mixin-4337, 4337
cwx\editor\gui\dwt\cardpane.d-mixin-2190, 2190
cwx\editor\gui\dwt\cardpane.d-mixin-2191, 2191
cwx\editor\gui\dwt\cardpane.d-mixin-2199, 2199
cwx\editor\gui\dwt\cardlist.d-mixin-613, 613
--------
2017-02-01 23:51:57 [Build: 2017-02-01 21:07:45 Debug / Console (64-bit)] cwx\editor\gui\dwt\mainwindow.d:4435 [Range violation] cwx\editor\gui\dwt\cardlist.d, 614: 0x00007FF6BE0CD488
0x00007FF6BD99DF3C
0x00007FF6BC7116A7
0x00007FF6BD31E2D7
0x00007FF6BDEE1EB5
0x00007FF6BDF9C529
0x00007FF6BDDA6789
0x00007FF6BDEAD233
0x00007FF6BDEAACAD
0x00007FF6BCDCC873
0x00007FF6BD9BDF6F
0x00007FF6BE0EC4B2
0x00007FF6BE0EC36F
0x00007FF6BE0EC42C
0x00007FF6BE0EC36F
0x00007FF6BE0EC189
0x00007FF6BD9BE634
0x00007FF6BE1A9DA9
0x00007FFE563E8364 in BaseThreadInitThunk
0x00007FFE572D5E91 in RtlUserThreadStart
ところでデイリー版が圧縮時42.3 MB、64bit版80MB×2もあるのは理由があるんでしょうか?(ビルドが早いが容量が増えるとか?
このサイトが速度あんまり出ないのもあって XEditor側のテストプレイヤーが少ない原因のひとつのような気もします。
コンソール表示はデバッグには有用ですが、普通に使う分には邪魔だから両方というのはわかるのですが…
「最新の機能使わせてあげるから人柱になってよ」と書いてあるのですから、コンソール版に絞るか、XEditorのオプション(にできれば)していただけるとありがたいかなぁと思います(個人の感想です)
Comments (7)
-
repo owner -
reporter 32bit版/64bit版ともに再現しなくなっていることを確認しました。 が、なぜかエラーログは出力されているっぽいので一応載せておきます。(そういうものであればスルーで)
なので、今回から32bit版と64bit版のビルドを個別に出すようにしました。
そういうことでしたら、二つに分けるのはそれはそれで長月さんサイドが手間でしょうし、天秤に掛けると現状のままで良いかと思います。差し出口でした。 容量を鑑みるとcwxeditor_fnine_win.exeとcwxeditor_fnine.exeはどちらか一方でもいいのでは?と単純に思っただけですので…(以前数十分かかる的なことを仰っていましたし)
2017-02-02 20:11:31 [Build: 2017-02-02 19:52:40 Debug (64-bit)] cwx\utils.d:133 Stack Trace -------- cwx\editor\gui\dwt\mainwindow.d-mixin-4334, 4334 cwx\editor\gui\dwt\mainwindow.d-mixin-4337, 4337 cwx\editor\gui\dwt\loader.d-mixin-130, 130 cwx\editor\gui\dwt\loader.d-mixin-131, 131 cwx\editor\gui\dwt\loader.d-mixin-132, 132 cwx\editor\gui\dwt\loader.d-mixin-139, 139 cwx\editor\gui\dwt\mainwindow.d-mixin-1174, 1174 cwx\editor\gui\dwt\mainwindow.d-mixin-1175, 1175 cwx\editor\gui\dwt\mainwindow.d-mixin-990, 990 2017-02-02 20:11:31 [Build: 2017-02-02 19:52:40 Debug (64-bit)] cwx\editor\gui\dwt\loader.d:162 [null this] org\eclipse\swt\graphics\GC.d, 3998: 0x00007FF6DF095813 0x00007FF6DED8E6AE 0x00007FF6DD6E61B3 0x00007FF6DD6E6B85 0x00007FF6DD6DF699 0x00007FF6DE2CCD71 0x00007FF6DE2F14DE 0x00007FF6DE2FA7E2 0x00007FF6DEBA31FD 0x00007FF6DEBA2EB0 0x00007FF6DDD3DEBC 0x00007FF6DDD417C0 0x00007FF6DE68557A 0x00007FF6DEFE19E8 0x00007FF6DEF54E84 0x00007FF6DED78526 0x00007FF6DED761BB 0x00007FF6DDD82B8B 0x00007FF6DE97FEE3 0x00007FF6DF0ADB12 0x00007FF6DF0AD9CF 0x00007FF6DF0ADA8C 0x00007FF6DF0AD9CF 0x00007FF6DF0AD7E9 0x00007FF6DE980584 0x00007FF6DF16B119 0x00007FFE563E8364 in BaseThreadInitThunk 0x00007FFE572D5E91 in RtlUserThreadStart
-
repo owner どうもエラーの内容がおかしいですね。
org\eclipse\swt\graphics\GC.d
は、DWTのグラフィックスコンテキストです。つまり描画を司る部分なのですが、どうしてシナリオのロードのタイミングでそこでエラーが起きているんでしょう? エラーの内容もどうもよく分からないです。3998行目はメソッド定義でエラーが起きるような箇所ではありませんし、null this
なるメッセージも見つかりません。これは当該シナリオだけで起きる問題なのでしょうか? また、スキン側のリソースの扱いで問題が起きているという可能性もあるのですが、どのようなスキンを使用しているでしょうか?
私の試したシナリオは「狼の親子」ver.2.00で、タイトルには「私版」がついていないです(履歴にはある)。もしかして別のシナリオなのでしょうか?
-
reporter α2で試した限りでは狼の親子(自分のもVer2.00です)以外のシナリオでも強制終了が起こる(100%ではない)ようです。 ゴブリンの洞窟でも確認しました。
リソースについては1.50エンジン(カスタマイズ済み)が読み込まれているようです。
すいません、どうも他の状況だとしなかったりでよくわからなくなってきたので、とりあえず高頻度で再現する状況を書いておきます…
- クラシック形式の交易都市リューンでID75に「コカの葉1111111」という名前のアイテムを作っている(文字数制限をチェックしていた)
- アイテムタブを開いている状態
- 私板・狼の親子を履歴から選択
- 読み込みが終わり、アイテムビュー部分の空白を左クリックで強制終了(起こらない場合は別シナリオ→リューン→狼の親子を数回繰り返す)
-
reporter 0202ビルドのものについては以降再現しなくなってしまいました。
キャッシュが残っていただけかもしれません。(だとしたら失礼しました…)
リリース版で試している時にエラーログが出たようなので貼っておきます。
2017-02-02 21:52:45 [Build: 2017-02-01 19:52:12 Release (64-bit)] cwx\utils.d:133 Stack Trace -------- cwx\editor\gui\dwt\mainwindow.d-mixin-4334, 4334 cwx\editor\gui\dwt\mainwindow.d-mixin-4337, 4337 cwx\editor\gui\dwt\loader.d-mixin-130, 130 cwx\editor\gui\dwt\loader.d-mixin-131, 131 cwx\editor\gui\dwt\loader.d-mixin-132, 132 cwx\editor\gui\dwt\loader.d-mixin-139, 139 cwx\editor\gui\dwt\mainwindow.d-mixin-1174, 1174 cwx\editor\gui\dwt\mainwindow.d-mixin-1175, 1175 cwx\editor\gui\dwt\mainwindow.d-mixin-990, 990 cwx\editor\gui\dwt\mainwindow.d-mixin-992, 992 cwx\editor\gui\dwt\cardwindow.d-mixin-756, 756 cwx\editor\gui\dwt\cardwindow.d-mixin-768, 768 cwx\editor\gui\dwt\cardwindow.d-mixin-771, 771 cwx\editor\gui\dwt\cardpane.d-mixin-3425, 3425 cwx\editor\gui\dwt\cardpane.d-mixin-2985, 2985 cwx\editor\gui\dwt\cardpane.d-mixin-2987, 2987 cwx\editor\gui\dwt\cardpane.d-mixin-1273, 1273 cwx\editor\gui\dwt\cardpane.d-mixin-1293, 1293 cwx\editor\gui\dwt\cardlist.d-mixin-525, 525 cwx\editor\gui\dwt\cardlist.d-mixin-962, 962 cwx\editor\gui\dwt\cardlist.d-mixin-862, 862 cwx\editor\gui\dwt\cardlist.d-mixin-939, 939 2017-02-02 21:52:45 [Build: 2017-02-01 19:52:12 Release (64-bit)] cwx\editor\gui\dwt\mainwindow.d:1162 991 - 994 - 997 - 1004 - 1006 - 1008 - 1010 - 1016 - 1019 - 1024 - 1031 - 1033 - 1035 - 1037 - 1039 - 1041 - 1043 - 1045 2017-02-02 21:52:45 [Build: 2017-02-01 19:52:12 Release (64-bit)] cwx\editor\gui\dwt\mainwindow.d:1163 [null this] org\eclipse\swt\graphics\GC.d, 3998: 0x00007FF6F1190BC3 0x00007FF6F0F44F2E 0x00007FF6F08394B9 0x00007FF6F08399C5 0x00007FF6F08347D6 0x00007FF6F08047F1 0x00007FF6F081F99D 0x00007FF6F08263EE 0x00007FF6F0E1B2BD 0x00007FF6F0E1B0A3 0x00007FF6F04819F5 0x00007FF6F04842F0 0x00007FF6F0A68367 0x00007FF6F1101C38 0x00007FF6F10D87F4 0x00007FF6F0FC1DB6 0x00007FF6F0FC016B 0x00007FF6F04B5EB5 0x00007FF6F0C128E6 0x00007FF6F118F242 0x00007FF6F118F14F 0x00007FF6F118F1DC 0x00007FF6F118F14F 0x00007FF6F118F089 0x00007FF6F0C12A14 0x00007FF6F11F0551 0x00007FFE563E8364 in BaseThreadInitThunk 0x00007FFE572D5E91 in RtlUserThreadStart 2017-02-02 21:52:45 [Build: 2017-02-01 19:52:12 Release (64-bit)] cwx\utils.d:133 Stack Trace -------- cwx\editor\gui\dwt\mainwindow.d-mixin-4334, 4334 cwx\editor\gui\dwt\mainwindow.d-mixin-4337, 4337 cwx\editor\gui\dwt\loader.d-mixin-130, 130 cwx\editor\gui\dwt\loader.d-mixin-131, 131 cwx\editor\gui\dwt\loader.d-mixin-132, 132 cwx\editor\gui\dwt\loader.d-mixin-139, 139 cwx\editor\gui\dwt\mainwindow.d-mixin-1174, 1174 cwx\editor\gui\dwt\mainwindow.d-mixin-1175, 1175 cwx\editor\gui\dwt\mainwindow.d-mixin-990, 990
-
repo owner 最新版で同じ事をしても出なくなったようであれば、一応問題はなくなったと言えるでしょうか?
謎の
null this
問題が残っていそうで非常に恐いというか、たぶんGCがどこかでメモリアクセス違反を起こしていそうな気がします。以前にもXP環境でGCの挙動がおかしかった事がありますが、ライブラリ内にバグがありそうですね。XPの問題を回避するためにGCのインスタンスを作り直したりしていましたが、今回も問題箇所に差し掛かる前に似たような対策を打ってみました(641df6f)。これでより確実に回避できるとよいのですが。
-
reporter - changed status to resolved
しばらく様子を見てみましたが、再現しなくなっているようなので解決ボタンを押させて頂きます。
攻略wikiのコメントに4?~5α2で特定のカードを削除すると強制終了するというご報告があったのですが、最新テスト版では再現しないとのことで、おそらくこのGCの作り直しで改善した模様です。
対応ありがとうございました。
- Log in to comment
ありがとうございます。
手許で再現せず、コードを見てみたのですが、どうもありえない箇所でありえないエラーが起きています。配列の範囲外エラーなのですが、その前にインデックスのチェックを行っているので不正なアクセスはしていないはずです。インデックスの検索で妙な値が入っているのかと思ってチェックを増やしてみたのですが、これで直るか不明です。最新のテスト版で試していただけないでしょうか。
理由はあります。困った事に問題の内容は「ビルドが遅くて容量も増える」です。D言語のコンパイラdmd 2.068以降、64bit(というかMS-COFF形式)のオブジェクト生成部にバグが入ったらしく、cwxeditorのコードをまとめてビルドしようとするとコンパイラが落ちるようになってしまいました。これを回避する方法は、コードをまとめず個別にビルドする事ですが、その結果としてコードの重複が増えてサイズが激増しました。しかもデバッグ情報を含めると個別ビルドすら落ちるので、それも諦めなければならなくなりました。
そのうち他の誰かが同じ問題に引っかかって報告し、直されるだろうと思って待っているのですが、まだ直っていません。dmdのバグトラッカへ英語で報告する必要がありますが、私は英語が壊滅的に苦手です。いずれ腹をくくる必要がありそうだと思いつつ、まだビルドできないでもないのでぐずぐずしている、というのが現状です。
とはいえ、デイリービルドが大きすぎるのは仰る通り問題です(なぜかそこには気づかなかった)。なので、今回から32bit版と64bit版のビルドを個別に出すようにしました。少しはましになるといいのですが。