커널 컴파일 후 .d 파일을 유지하는 방법은 무엇입니까?

커널 컴파일 후 .d 파일을 유지하는 방법은 무엇입니까?

타사 커널 모듈을 컴파일 중입니다. 빌드 시스템은 /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

관련 정보