私はオプションの私の理解を与えることから始めます:extern-onlyオプションとdefined-onlyオプションのnmツール出力が重複するのはなぜですか?
- にextern専用:私バイナリによって参照されているシンボルのみを表示しますが、その定義(コードまたは変数)、別のバイナリで提供されます
- 定義のみ:定義がバイナリに含まれるシンボルのみを表示します。ここで
私のコマンドとその出力されます。
$nm -defined-only GenerationOfNow | grep FIRAZeroingWeakContainer
000000010002c128 t -[FIRAZeroingWeakContainer .cxx_destruct]
000000010002c0fb t -[FIRAZeroingWeakContainer object]
000000010002c114 t -[FIRAZeroingWeakContainer setObject:]
000000010021a218 S _OBJC_CLASS_$_FIRAZeroingWeakContainer
00000001002177f8 s _OBJC_IVAR_$_FIRAZeroingWeakContainer._object
000000010021a1f0 S _OBJC_METACLASS_$_FIRAZeroingWeakContainer
$nm -extern-only GenerationOfNow | grep FIRAZeroingWeakContainer
000000010021a218 S _OBJC_CLASS_$_FIRAZeroingWeakContainer
000000010021a1f0 S _OBJC_METACLASS_$_FIRAZeroingWeakContainer
あなたが見ることができるように、-externのみの出力が-defined専用出力のサブセットです。どうして?おそらく私の質問は:2番目の列にSが付いているアイテムの意味は?