デバッグ環境の使用 - 2023.2 日本語

AI エンジン ツールおよびフロー ユーザー ガイド (UG1076)

Document ID
UG1076
Release Date
2023-12-04
Version
2023.2 日本語

Vitis IDE デバッグ環境には、GDB などの従来の GUI ベース デバッグ環境にある多数の機能が含まれています。コードにブレークポイントを追加、コードの特定の行、ループ、または関数をステップオーバーまたはステップイン、変数のステートを確認して特定の値に変更できます。これらは、Vitis IDE デバッグ環境の機能の一部です。

Debug パースペクティブを開くと、Debug ビューなどのいくつかのビューが表示されます。デバッグ プロセスでは、呼び出しスタック、ブレークポイントのコード、ステップ オーバー ステート、[Breakpoints] ビュー、[Variables] ビュー、[Registers] ビュー、[Disassembly] ビュー、[Pipeline View] など、デバッグ ステートを示す複数のビューが表示されます。

Debug ビューには、デバッグ中のコアのステートが表示されます。次の図に示すように、デバッガーが停止した位置 (ファイルとそのソース コードの行)、実行されている操作 (ブレークポイント、ステップ オーバーなど) が表示されます。

図 1. [Debug] ビュー

次の図に示す Breakpoints ビューには、現在設定されているブレークポイントが表示されます。チェック マークがオンの場合、そのブレークポイントはイネーブルになっています。チェック マークをクリックしてオフにすると、そのブレークポイントはデバッグ中ディスエーブルになります。これにより、コードでブレークポイントを追加したり削除したりせずにブレークポイントを制御できます。

図 2. [Breakpoints] ビュー
重要: AI エンジン シミュレータでのデバッグまたは協調シミュレーションでは、AI エンジン タイルごとに 4 つのブレークポイントがサポートされます。TCF フレームワークは、デフォルトでは AI エンジン カーネルの main() で停止します。while 文に設定されたブレークポイントは、2 つのブレークポイント リソースを消費します。この問題を回避するには、ブレークポイントを while ループ内に設定します。この場合、消費されるブレークポイントは 1 つのみです。

ソース レベル デバッガーでは、メモリまたはレジスタに割り当てられたソース変数をトレースできます。それらのロケーションおよび内容は、可視化可能です。ただし、すべての最適化がイネーブルになっていると、ソース変数のトレースは複雑になります。

  • ローカルのスカラー変数は、通常レジスタにあり、実行のさまざまな段階でさまざまなレジスタにあります。
  • メモリに割り当てられた変数は、常に直接アップデートされるわけではありません。たとえば、グローバル変数は、ループの前にあるレジスタにロードできます。ロードされると、ループ内のレジスタ内で操作され、ループの後メモリにのみ格納できます。これを、最適化による冗長格納の削除と呼びます。
  • 同様に、1 行のソース コードが最終的なオブジェクト コードに分散している場合、ソース コードのステップ スルーが困難になります。