概要 - ブレーク ループ(Visual LISP IDE)

式は AutoLISP の基本的な構造単位で、Visual LISP は式を繰り返し読み込んだり、評価したり、出力することにより動作します。LISP のプログラミングでは、これを「読み込み - 評価 - 出力」ループといいます。

注: Visual LISP IDE は Windows でのみ使用可能です。

Visual LISP は、プログラムがデバッグのために中断されたり、一時停止しない限りは、トップ レベルの読み込み - 評価 - 出力ループで AutoLISP プログラムを実行しています。[コンソール]ウィンドウのプロンプトで式を評価して、通常のプロンプトが表示されるときも、トップ レベルで作業しています。

AutoLISP プログラムが中断されたり、一時停止すると、[コンソール]ウィンドウにコントロールが渡されて、ユーザはブレーク ループに入ります。ブレーク ループは、別の読み込み - 評価 - 出力ループで、オリジナルの読み込み - 評価 - 出力ループ下にネストされています。ブレーク ループを中断し、ブレーク ループ下で別の読み込み - 評価 - 出力ループを開始することができます。トップ レベルに対して、ネスト レベルのブレーク ループを「ブレーク レベル」といいます。

ブレーク ループに入ると、[コンソール]ウィンドウのプロンプトの前に、現在のレベルを示す番号が表示されます。

たとえば、プログラム内で最初にブレーク ループに入ると、プロンプトにそのことを示す番号 1 が付きます。

_1_$
注: ブレーク ループに入っている間は、AutoCAD ウィンドウに切り替えることはできません。

ブレーク ループに入っている間は、ブレークが発生した位置でプログラムによって実行されるすべての変数に読み書きアクセスできます。たとえば、いくつかのローカル変数宣言を含む関数内でブレークが発生した場合、これらの宣言と任意のグローバル変数にアクセスできます。このような変数の値は、[コンソール]ウィンドウのプロンプトに setq 関数とともに式を入力することで変更できます。

Visual LISP では、次の 2 つのタイプのブレーク ループがサポートされています。

継続できるブレーク ループ

継続できるブレーク ループは最も一般的なブレーク ループで、プログラムを段階順に実行し、デバッグしたいときに使用します。プログラム実行時に、一番最初に中断した位置で継続できるブレーク ループに入るには、次の方法のいずれかを使用します。

ブレークポイントで停止すると、次のようにして、以降のプログラムの実行をコントロールすることができます。

すべてのブレーク ループを抜けてトップ レベルに戻ると、[コンソール]ウィンドウのプロンプトが元の形式に戻ります(プロンプトの前に番号は付きません)。

継続できないブレーク ループ

継続できないブレーク ループは、エラーによりプログラムが中断し、[エラーでブレーク]オプションが有効化されていると、アクティブになります。継続できないブレーク ループでは、エラー環境ですべての変数にアクセスできますが、プログラムの実行を続けることも、いずれのステップ コマンドも実行できません。

継続できないブレーク ループに入っているときに AutoCAD をアクティブにしても、AutoCAD のコマンド ウィンドウでは何も入力できません。実際、コマンド ウィンドウにコマンド プロンプトが表示されません。しかし、AutoCAD の[コマンド]ウィンドウにうっかり入力しようとすると、AutoCAD のウィンドウにコントロールが返されるまで(つまり、ブレーク ループを抜けて AutoCAD のウィンドウをアクティブにするまで)、キーボードからの入力は待ち状態になります。その時点で AutoCAD は、入力内容がコマンド プロンプトに入力されたかのように評価します。

注: 継続できるブレーク ループと継続できないブレーク ループは、[デバッグ]メニューまたはツールバーで[ステップ イン]および[続ける]がアクティブであるかどうかをチェックすることにより区別できます。