2017-04-08 8 views
0

次の画像から分かるように、プログラム(この場合はprogram1とprogram 2)は実行中にメモリにマップされます。だから私はアセンブリコードを見て、boundary program1/2とStaticLibの間に伝えることができますか?メモリ内で、セクションがプログラムか静的なlibかどうかをどのように伝えますか?

おかげで、

enter image description here

+4

一般的に、一度リンクすれば分かりません。 – Jester

+0

この図は完全に無意味です。あなたは何か "staticlib"がオブジェクトファイルとして表示されます。はい、あなたはそれを行うことができますが、それは無駄なアプローチであるため、通常は行われません。 オブジェクトファイルがメモリに存在しません。オブジェクトファイルは実行可能ファイル(または共有ライブラリ)としてリンクされています。 これは混乱するGee-Wiz図のようです。 – user3344003

答えて

-1

IIRCそれはOSやファイル形式によって異なります。 Windowsでは
は、静的ライブラリ関数は、通常のアドレス(関数の実アドレスが含まれています)

@xyz: jmp RealAddress 

call @xyz 

によって参照されています。
通常、このファイルにはJMPの領域があります。それらのJMPターゲットはすべて、リンクされたライブラリの一部です。

関連する問題