リモートデバッガ/プロファイラを利用したデバッグ&性能解析 2ページ
インテル アプリケーション・デバッガーを使用したデバッグ
インテル アプリケーション・デバッガーは、インテル Atom プロセッサー向け インテル アプリケーション・ソフトウェア開発ツール・スイートに付属するデバッガだ。標準でGUIによる操作に対応しており、ローカルで実行するアプリケーションだけでなく、リモートデバッグにも対応している。インテル アプリケーション・デバッガーは、通常/opt/intel/atom/idb/<バージョン番号>以下にインストールされている。
インテル アプリケーション・デバッガーでリモートデバッグを行う場合、リモートマシン上でサーバープログラムを実行しておく必要がある。サーバープログラムはインストールディレクトリ以下の「server」ディレクトリ内に「idbserver_LINUX32」という名前でインストールされているので、これをリモートマシンの適当なディレクトリにコピーする。
cd /opt/intel/atom/idb/2.1.008 scp idbserver_LINUX32 <リモートマシンのIPアドレス>:‾/
次に、リモートマシン側でコピーしたサーバープログラムを実行する。この際、特に引数等を与える必要はない。
$ ./idbserver_LINUX32 Intel(R) Debugger Remote Server for IA32 Linux, Version 1.1.2 Copyright (C) 2006-2009 Intel Corporation. All rights reserved. Waiting for connection with "tcpip:2000"... ←使用するポート番号が表示される
リモート側でサーバーを起動したら、続いてホスト側でインテル アプリケーション・デバッガーを起動する。インストールディレクトリ以下の「bin」ディレクトリにある「idb.sh」が、インテル アプリケーション・デバッガーを起動するためのスクリプトだ。
$ /opt/intel/atom/idb/<バージョン番号>/bin/idb.sh
インテル アプリケーション・デバッガーが起動したら、「File」メニューの「Connect」を選択する。「Connect」ダイアログが表示されるので、「Hostname / IP Address」欄にリモートマシンのIPアドレスを、「Port Number」に使用するポート番号を入力し、「OK」をクリックしてサーバーに接続しよう。
サーバーへの接続が成功すると、「File」メニューの「Open Executable」や「Attach To Process」、「Execute Command File」などが選択できるようになる(図3)。リモートデバッグを開始するには、ここで「Open Executable」を選択する。
「File」メニューの「Open Executable」を選択すると、「Open Executable」ダイアログが表示されるので、ここで実行するアプリケーションなどを設定する(図4)。必要な設定項目は次の表1のとおりだ。
項目名 | 説明 |
---|---|
Executable File | デバッグ対象とする実行ファイル(ホスト側) |
Remote Executable File | リモート側で実行するファイル |
Argumentsタブ | アプリケーションに与える引数や作業ディレクトリ |
Environmentタブ | 実行時の環境変数 |
Source Directories | ソースコードが格納されたディレクトリ |
以上を指定して「OK」をクリックすると実行ファイルがロードされる。
インテル アプリケーション・デバッガーの基本操作
以上の設定が完了した状態で「Run」メニューの「Run Or Rerun」を選択するとデバッグが開始される。プログラムの実行を一時停止したり、ステップ実行といったデバッグ操作は「Run」メニューから行える。
ソースコード中でブレークポイントを指定するには、まず「View」メニューの「Source Files」を選択してソースファイル一覧を開き、ブレークポイントを設定したいファイルをダブルクリックして表示させる。次にソースコード中でブレークポイントを設定したい個所を右クリックし、メニューから「Set Breakpoint」を選択すれば良い(図5)。
デバッグの実行中は「View」メニュー内の「Callstack」や「Locals」といった項目が選択可能になり、実行中アプリケーションのさまざまな状態が確認できるようになる(図6、 表2)。
項目名 | 説明 |
---|---|
Console | デバッグコンソール |
Breakpoint | ブレークポイント一覧 |
Callstack | コールスタック情報 |
Locals | ローカル変数の値 |
Source Files | ソースファイル一覧 |
Threads | 実行されているスレッド一覧 |
Memory | アドレスを指定してメモリ内に記録されている情報を閲覧 |
Registers | レジスタの状態 |
Assembler | 実行中のアセンブラコード |