LD_PRELOAD トリックとは何ですか?

LD_PRELOAD を設定した場合 共有オブジェクトのパスに追加すると、そのファイルはに読み込まれます その他のライブラリ (C ランタイム、libc.so を含む) )。 ls を実行するには あなたの特別な malloc() で 実装するには、次のようにします:

$ LD_PRELOAD=/path/to/my/malloc.so /bin/ls

同じシンボルでライブラリを作成し、ライブラリを LD_PRELOAD で指定することにより、ストック ライブラリのシンボルをオーバーライドできます。 .

非標準の場所にあるライブラリを指定するために使用する人もいますが、 LD_LIBRARY_PATH


LD_PRELOAD で ライブラリを優先することができます。

たとえば、malloc を実装するライブラリを作成できます。 および free .これらを LD_PRELOAD でロードすることで あなたの mallocfree 標準のものではなく実行されます。