![커널 컴파일 후 .d 파일을 유지하는 방법은 무엇입니까?](https://linux55.com/image/38266/%EC%BB%A4%EB%84%90%20%EC%BB%B4%ED%8C%8C%EC%9D%BC%20%ED%9B%84%20.d%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%9C%A0%EC%A7%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
타사 커널 모듈을 컴파일 중입니다. 빌드 시스템은 /usr/src/linux-headers-[version]
(사용자 정의 커널 chroot) 로 들어가 make
거기에서 실행됩니다.
컴파일에 어떤 파일(소스 파일과 헤더 파일)이 사용되었는지, 어떤 파일이 사용되지 않았는지 알고 싶습니다. 표준에서는 컴파일된 각 소스에 대해 파일을 scripts/Makefile.build
생성하고 *.d
이를 사용하고 싶지만... 이 파일은삭제됨짧은 기간의 처리 후. (이것은 rule_cc_o_c
의 정의 입니다 Makefile.build
.)
표준 빌드 시스템을 최소한으로 수정하면서 이러한 파일을 수집할 수 있는 방법이 있습니까?
답변1
사용해 보세요libtrashcan. 컴파일하고 설치한 후 라이브러리를 프로세스에 미리 로드합니다.
예를 들어, 다음은 테스트 파일을 생성한 다음 삭제하려고 시도하지만 libtrashcan unlink
시스템 호출이 이동되고 교체되므로 파일은 다음에서 끝납니다 ~/Trash
.
export LD_PRELOAD=/usr/local/lib/libtrash.so.3.3
touch testfile
rm testfile