.symtab
リロケータブル オブジェクト ファイルの setcion タイプを理解しようとしています。そして、静的変数に関する情報が含まれていることを知っています。しかし、なぜ?
再配置可能なオブジェクトファイルを他のファイルとリンクするために必要なのは、この静的変数のアドレスを再配置することだけです (もちろん、他のいくつかのファイルもそうですが、静的変数には関係ありません)。必要な.rel.data
のは、静的変数を再配置するためのすべての情報を格納して含む再配置テーブルだけです。
.symtab
リロケータブル オブジェクト ファイルの setcion タイプを理解しようとしています。そして、静的変数に関する情報が含まれていることを知っています。しかし、なぜ?
再配置可能なオブジェクトファイルを他のファイルとリンクするために必要なのは、この静的変数のアドレスを再配置することだけです (もちろん、他のいくつかのファイルもそうですが、静的変数には関係ありません)。必要な.rel.data
のは、静的変数を再配置するためのすべての情報を格納して含む再配置テーブルだけです。
しかし、デバッグの場合、変数がどこにあるかを知ることは非常に役立ちます。
お使いのコンパイラではわかりませんが、IBM AIX Compilerの場合、デフォルトでは静的変数をシンボル テーブルに追加しません。
ただし、デバッグの場合、静的変数に含まれるものと関連するシンボルを知ることは、たとえば gdb にとって非常に役立ちます。