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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1221
YSRなんかHSP3.32β2でassertの挙動がおかしいんだが・・・3解決


YSR

リンク

2012/12/21(Fri) 22:43:32|NO.51300

いや、別にデバッグ自体は出来ている。
ただ、HSP3.32β2でassert命令を使うと、実行中のソフトのウィンドウを閉じてもDebug Windowが閉じないんだ……。
タスクマネージャを見る限りでは、hsp3.exeがなぜか残っている模様。
逆に、実行中のソフトとDebug Windowが両方表示されている状況でhsp3.exeを強制終了すると両方閉じる。
ちなみに「あらゆるコードでも」というわけではない。
簡単なコードで再現できないかと試行錯誤してみたが無理だった。
自分が開発中のソフトでは、別ファイルに分けたモジュール内のif+中括弧内部にassert命令を仕込んでいて、そこでassertで止めた時にこの問題を知った。
HSP3.31で同じ現象は起きなかったので、多分エンバグなんだろうと思う。

エンバグついでに。次のコードを実行させてみてほしい。

#module #defcfunc square int t assert return t*t #global mes square(10) stop
偶然発見したんだが、このコードを実行→Debug Windowが出ている時にソフトを終了(×印で閉じる)させると、
HSP3.31→何も起こらず両方のウィンドウが閉じる
HSP3.32β2→「関数の戻り値が設定されていません。」(Error 40 in line 3)と表示されて両方閉じる
と、挙動が違うんだ。
どこをどう見ても戻り値は設定されているはずなんだけど……。謎である。

仕方ない、イチイチDebugWindowを消すのは煩わしいし、しばらくはHSP3.31に戻すか……。



この記事に返信する


fortunehill

リンク

2012/12/21(Fri) 23:44:23|NO.51301

HSP3.32β1の時も同じでしたWM_DESTROY関係(終了処理)の問題が解決すれば治ると思って居ましたが
HSP3.32β2でも改善されていませんでしたのでHSP3.32β3を待ちます。



YSR

リンク

2012/12/22(Sat) 01:10:40|NO.51302

後、個人的にはDebugWindowにも×ボタンが欲しい今日この頃。
もちろん閉じると、DebugWindowの「実行」を押したのと同じ効果がある。
無駄機能に見えるかもしれないが邪魔なウィンドウが一旦消えてくれるのは便利だと思う。

配列表示の二次元以降対応は……マターリ待つか。



GrapeColor(DION)

リンク

2013/1/14(Mon) 12:32:52|NO.51866

私も本日、HSP3.31を使っていたら同じ事が起こりました。
不定期に起きるので原因は一切不明です。
OSはWinXP Pro 32bitです。



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