質問: impl; } } ... } ``` そこで、ここでは、実装の対応するシンボルのアドレステーブルのエントリを変更し、自分の実装では元の関数を呼び出します。 だから、私の推測は、コールバック関数を使うと、アドレステーブルを経由せずに関数のアドレスを直接参照し、フックされたメソッドが呼び出されない理由を意味します。 私はこの1つの権利ですか?いずれにしても私には何か回避策がありますか?
回答: `LD_PRELOAD` を使用して関数をフックすると仮定すると、 `puts` へのポインタを取ると、ポインタはおそらくリンク時にリンカが知っているバージョンにバインドされます標準ライブラリであり、プリロードされたライブラリが存在するときにはオーバーライドされません。私はこれを回避する方法は考えられません。