Oracle® Solaris Studio 12.4: C ユーザーガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

2.11.6 dumpmacros

#pragma dumpmacros(value[,value...])

マクロがプログラム内でどのように動作しているかを調べたいときに、このプラグマを使用します。このプラグマは、定義済みマクロ、解除済みマクロ、実際の使用状況といった情報を提供します。マクロの処理順序に従って、標準エラー (stderr) に出力します。dumpmacros プラグマは、ファイルが終わるまで、または #pragma end_dumpmacros に到達するまで、有効です。end_dumpmacrosを参照してください。次の表に、value の可能な値を示します。

意味
defs
すべての定義済みマクロを出力します
undefs
すべての解除済みマクロを出力します
use
使用されているマクロの情報を出力します
loc
defsundefsuse の位置 (パス名と行番号) も出力します
conds
条件付き指令で使用したマクロの使用情報を出力します
sys
システムヘッダーファイルのマクロについて、すべての定義済みマクロ、解除済みマクロ、使用状況も出力します

注 -  サブオプション loccondssys は、オプション defsundefsuse の修飾子です。locconds、および sys は、単独では効果はありません。たとえば #pragma dumpmacros(loc,conds,sys) には、何も効果はありません。

dumpmacros プラグマとコマンド行オプションの効果は同じですが、プラグマはコマンド行オプションをオーバーライドします。-xdumpmacros[=value[,value...]]を参照してください。

dumpmacros プラグマは入れ子にならないので、次のコードでは #pragma end_dumpmacros が処理されるとマクロ情報の出力が停止します。

#pragma dumpmacros(defs, undefs)
#pragma dumpmacros(defs, undefs)
...
#pragma end_dumpmacros

dumpmacros プラグマの効果は累積的です。次のものは、

#pragma dumpmacros(defs, undefs)
#pragma dumpmacros(loc)

次と同じ効果を持ちます。

#pragma dumpmacros(defs, undefs, loc)

オプション #pragma dumpmacros(use,no%loc) を使用した場合、使用したマクロそれぞれの名前が一度だけ出力されます。オプション #pragma dumpmacros(use,loc) を使用した場合、マクロを使用するたびに位置とマクロ名が出力されます。