Я хочу изменить glibc. Поэтому я скачал его версию и внес некоторые изменения в код. Например, я внес изменения в memset
. Однако я не вижу никакой разницы, если я использую файл .so, созданный компиляцией (с использованием LD_PRELOAD), по сравнению с тем, когда я не делаю никаких LD_PRELOAD. memset ведет себя как обычно. Почему это так? Возможно, компилятор встраивает memset и ничего не использует из общего объекта? Я этого не понимаю. Я даже вносил изменения в printf, но все равно ничего. Почему это так. Как я могу изменить glibc (в целях тестирования), чтобы увидеть изменения?
Более того, когда я попытался изменить pthread_create (и, конечно же, LD_PRELOAded libpthread.so), введя printf( "pthread_create")
в начале этой функции, я просто получил ошибку сегментации. Что здесь происходит? Также, если я проверю разницу в libc.so после внесения изменений в исходный код glibc, я не увижу разницы в произведенных версиях. Что здесь происходит. Это сводит меня с ума!