喫茶XRAYトップページ

[スレッド全体
]

[9699] Re9:無限ループの発見方法返信 削除
2016/4/4 (月) 20:46:54 taki
▼ nyさん

> while内の条件判断が怪しいのですが、無限ループ中にコード内に中断マークを複数張っても止まらず、
> 問題個所を発見できません。
> 実行を中断させると、コードに戻れました。


Delphi2006のデバッグ機能がどうだったか分からないのですが、
ブレークポイントが設定できるのであれば、
ステップ実行、トレース実行とかも使えると思うのですが。
問題解決はジミチにコードを追っかけるしか方法はないと思います。

whileループ内の命令にブレークポイントを設定しても停止
しないのであれば、igyさんが指摘されているようにwhile
ループに入る前の問題でしょうね。

最初から1つ1つ命令をステップ実行するのは大変なので、
「カーソルの位置まで実行」というのもありますので、
試してみてはいかがですか。
つまり、ここまでは大丈夫という命令にカーソルを置いて、
「カーソルの位置まで実行」をすると、そこまで一気に
進めますので、そこからステップ実行で確かめられますよ。

もしDelphi2006のデバッグ機能の事、間違っていたらごめんなさい。


[9700] Re10:無限ループの発見方法返信 削除
2016/4/4 (月) 23:03:19 ny
お騒がせしています。
再現性、確認できました。
無限ループ箇所も発見できました。
やはり機能追加に伴う「while内」に不具合ありでした。

DelphiVer1 Ver2>ターボDelphiの流れで現在に至っています。
Win10の環境になってさすがに「Delphi 10」に切換えようと体験版をやってみましたが、
ターボDelphiのコードでは不具合があって諦めています。
(マウスのスクロールボタン・文字列の長さLenの返り値の違いなど)
なので、「Update2とHotfix」の適応についても現環境下では見送りました。

皆様ありがとうございました。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82