タイトル : Re^2: ループ途中のデバッグについて 投稿日 : 2008/03/28(Fri) 10:06 投稿者 : 魔界の仮面弁士
別案として。 a = a + 1 Debug.Assert a <> 800 「a≠800」という条件を満たすなら、何もせずに通過しますが、 条件を満たさない(つまり、a=800)時には、一時停止します。 ------- 私の個人的な使い分けとしては: (1) ウォッチ式の「式が True のときに中断」を使う。 → 今回のようなパターンでは、この手法を使うことが多いです。 設定するには、コードウィンドウを右クリックして「ウォッチ式の追加」を選択し、 [式]に「a = 800」と書き、[ウォッチの種類]を「式が True のときに中断」にします。 (2) Debug.Assert によるアサーション → 仮定条件を作成するときに使います。 たとえば、自分で Function を作成したときに、そこに渡される引数の範囲が、 特定の範囲内にあるという前提で設計されている場合に、Debug.Assert を しかけておくと、実行時に、意図しない値が引数に指定されて実行された事を チェックする事ができます。 (3) Stop ステートメントによる一時停止 → 私は滅多に使いませんが、「開発環境では発生せず、実行環境でのみ 発生する問題」を検証するために仕掛けることがあります。 といった感じです。 ------- (1) や (2) は開発環境でのみ停止しますが、(3) は EXE にした後も停止対象です。 (1) の設定は、プロジェクトを開きなおすと失われます。 そのため、これはデバッグ作業の一時的な設定に用いられます。 (2) の方法は、アサーション チェック(値の正常性検証)に使うものです。 (その特性上、本来は今回のような場面で使うべきものではありません) 引数チェックなど、「プログラムのこの箇所で、必ず真であるべき条件」を 記しておくもので、開発終了後もそのままコード中に残しておく事ができます。 (3) の方法は、唯一、EXE にした後にも停止する方法です。 そのため、今回のような場面で使うのであれば、本番用のアプリに コンパイルする場合には、Stop コードを必ず除去しておく必要があります。 |