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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
1031
しのみスタック領域のオーバーフロー4解決


しのみ

リンク

2010/10/31(Sun) 01:26:51|NO.35588

スタック領域のオーバーフローについて
エラーが出てその行を見るとcelputの命令が書かれているのですが
どういうことなのでしょうか
スタック領域とかってgosub命令のときのサブルーチンとかrepeat〜loopとかを記憶してるメモリ領域ですよね
ちなみにプログラムのほうは結構gosubの中にgosubその中に・・・そしてreturnしてreturn
と結構ありますが何十にも重なっているわけでもないのですが
あとこれは余談なんですが
自分の思っていた処理と違う動きをしたときに今はコード中の何行目の命令を実行してるとかいうのはわかりませんかね?



この記事に返信する


(´ω`)

リンク

2010/10/31(Sun) 02:36:24|NO.35591

スタックのオーバーフローについては、もういちど、gosub〜returnの関係を見直してみてください。
あちこち飛びすぎてると、自分でも知らないうちに入れ子構造になってたりするものです。

トレースについては、ラベル毎に特定の変数に値を入れる、という手があります。


gosub *jump01 <中略> *jump01 nowlabel = "*jump01" <後略>

こうしとけば、特定の変数を見れば最後に通ったラベルがわかりますから、ソースの追いかけが
多少楽になります。
ログファイルに通ったラベルを順次出力するマクロを作るとさらに楽。(´ω`)



ANTARES

リンク

2010/10/31(Sun) 03:29:53|NO.35593

 titleでlooplevとsublevを表示してみれば、とりあえず
ネストレベルが異常に増えているかどうかはわかります。

>自分の思っていた処理と違う動きをしたときに今はコード中の
>何行目の命令を実行してるとかいうのはわかりませんかね?
 今とはいつのことですか? それをどうやって特定しますか?



KA

リンク

2010/10/31(Sun) 23:07:20|NO.35607

エラー表示が、必ずその行を表示するとは限りません。
文法や記号を間違えていると、関係ない行でエラーになることはたまに有ります。
そこだけではなく、前後の関係もチェックしましょう。

>>あとこれは余談なんですが
 どんなプログラムか分かりませんが、1処理毎にキー待ちさせましょう。
 おかしな動きと思ったときには、処理が進んでいますので。



しのみ

リンク

2010/11/1(Mon) 18:37:23|NO.35631

返事が遅くなってしまいすみませんでした
いろいろ工夫してみたところエラーは出なくなりました
確かにその行のエラーは関係なかったです
ご返答ありがとうございました



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