私はUbuntu 14.04 LTSに取り組んでいます。
execからコンパイルされた実行可能ファイルがありますfile.c。はfile.c静的ライブラリの関数を利用します。たとえば、fubar()で使用されているスタティック ライブラリの関数であるとしましょうfile.c。これは私が気づいたことです。
nm exec | grep fubar特定の値を与えます。
(私のシステムと実行可能ファイルの場合0808377f)gdb ./execそしてbreak fubar、異なる値を与えます。
(私のシステムと実行可能ファイルの場合0x8083785)
別の実行可能ファイルに対して同様のことを行うと(exec1からコンパイルされfile1.c、両方のコマンドで同じ値が出力されます)。
どちらのコマンドも同じ仮想アドレスを出力するはずです。そうじゃない?私は明らかに何かが欠けています。誰かが正確に何が起こっているのか説明できますか? そして、両方のコマンドの違いは何ですか。