HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0124
しまくろねこHSP3.5β3のエディタ(hsed3.exe)で実行時強制終了13解決


しまくろねこ

リンク

2016/1/24(Sun) 13:09:27|NO.74267

こんにちは。

タイトルの通りなのですが、他の方で同じ状況の方おりますでしょうか?

先日βテスト版であるHSP3.5β3が公開されましたので、ファイル(.as/.hsp)の関連付けをβ2からβ3に変更したのですが1つ困った現象が起こっています。
エクスプローラ上からファイル(.as/.hsp)をダブルクリックしてエディタ(hsed3.exe)に表示されたソースを実行すると、初回の起動(F5)は通常起動するのですが、初回で起動されたプログラムのウィンドウを[X](閉じるボタン等)で終了し、2回目の起動(F5)をするとウィンドウが表示される前に以下のメッセージダイアログ(*1)が表示され、エディタ(hsed3.exe)もろとも強制終了してしまいます。
ダウンロードしたzipファイルをダウンロードしなおしてみたり、ファイルの関連付けをレジストリ(*2)から完全削除してみたりしたのですが現象は治りませんでした。
OSはWindows8.1です。
ファイルの関連付けが失敗してるのでしょうか?

現在わかっていることは以下のとおりです。

・2回目の起動時に強制終了するソースとしないソースがある。(起動時に強制終了するソースの共通点はDishを使用していることぐらい)
・エディタ(hsed3.exe)のメニュー(ファイルを開く)からソースを開いて実行した場合は2回目以降も強制終了せずにプログラムが走る。



(*1)  HSP スクリプトエディタ は動作を停止しました。  問題が発生したため、プログラムが正しく動作しなくなりました。  プログラムは閉じられ、解決策がある場合は Windows から通知されます。 (*2)  HKEY_CURRENT_USER\Software\Classes\.[拡張子]  HKEY_CURRENT_USER\Software\Classes\[拡張子]_auto_file  HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.[拡張子]  HKEY_CLASSES_ROOT\Applications\[アプリケーション(ファイル)名]



この記事に返信する


しまくろねこ

リンク

2016/1/24(Sun) 14:22:26|NO.74269

すみません。
書き忘れておりました。
以下がイベントビューアのapplicationのログに残されていた情報です。


障害が発生しているアプリケーション名: hsed3.exe、バージョン: 3.3.1.0、タイム スタンプ: 0x555b12d2
障害が発生しているモジュール名: hspcmp.dll、バージョン: 0.0.0.0、タイム スタンプ: 0x566e99c3
例外コード: 0xc0000005
障害オフセット: 0x00010656
障害が発生しているプロセス ID: 0x80
障害が発生しているアプリケーションの開始時刻: 0x01d15656bc8b64fc
障害が発生しているアプリケーション パス: D:\Tool\hsp35beta3\hsed3.exe
障害が発生しているモジュール パス: D:\Tool\hsp35beta3\hspcmp.dll
レポート ID: fe936465-c249-11e5-9753-971639070372
障害が発生しているパッケージの完全な名前:
障害が発生しているパッケージに関連するアプリケーション ID:



おにたま(管理人)

リンク

2016/1/25(Mon) 21:27:49|NO.74298

HSP3.5β3についてのご報告ありがとうございます。
エディタ(hsed3.exe)そのものについては、今回更新を行なっていないので、hspcmp.dllの方に問題があるのかもしれません。
ファイル(.as/.hsp)から起動するのではなく、普通にhsed3.exeを起動して同じスクリプトを実行した場合は問題ないでしょうか?
こちらでも原因など調べてみて、今後のバージョンに反映させたいと思います。



ue_dai

リンク

2016/1/25(Mon) 21:49:07|NO.74299

具体的にどのスクリプトで問題が生じるのですか?



しまくろねこ

リンク

2016/1/25(Mon) 23:32:40|NO.74306

>おにたま(管理人)さん
>ファイル(.as/.hsp)から起動するのではなく、普通にhsed3.exeを起動して同じスクリプトを実行した場合は問題ないでしょうか?
はい。普通にhsed3.exeを起動して同じスクリプトを実行した場合は特に問題ないです。
ご面倒をお掛けしますが、現象が起きるソース一式をメール(onitama@onionsoft.net)に添付してお送りしてもよろしいでしょか?

>ue_daiさん
去年のコンテストで発表した作品(Dish使用)で現象が発生しそれ以外の過去の作品(Dish使用)でも現象が出るのですが、同じDishを使用しているものでも現象が出ないものもあったり、最小限のソースで現象が出せればそれが一番理想なのですが・・・。



774

リンク

2016/1/26(Tue) 18:24:38|NO.74309

横槍失礼します。
Dish使用で問題が発生するとの事ですが、ファイルの場所という可能性は無いでしょうか?

・何らかの原因で関連付けからのパス取得が巧く出来てない
・1回目で作成したオブジェクトファイルを読み込もうとするも見つからずエラー
・道連れでエディタも強制終了
という流れなら辻褄も合いそうな気がします。
パス関連で問題となりそうなのは、空白文字・全角文字・UAC関連・パスの長さ、辺りでしょうか…

この場合、ソース添付したとしても見つからない部分ですので、念の為確認されてみては如何でしょうか。



しまくろねこ

リンク

2016/1/26(Tue) 21:48:33|NO.74316

>774さん
こんにちは。
ご指摘ありがとうございます。

ファイルの場所の可能性についてですが、調べてみたところ可能性としては低そうな感じです。
以下の2つの場所のソースでそれぞれ現象が起きております。

D:/HSPsource/Android/piyoko_quest/piyoko_quest.hsp D:/HSPsource/Android/piyoko360/piyoko360.hsp
また、HSP3.5β3とβ2のフォルダは以下の場所にあります。

D:/Tool/hsp35beta3 D:/Tool/hsp35beta2
それから私の最初の書き込みの言葉に語弊があったかもしれないので訂正します。
「初回の起動」というのは正しくは、
".hsp(HSP3.5β2にてobjファイル作成済み)ファイルからhsed3.exe(エディタ)が起動され、エディタ起動後のプログラム実行1回目は正常に起動する"
ということです。

1回目の実行したプログラムを[X]ボタン等で閉じて、エディタは閉じずそのままで再度F5等でプログラムを実行しようとすると「HSP スクリプトエディタ は動作を停止しました」と表示され落ちてしまいます。



HSP3.5β3とβ2でそれぞれ以下を試してみました。

(A): hsed3.exeのメニュー(ファイルを開く)から.hspファイルを開き実行してみる。

 β3...1度目の実行はプログラムが起動される。一度プログラムを終了してエディタはそのままで再度実行してもプログラムは正常に起動されエディタは落ちない。
 β2...β3と同じ


(B): hsed3.exeに.hspファイルをD&Dでソースを開き実行してみる。

 β3...1度目の実行はプログラムが起動されるが、一度プログラムを終了してエディタはそのままで再度実行すると「〜は動作を停止しました。」と表示されエディタが落ちる
 β2...2度目の実行でもエディタは落ちない


(C): ファイルの関連付けを削除するため、下記のレジストリを削除(削除後にOSの再起動)後、β3とβ2でそれぞれファイルの関連付けをし直して.hspファイルからhsed3.exe(エディタ)を起動しプログラムを実行してみる。(※β3でテスト後、再度レジストリを削除してβ2にファイルの関連付けしてからテスト)

 β3...1度目の実行はプログラムが起動されるが、一度プログラムを終了してエディタはそのままで再度実行すると「〜は動作を停止しました。」と表示されエディタが落ちる
 β2...2度目の実行でもエディタは落ちない

HKEY_CURRENT_USER/Software/Classes/.as HKEY_CURRENT_USER/Software/Classes/.hsp HKEY_CURRENT_USER/Software/Classes/as_auto_file HKEY_CURRENT_USER/Software/Classes/hsp_auto_file HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/FileExts/.as HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/FileExts/.hsp HKEY_CLASSES_ROOT\Applications\hsed3.exe


とりあえず私の分かる範囲はここまでです。
申し訳ありません。



おにたま(管理人)

リンク

2016/1/26(Tue) 22:23:27|NO.74317

>しまくろねこ さん
状況のご報告ありがとうございます。こちらでは、ちょっと再現できませんでした。
HSP3Dishのサンプルスクリプト(sample/hsp3dish内の)でも落ちるものがありますか?
もし、可能であれば、確実にエラーが発生するスクリプトをメール(hsp@onionsoft.net)で送付して頂いてもいいですか?
こちらで原因の方を調べてみたいと思います。



しまくろねこ

リンク

2016/1/26(Tue) 23:41:24|NO.74318

>おにたま(管理人)さん
こんにちは。
HSP3Dishのサンプルスクリプト(sample/hsp3dish内)何度もテストしてみましたが、どれ1つも落ちませんでした。
落ちてしまうスクリプトをメール(hsp@onionsoft.net)させて頂きました。
もしかしたら私の環境下でしか起きない現象なのかもしれません。そのときは大変申し訳ありません。
ご迷惑をお掛け致しますが、宜しくお願い致します。



774

リンク

2016/1/27(Wed) 19:24:28|NO.74329

的外れな指摘失礼致しました、問題が起こりそうなパスでは無いですね。

的外れついでに、条件が異なるので直接関係は無さそうですが…

#runtime "hsp3dish" //或いは hsp3hg
のように直接ランタイムだけを指定した場合、3.5だとエラー終了するようです。
一応ご報告という事で。



しまくろねこ

リンク

2016/1/28(Thu) 20:42:26|NO.74343

先ほどメールをお送り致しましたが、掲示板にもご報告させて頂きたいと思います。

おにたま(管理人)さんから送って頂きました[hspcmp.dll]を入れ替えてところ、以下の(A)〜(C)のパターン全てで現象が起こらなくなりました。

(A). [hsed3.exe]のメニュー(ファイルを開く)から.hspファイルを開きプログラムを実行
(B). [hsed3.exe]に.hspファイルをD&Dでソースを開きプログラムを実行
(C). ファイルの関連付けで.hspファイルから[hsed3.exe]を起動しプログラムを実行

次回リリース時までこれで開発を続けていきたいと思います。
お忙しい中ご対応して頂きありがとうございました。



おにたま(管理人)

リンク

2016/1/30(Sat) 00:11:47|NO.74358

皆様ご協力ありがとうございました。
しまくろねこさんのご報告で、不具合の確認ができました。
エラーの発生場所としては、hspcmp.dll内のCLabel::SetDefinitionでファイル名格納の最適化を行なっている部分でした。
#includeで多くのファイルを参照している場合などにエラーが発生すると思われます。
今後のバージョンでは修正対応していきたいと思います。
とり急ぎ、該当部分を無効にしたファイルをOneDriveの方に置いてありますので、現状で問題が発生している場合は、置き換えてご使用ください。
http://1drv.ms/1QjSlJ4



ue_dai

リンク

2016/2/1(Mon) 01:23:08|NO.74399

実際に強制終了する例をまだ作れていないので推測ではありますが、
def_file, def_line が CLabel::SetDefinition で代入されなかった場合に、
不定値のままになってしまうところがかなり怪しいです。
https://goo.gl/DvW603
失礼しました。



ue_dai

リンク

2016/2/1(Mon) 16:19:29|NO.74403

(追記)
尻切れでした。

前述の問題を修正したコンパイラを用意しましたので、
試してみていただけると助かります。
https://github.com/vain0/hsp3_uedit/releases/tag/fix_0032



ONION software Copyright 1997-2021(c) All rights reserved.