Oracle Solaris Studio 12.2: dbx コマンドによるデバッグ

スコープ決定検索パス

    式を含むデバッグコマンドを発行すると、式内のシンボルが次の順序で調べられます。dbx はシンボルをコンパイラが現在の表示スコープにあるとして決定します。

  1. 現在の表示スコープを使用する現在の関数のスコープ内 (「表示スコープ」参照)。プログラムが、入れ子になったブロックで停止した場合、そのブロック内で検索したあと、その関数によって宣言されている外側のすべてのブロックのスコープ内で検索します。

  2. C++ の場合のみ: 現在の関数クラスのクラスメンバーとその基底クラス。

  3. C++ の場合のみ: 現在のネームスペース。

  4. 現在の関数のパラメータ。

  5. すぐ外側にあるモジュールで、一般に、現在の関数が含まれているファイル。

  6. この共有ライブラリまたは実行可能ファイル専用に作成されたシンボル。これらのシンボルはリンカースコープを使用して作成できます。

  7. メインプログラム用で、その次に共有ライブラリ用のグローバルシンボル。

  8. 前述のすべてで該当するシンボルが見つからなかった場合、別のファイル内の専用すなわちファイル静的な変数または関数と見なされます。dbxenv による scope_look_aside の設定値によっては、コンパイル単位ごとにファイル静的シンボルを検索することもできます。

dbx はこの検索パスで最初に見つけたシンボルを使用します。変数が見つからなかった場合はエラーを報告します。