Basic プログラムのデバッグ

ブレークポイントとシングルステップの実行

Basic プログラム中のエラー行を探す場合、シングルステップを実行することで、コードを 1 行ずつ確認できます。この機能を利用すると、個々のステップの実行結果をその場で確認できるため、エラーの発生状況を簡単に追跡することができます。現在実行中の行については、ブレークポイントの設定列にマークが表示されます。また、特定の行でプログラムの実行を一時中断させたい場合は、該当行にブレークポイントを設定できます。

エディターウィンドウの左側には、ブレークポイント 設定用の列があり、ここをダブルクリックすることで、該当行へのブレークポイントの設定と解除ができます。プログラム実行時にブレークポイントの設定列に到着すると、プログラムの実行が一時中断されます。

シングルステップ によりプログラムを実行させるには、アイコン シングルステップ をクリックしますが、この場合は個々のプロシージャーや関数の内部に入り込む形でステップ実行が行われます。

処理ステップによりプログラムを実行させるには、アイコン 処理ステップ をクリックしますが、この場合は個々のプロシージャーや関数は 1 つのステップとみなされるので、これらの内部に入り込む形でのステップ実行は行われません。

ブレークポイントのプロパティ

ブレークポイントのプロパティを設定するには、ブレークポイントの設定列でコンテキストメニューを開きます。

ブレークポイントの アクティブ非アクティブ は、コンテキストメニューのアクティブを選択して切り替えます。非アクティブにしたブレークポイントは、プログラムの実行を一時中断させません。

ブレークポイントのコンテキストメニューで プロパティ を選択するか、ブレークポイントの設定列のコンテキストメニューで ブレークポイント... を選択すると、その他のブレークポイント用オプションを設定するためのダイアログ ブレークポイントが表示されます。

ここでは、すべての ブレークポイント が、ソースコード中の該当行の行番号として一覧表示されます。 選択したブレークポイントを有効にするかどうかは、 アクティブ チェックボックスの設定により切り替えることができます。

ひととおり実行 には、プログラムの実行を一時中断するまでにブレークポイントを無視させる回数を指定できます。この値を 0 に指定したブレークポイントでは (既定値)、その行で常に一時中断が行われます。

削除 をクリックすると、プログラムに設定したブレークポイントを削除できます。

変数の値の監視

変数の値がどのように変化するかは、オブザーバ ウィンドウに登録することで確認できます。オブザーバのリストに変数を登録するには、変数名をテキストボックス オブザーバ に入力して Enter キーを押します。

値が表示されるのは、スコープ内にある変数だけです。現在のスコープのソースコード内で宣言されていない変数については、その代入値ではなく「Out of Scope」と表示されます。

オブザーバウィンドウには、配列の内容を表示させることもできます。オブザーバテキストボックスを使って配列名を指定する場合、インデックスを指定しなければ、配列全体の値が表示されます。

ヒント

実行時にエディター上で事前定義された変数にマウスポインターを重ねると、ポップアップボックスにその変数の値が表示されます。


呼び出しウィンドウ

プロシージャーや関数の呼び出し状況を表示します。 現在の実行中のソースコードにおける、関数やプロシージャー相互の呼び出し関係を把握したい場合、この機能が有用です。

実行時エラーの一覧

1 ある例外が発生しました

2 シンタックスエラーです

3 Return に対応する GoSub がありません

4 間違ったエントリーです; 再試行してください

5 無効なプロシージャー呼び出しです

6 オーバーフローです

7 メモリー不足です

8 配列がすでに宣言されています

9 インデックスが範囲外です

10 定義が重複しています

11 ゼロによる除算が行われました

12 変数が未定義です

13 データ型が一致しません

14 無効なパラメーターです

18 ユーザーによる割り込みが発生しました

20 エラーが発生していないのでResumeは実行できません

28 スタックメモリーが不足しています

35 Subプロシージャまたはfunctionが未定義です

48 DLLの読み込みエラーです

49 DLL呼び出しが不正です

51 内部エラーが発生しました

52 ファイル名または番号が不正です

53 ファイルが見つかりません

54 ファイルモードが不正です

55 ファイルが既に開かれています

57 デバイスI/Oエラーです

58 ファイルがすでに存在します

59 レコード長が不正です

61 ディスクに空き容量がありません

62 EOFを越える読み取りです

63 レコード番号が不正です

67 ファイル数が多すぎます

68 デバイスが使用できません

70 アクセスが拒否されました

71 ディスクが準備されていません

73 機能が実装されていません

74 別ドライブへ名前を変更できません

75 パスまたはファイルのアクセスエラーです

76 パスが見つかりません

91 オブジェクト変数が設定されていません

93 無効な文字列パターンです

94 ゼロを使うことは禁止されています

250 DDEエラーです

280 DDE接続への応答を待っています

281 DDEチャンネルが使用できません

282 DDE接続開始に応答するアプリケーションがありません

283 DDE接続開始に応答するアプリケーションが多すぎます

284 DDEチャンネルがロックされています

285 外部のアプリケーションはDDE操作を実行できません

286 DDEの応答待ちでタイムアウトしました

287 DDE操作の間にユーザーがエスケープを押しました

288 外部のアプリケーションがビジーです

289 DDE操作にともなうデータがありません

290 データが不正な形式です

291 外部のアプリケーションが終了しました

292 DDE接続に割り込みまたは変更が入りました

293 開いたチャンネルがないのにDDEメソッドが呼ばれました

294 不正なDDEリンク形式です

295 DDEメッセージが失われました

296 リンクの貼り付けは既に行われています

297 不正なリンクトピックのためリンクモードが設定できません

298 DDEにはDDEML.DLLファイルが必要です

323 モジュールを読み込むことができません; 不正な形式です

341 無効なオブジェクトインデックスです

366 オブジェクトが利用できません

380 属性値が不正です

382 この属性は読み取り専用です

394 この属性は書き込み専用です

420 無効なオブジェクトリファレンス

423 属性またはメソッドが見つかりません

424 オブジェクトが必要です

425 無効なオブジェクトの使用です

430 OLE オートメーションはこのオブジェクトではサポートされていません

438 この属性またはメソッドはこのオブジェクトではサポートされていません

440 OLEオートメーションエラーです

445 オブジェクトがこの動作をサポートしていません

446 与えられたオブジェクトは名前付き引数をサポートしていません

447 与えられたオブジェクトは現在のロケール設定をサポートしていません

448 名前付き引数が見つかりません

449 引数は省略できません

450 引数の数が正しくありません

451 オブジェクトがリストではありません

452 無効な序数です

453 指定されたDLL関数が見つかりません

460 無効なクリップボード形式です

951 予期しないシンボルです:

952 予想されるのは:

953 シンボルが期待されています

954 変数が期待されています

955 ラベルが期待されています

956 値が適用できません

957 変数が既に定義されています

958 Subプロシージャまたは関数が定義済みです

959 ラベルが定義済みです

960 変数が見つかりません

961 配列またはプロシージャが見つかりません

962 プロシージャが見つかりません

963 ラベルが未定義です

964 不明なデータ型です

965 Exitが期待されています

966 ステートメントブロックがまだ閉じていません: 次のものがありません

967 括弧が対応していません

968 シンボルが別途定義済みです

969 パラメーターがプロシージャと対応しません

970 数値に無効な文字があります

971 配列の大きさがなければなりません

972 Ifを伴わないElse/EndIfです

973 not allowed within a procedure

974 not allowed outside a procedure

975 大きさの仕様が合っていません

976 不明なオプションです:

977 定数が再定義されました

978 プログラムが大きすぎます

979 文字列または配列は許されません

1000 オブジェクトはこの属性を持っていません

1001 オブジェクトはこのメソッドを持っていません

1002 必要な引数が足りません

1003 引数の数が無効です

1004 メソッドの実行エラーです

1005 属性を設定することができません

1006 属性を決定することができません