GDBの相違点 概要 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VEに移植されたGDBは、CまたはC++、Fortranで書かれたVEプログラムのソースレベルデバッグとシンボルデバッグの |
|
|
機能を提供します。ソース行や関数のシンボルを指定してブレークポイントを設定することや、VEプログラムを起動すること、 |
|
|
実行中にVEプロセスにGDBをアタッチすること、VEプログラムをステップ実行すること、シンボルを指定して変数を |
|
|
|
表示すること、スカラレジスタやベクトルレジスタを表示すること、変数やレジスタの値を変更すること、 |
|
|
|
VEプログラムの関数を実行することができます。 |
|
|
|
|
|
|
また、VEプログラムのコアファイルを解析することもできます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VEに移植されたGDBと、LinuxのGDBには、以下の相違点があります。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. |
VEプログラムの実行のため、GDBは内部的に"--traceme"オプションを付けて"ve_exec"を実行します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
VEプログラム実行のため、VE_NODE_NUMBER環境変数を使用してVEノードを指定します。 |
|
|
|
|
|
環境変数が設定されない場合、VEノード0でVEプログラムが実行されます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
ローカルデバッグのみサポートされています。GDBサーバーやGDBスタブを用いたリモートデバッグには対応していません。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
分離されたデバッグシンボルを検索するためのディレクトリは
"/opt/nec/ve/lib/debug"となります。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
DWARF情報が不正なため、GDBはスレッド固有変数を扱うことができません。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
以下のコマンドはVE側の情報は表示せず、VH(ベクトルホスト)側の情報をprocfsを使用して表示します。 |
|
|
|
|
|
|
info proc |
|
|
|
|
|
|
|
|
|
|
info proc all |
|
|
|
|
|
|
|
|
|
|
info proc cmdline |
|
|
|
|
|
|
|
|
|
|
info proc cwd |
|
|
|
|
|
|
|
|
|
|
info proc exe |
|
|
|
|
|
|
|
|
|
|
info proc mappings |
|
|
|
|
|
|
|
|
|
|
info proc stat |
|
|
|
|
|
|
|
|
|
|
info proc status |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
"info
auxv"コマンドはコアファイルをデバッグする場合にのみ利用可能です。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
GDBとVEOSは、VEプログラムによるexecve()システムコールの呼び出しを適切に処理することができません。 |
|
|
|
|
VEプログラムがexecve()システムコールを呼びだすと、GDBはSIGTRAPを検出、またはプロセス、スレッドを |
|
|
|
|
見つけることができなくなり、新しいプログラムを再ロードしません。 |
|
|
|
|
|
|
この場合は、GDBを終了するために"quit"コマンドを実行する必要があります。 |
|
|
|
|
|
|
GDBからデバッグ対象のプロセスを起動した場合は、GDBの終了時にそのプロセスが殺されます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
"call"コマンド使って、VEプログラムの関数を呼びだすことができます。しかし、ページ境界を越えてスタック領域が必要な場合、 |
|
|
|
アクセスエラーによって
"call" コマンドが失敗します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
VE固有のコマンドが追加されています。 |
|
|
|
|
|
|
|
|
「VE固有のコマンド」シートを参照してください。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
対応していないコマンドが存在します。 |
|
|
|
|
|
|
|
|
「GDBコマンド」シートと「MIコマンド」シートを参照してください。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
プログラムがHW例外により停止した場合、命令カウンタ(IC)はHW例外を引き起こしたアドレスから離れています。 |
|
|
|
|
HW例外が発生した場合の正確な状態を確認するために、 「アドバンスオフ」モードを設定することができます。 |
|
|
|
|
このモードでは前回の命令が完了するまで命令実行は保留されます。 |
|
|
|
|
|
|
その結果、GDBはHW例外が発生したときの正確な状態を示します。 |
|
|
|
|
|
|
「アドバンスモードの設定方法」のシートを参照してください。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|