Renesas Synergy™

FAQ 1008186 : リンク・マップにおいて、bss 領域や sbss 領域の情報に、「*(nil)*」というものがありますが、 これは何ですか?

回答

リンク・マップには、次のような表示が現れます。

    .sbss   0x002e1274   0x00005c48   *(nil)*

これは、「グローバルに宣言された、初期値を持たない変数が配置されているところ」 を指しています。
これは、別のファイルに同名の変数があっても、最終的にロード・モジュールに集約されるため、 変数の存在するファイル名が不明となっていることを示します。
リンク・マップ上では、 nil という表現になります。

#pragma section data 指令を使用し、初期値なしデータを宣言した場合は、 存在箇所が明らかになるため、nil ではなくファイル名が表示されます。
なお、ライブラリのオブジェクトに関しても、同様にライブラリ名、ライブラリ・パスが表示されます。
ローカルに宣言した変数はスタック領域に積まれます。

 

適用製品

V850用コンパイラパッケージ [CA850]
他にご質問がございましたら、リクエストを送信してください