ヘテロジニアス・アプリケーションのコプロセッサー上でのみのデバッグ

このトピックは、インテル® MIC アーキテクチャーにのみ適用されます。

アプリケーションをコプロセッサー上でのみ手動で開始しアタッチする場合は、プロセスに無限のワーカーループが含まれていなければなりません。

void attach_idb() {
    volatile int loop = 1;
    do {
        volatile int a = 1;
    } while (loop);
}

デバッグするコードが実行される前に attach_idb() を呼び出します。関数 attach_idb() は、オフロード領域で実行されなければなりません。カード上のプロセスにアタッチした後に、while ループ内にブレークポイントを設定し、実行を続けます。ブレークポイントで停止したら、ループを 0 に設定し、必要に応じてブレークポイントを設定して、実行を続けます。

コプロセッサー上でのみアプリケーションをデバッグするには、次の操作を行います。

  1. 次のコマンドを実行してターゲットデバッガーを起動します。

    idbc_mic -tco -rconnect=tcpip:coprocessor-ip-address:port

    コプロセッサーに割り当てられる IP アドレスの情報については、MPSS のドキュメントを参照してください。 デフォルトのポート番号は 2000 です。

    例えば、デフォルトのポート番号を使用する最初のインテル® MIC アーキテクチャー・デバイスには、idbc_mic -tco -rconnect=tcpip:192.168.1.100:2000 と入力します。
  2. アプリケーションが同じシステムでビルドされていない場合やデバッグ情報を含む共有オブジェクトが元の場所から移動されている場合は、アプリケーションのデバッグ情報を検索する場所をデバッガーに指示する必要があります。 次のコマンドを使用します: set solib-search-path path[:path]
  3. アプリケーションを実行してデバッガーをアタッチします。

    無限のワーカーループを使用してアプリケーションに attach を待機させる方法は、上記を参照してください。

    次のコマンドを入力します: attach pid /opt/intel/composerxe_mic/compiler/lib/mic/offload_main

デバッガーは、アプリケーションのプロセスにアタッチして、プロセスを停止します。

ターゲット側のアプリケーションがコンパイラーやドライバーに含まれない共有オブジェクトに動的にリンクされており、それらを検索するために LD_LIBRARY_PATH を設定する必要がある場合は、ライブラリーがロードされる前にブレークポイントを設定します。 その場所でデバッガーが停止したら、コマンド set environment LD_LIBRARY_PATH を実行して変数を設定できます。 アプリケーションで必要なその他の環境変数についても同様の処理を行います。


このヘルプトピックについてのフィードバックを送信