--- title: 'Intel Debugger' published: false taxonomy: category: - docs external_links: process: true title: false no_follow: true target: _blank mode: active --- [toc] ## 利用環境{#enviroment} ### 利用できるバージョン・システム{#version} バージョン | システムA | システムB | システムC --------------------------------------- | ----- | ----- | ----- Intel Debugger Version 14.0 | ― | + | + \+ : 利用可能 ― : 利用不可 ### 環境設定{#modules} バージョン | moduleファイル名 ------------------------ | -------------- Version 14.0 (default) | intel/14.0.0 [Intelコンパイラ](/compilers/intel) の環境設定を行うと Intel Debuggerが利用できます。 #### システムB、C システムB、Cにログインした時点で、 [Intelコンパイラ](/compilers/intel) が利用できるようになっています。モジュールファイルをアンロードした場合などは、以下のようにmoduleコマンドを実行します。 ```nohighlight $ module load intel ``` moduleコマンドの詳細は [Modules](/config/modules) をご覧ください。 ## 利用方法{#usage} ### コマンド{#command} コマンド | 説明 ------ | -------------------------------- idb | GUI版のIntel Debuggerを起動します。 idbc | コマンドライン版のIntel Debuggerを起動します。 ### デバッグ情報のレベル指定{#debug_level} Intel Debugger でデバッグを行う場合、 [Intelコンパイラ](/compilers/intel) でのコンパイル時に **-debug** オプションでデバッグ情報のレベルを指定する必要があります。 オプション | 説明 ----------------- | ---------------------------------- -debug | 最適化されていないコードのシンボル情報を生成します。 -debug extend | 最適化されたコートの拡張シンボル情報を生成します。 -debug parallel | スレッド並列のプログラムをデバッグするための追加情報を生成します。 -debug none | デバッグ情報を生成しません(デフォルト). ### MPIプログラムのデバッグ{#debug_mpi} MPIプログラムのデバッグを行う場合は、 **MPIEXEC_DEBUG** の環境変数を設定する必要があります。なお、MPIプログラムのデバッグはコマンドライン版の **idbc** コマンドでのみ可能です。 #### tcshの場合 ```nohighlight $ setenv MPIEXEC_DEBUG ``` #### bashの場合 ```nohighlight $ export MPIEXEC_DEBUG ``` ## 利用例{#sample} ### GUIでの利用例{#sample_gui} #### 1。コンパイル Intel Debuggerを使用する場合、 **-debug** を指定してコンパイルを行ってください。 ```nohighlight #システムB、CでC言語のソースファイルtest.cをコンパイル $ icc -debug test.c ``` #### 2. Intel Debugger の起動 [Exceed onDemand](/login/eod) で、 **xrun idb** コマンドを実行するとIntel Debuggerが起動します。 ```nohighlight $ xrun idb ./a.out ``` **xrun** コマンドは計算ノードでGUIプログラムを実行するコマンドです。詳細は [会話型処理](/run/interactive) をご覧ください。 下図では、 **sum.cc** の17行目にブレークポイントを設定し、デバッグを開始しています。 ![](idb01.png) ### CUIでの利用例{#sample_cui} #### 1。コンパイル Intel Debuggerを使用する場合、 **-debug** を指定してコンパイルを行ってください。 ```nohighlight #システムB、CでC言語のソースファイルtest.cをコンパイル $ icc -debug test.c ``` #### 2. Intel Debugger の起動 CUI版のIntel Debuggerは **idbc** コマンドで利用できます。 ```nohighlight $ tssrun idbc ./a.out Intel(R) Debugger for applications running on Intel(R) 64, Version 12.1, Build [77.329.14] ------------------ object file name: ./a.out Reading symbols from /home/b/b59999/a.out...done. (idb) list 15 10 gethostname(host,sizeof(host)); 11 printf("ホスト名: %s\n", host); 12 //std::cin >> max; 13 max=100; 14 sum=0; 15 for (i=0; i<=max;i++) 16 { 17 sum+=i; 18 } 19 std::cout<<sum<<std::endl; (idb) break sum.cc:17 Breakpoint 1 at 0x4003c6: file /home/b/b59999/sum.cc, line 17. (idb) ``` ## マニュアル{#manual} * [IDB Command Reference](https://web.kudpc.kyoto-u.ac.jp/Cray_Manual/idb_command_reference.pdf)