저는 LD_PRELOAD를 사용하여 Linux에서 write() 시스템 호출을 캡처하고 있습니다. 쓰기 시스템 호출을 위해이 작업을 성공적으로 수행 할 수있게되었습니다.LD_PRELOAD가 printf에 대해 작동하지 않습니다.
하지만 printf()를 호출하면 작동하지 않습니다. strace를 사용하여 printf 스택 추적을 관찰하면 printf가 write() 시스템 호출을 호출하여 콘솔에 기록하지만 실제로 write() 시스템 호출을 호출하기 전에 write() 시스템 호출이 호출되지 않았다는 것을 알게되었습니다. .
아무도 이유가 무엇입니까?
일부 코드 스 니펫을 게시하면 어떤 일이 발생하는지 알 수 있습니다. –
[This] (https://stackoverflow.com/questions/13374240/why-ld-preload-doesnt-work-for-one-of-loaded-shared-libraries)도 관련 될 수 있습니다. – Albert