ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3: dbx コマンドによるデバッグ Oracle Solaris Studio 12.3 Information Library (日本語) |
assign コマンドでは、変数と式の両方にマクロ展開が適用されます (「assign コマンド」を参照)。
call コマンド (「call コマンド」を参照) では、呼び出される関数の名前と渡されるパラメータにマクロ展開が適用されます。
macro コマンド (「macro コマンド」を参照) は、任意の式とマクロを取り、マクロを展開します。例:
(dbx) macro D(1, 2) Expansion of: D(1, 2) is: d(1,2)
whatis コマンド (「whatis コマンド」 を参照) にマクロを指定すると、そのマクロの定義が表示されます。例:
(dbx) whatis B #define B(x) b(x)
which コマンド (「which コマンド」を参照) にマクロを指定すると、スコープ内で現在アクティブになっているマクロが定義されている場所が表示されます。例:
(dbx) which B2 `a.out`macro_wh.c`B2 # defined at defs2.h:3 # included from defs1.h:3 # included from macro_wh.c:23
whereis コマンド (「whereis コマンド」を参照) にマクロを指定すると、そのマクロが定義されているすべての場所が表示されます。リストは、dbx がすでにデバッグ情報を読み取ったモジュールに限られます。例:
(dbx) whereis U macro: U # defined at macro_wh.c:21 macro: U # undefined at defs1.h:5
dbx 環境変数 macro_expand は、コマンドがマクロを展開するかどうかを制御します。デフォルトでは on に設定されます。
通常、dbx コマンドの +m オプションにより、コマンドでのマクロ展開は省略されます。-m オプションは、dbx 環境変数 macro_expand が off に設定されている場合でも、マクロ展開を強制します。例外は、-m オプションを $[] 構文で使用する場合で、その場合は -m オプションによってマクロの展開だけが行われ、評価は実行されません。この例外により、シェルスクリプトでのマクロ展開が容易になります。