glibcを修正したい。だから私はそれのバージョンをダウンロードし、コードにいくつかの変更を加えました。たとえば、私はmemset
に変更を加えました。しかし、コンパイルによって生成された.soファイル(LD_PRELOADを使用)をLD_PRELOADを実行しないときと比較して使用すると、私は違いはありません。 memsetはそれと同じように動作します。どうしてこんなことに?コンパイラがmemsetをインライン化していて、共有オブジェクトから何も使用していないのでしょうか?私はこれを理解していない。私はprintfに変更を加えることさえできましたが、それでも何も変わりません。どうしてこんなことに。 glibc(テスト目的)を変更すると、私は変更が見えますか?glibcを変更しても何も起こらない
また、その機能の始めにprintf("pthread_create")
を導入してpthread_create(およびLD_PRELOAded libpthread.so)を変更しようとすると、ちょうどセグメンテーションフォルトが発生します。ここで何が起こっているのですか? glibcのソースを変更した後にlibc.soの違いを調べても、生成されるバージョンに違いはありません。ここで何が起きてるの。これは私をナットにしている!
私はついにglibcを静的にリンクすることで落ちました!ピー! – pythonic