ネイティブ・アプリケーションのコプロセッサー上でのみのデバッグ

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

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

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

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

ネイティブ・アプリケーションをコプロセッサー上でのみデバッグする場合は、ターゲットデバッガーを使用してアプリケーションを開始するか、コプロセッサー上でアプリケーションを開始してデバッガーをアタッチします。

  1. アプリケーションのデバッグビルドをコプロセッサーにアップロードします。
  2. 次のコマンドを実行してターゲットデバッガーを起動します。

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

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

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

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

    attach pidhost-side-symbol-info-file-path/file-name と入力します。

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

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


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