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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0528
バイス現在値7解決


バイス

リンク

2006/5/28(Sun) 03:31:13|NO.886

現在実行しているスクリプトの行を表示させたいのですが・・・



この記事に返信する


HK

リンク

2006/5/28(Sun) 10:54:10|NO.890

表示しても値の更新が早すぎて見えないよ。



Drip

リンク

2006/5/28(Sun) 12:25:38|NO.891

Dripです。

 バイスさん、こんにちは。実行行表示は非常にありがたい機能ですね。
複雑なプログラムを組んでいると、突然メインループ中にどこか知らない行にすっとんでいって
しまうことがありますし(特にHSP3では。)、実行行を表示できれば非常に助かります。
 しかしどういうわけかHSP2にあったはずの実行行を表示する機能がHSP3にはなく、
しかもエラー発生時に報告されるエラー行がずれるバグ付きです。
エラー行がずれるサンプルを以下に示します。

#module x y #global mes a(1,2)
本来なら3行目にエラーが検出されるはずですが、HSP3β3では8行目(!)に検出されます。
古いHSP3では4行目以降に検出されます。
エラーが発生した行を特定することも出来ず、実行行も表示できない現状は
何とかした方が良いと思います。



kz3

リンク

2006/5/28(Sun) 13:45:54|NO.892

えっとデバッグウィンドウ作成中なのですが( 以下作成中のデバッグウィンドウをddwと称す( 宣伝^^; ) )、
標準のデバッグウィンドウには行番号表示機能はありますが、
stop命令が実行されたときか、
ステップ実行( デバッグウィンドウの停止ボタンと次ボタン )時しか更新されないようになってます。( 多分 )

常に書き換えていると本スクリプトの実行に影響( 速度とか )があってそのようにしているのだと思います。
なので常に行番号を書き換えるようには出来るかもです。( 多分 )

エラー時の行番号表示は、おにたまさんもどこかでチラっと言っていましたが、
いろいろな要因が絡んでいるそうです。
多分、先に述べたstopかステップ時しか更新されないなども影響しているかもです。


あと、恐らく本来やろうとしていることとは違うと思いますが、
「__line__」マクロはご存知ないのでしょうか?

プリプロセッサ処理によってコンパイル前に「__line__」は、
それが書かれた行番号に置換されます。

ので、例えば...

#define dmes(%1) mes ""+__line__+":"+%1 dmes "Hello" dmes "Hot Soup Processor"
というようなことが出来ます。
自由度は少ないですが、何かに使えます。



Drip

リンク

2006/5/28(Sun) 14:13:53|NO.893

Dripです。

 kz3さん、ご指摘有難うございます;
すみません。プログラムを停止してデバックウィンドウを凝視してみたところ、
実行行が書かれている個所を発見することができました。
(しかし、stopが実行された時と停止した時のみしか参照できないのは少々困りものですね;
 デバック時は処理速度は気にする必要無いと思います。HSP2みたく、せめてawaitとwait時等、
 システムにアイドルが与えられた時に更新する仕様にしていただければありがたいです。)

 私はHSP2から来ているのでまさかあのようなところに書かれているとは思ってもいませんでした;
「line:」という表示も、「何の線の値を意味しているのか?」と捕らえてしまう方もいらっしゃる
でしょうし、初心者に対しても不親切だと思います。
もう少しわかりやすく表示していただけるとこうした見落としも無くなるのではないでしょうか。

 尚、実行行ずれに関してこちらでわかっていることをお話させていただきますと、HSP3β3では

・#moduleが追加されるたびに何行かずれる。 ・#module mod x z とモジュール変数の指定がされることで何行かずれる。 ・デバックウィンドウで表示される行もずれる。
ということがわかっています。また、HSP3のバージョンによってずれる量、条件がかわる模様です。
(HSP3初回リリース版では、#moduleの宣言のみでは行のずれを確認できませんでした。
 モジュール変数を宣言した時点で1行ずれました。)
他にも要因があるかもしれませんが、#moduleの宣言が問題に大きく関与していることは確かなようです。
ご検証のお役に立てれば幸いです。



774

リンク

2006/5/28(Sun) 15:18:26|NO.894

assertってのがあるんだけど・・・


assert aa = 5 repeat mes aa aa++ loop

assertがある行で実行を停止し、
デバッグウィンドウの次行ボタンを押すたびに
一行進む、停止を繰り返す。(その時の行数や変数の内容も見れる)
実行ボタンを押すとstop等やassertまで普通に実行する
assertをスルーする条件も設定できる

っていう便利なのが・・・



774

リンク

2006/5/28(Sun) 15:20:26|NO.895

wait入れるの忘れてたorz
上のソースそのままで実行ボタンは押さないでね



バイス

リンク

2006/5/31(Wed) 08:14:02|NO.916

自分も表示できると便利だと思ってたんですが。
参考になりました



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