glibcを変更したい。だから私はそれのバージョンをダウンロードし、コードにいくつかの変更を加えました。たとえば、に変更を加えましたmemset
。ただし、LD_PRELOADを実行しない場合と比較して、(LD_PRELOADを使用して)コンパイルによって生成された.soファイルを使用しても違いは見られません。memsetはそのように動作します。どうしてこんなことに?コンパイラがmemsetをインライン化し、共有オブジェクトから何も使用していない可能性がありますか?わかりません。printfにも変更を加えましたが、それでも何もしませんでした。どうしてこんなことに。(テスト目的で)glibcを変更して、変更を確認するにはどうすればよいですか?
さらに、その関数の最初に導入してpthread_create(およびもちろんLD_PRELOAded libpthread.so)を変更しようとするとprintf( "pthread_create")
、セグメンテーション違反が発生します。ここで何が起こっているのですか?また、glibcソースに変更を加えた後でlibc.soの違いを確認すると、生成されたバージョンに違いは見られません。ここで何が起きてるの。これは私を狂わせています!