IDE でローカルおよびリモート デバッグを実施する際には、以下の制約が課せられます。
- COBOL プロジェクトのデバッグ セッションを開始する際に、わずかな遅延が発生する可能性があります。この遅延は期限切れチェックによるものです。このチェックは、プロジェクトでリビルドを実施する必要があるかどうかを判別するために行われます。
- Windows 10 および Windows Server 2016 の初期ビルドで .gnt コードをデバッグする際に、COBOL ブレークポイントで実行が停止しません。この問題は以前のバージョンの Windows でのみ発生するため、使用しているオペレーティング システム用の最新の Windows Update をインストールすることで、この問題を解決できます。
- コピーブックで COPY… REPLACING を実行する COBOL プログラムがプロジェクトに複数ある場合、[自動変数] ウィンドウでは、最初の COBOL プログラムで検出された値の置き換えのみが使用されます。
- ヒットした監視ポイントが設定されているデータを変更する文の後に文がない場合、デバッガーはその COBOL 監視ポイントを無視します。
- デバッガーはネイティブのオブジェクト指向プログラムを完全にはサポートしていません。たとえば、QuickWatch の使用時や [Watch] ウィンドウでのデータ名の入時にエラーが表示されます。
- アプリケーションがデバッグ中に raceOnRCWCleanup (マネージ コード デバッガー アシスタント) を受け取った場合は、WPF アプリケーションがクローズ/シャットダウン処理を実行していないことが原因である可能性があります。
これを解決するには、App.xaml.cbl ソースに次のメソッドを追加します。
method-id OnExit protected override.
procedure division using by value e as type ExitEventArgs.
invoke super::OnExit(e)
*> Insert any other closedown code before the stop run statement.
stop run.
end method.
詳細については、http://msdn.microsoft.com/ja-jp/library/ms743714.aspx#Application_Shutdown を参照してください。
- ローカル変数にウォッチを追加することはできません。
- スタック オーバーフロー状態の場合、コア ダンプ ファイルは作成されません。
- プロジェクトに複数のプログラムが含まれていて、現在デバッグ中のプログラムではないプログラム内のデータ項目にカーソルを合わせると、デバッグ ツールチップに誤った値が表示されたり、デバッグ ツールチップがまったく表示されないことがあります。これは、コンテキストが現在デバッグ中のプログラムであるためです。これは想定内の挙動であり、Visual Studio のデフォルトの動作です。
現在のコンテキストに該当するプログラムをポイントするには、次の手順を行います。
- プロジェクトのデバッグを開始し、コードにステップインします。
- [] をクリックして、呼び出し履歴を表示します。
デバッグ中のプログラムが黄色の矢印で示されます。このプログラムは現在のコンテキストでもあります。
- 呼び出し履歴のリストにアプリケーションの他のプログラムが入力されるまで、コードのステップインを継続します。
- 呼び出し履歴のリストで、クエリを実行するプログラムをダブルクリックします。
これにより、リストでそのプログラムの先頭に緑の矢印が表示され、現在のコンテキストであることが示されます。
- エディターを使用し、クエリを実行する項目への参照を含んでいるプログラムまたはコピーブックを開きます。
- データ項目にマウス カーソルを移動します。
デバッグ ツールチップに正しい値が表示されます。
- x64 または Any CPU 用にコンパイルされたアプリケーションをデバッグする際に、DateTimePicker イベント ハンドラー内のブレークポイントに達すると、Visual Studio がハングします。これは、Microsoft の既知の問題です。この問題を回避するには、デバッグ中にアプリケーションを 32 ビット アプリケーションとして構成します。