커널 모듈에서 언제 기호 디버깅을 계속해야 합니까?

커널 모듈에서 언제 기호 디버깅을 계속해야 합니까?

커널 모듈을 설치할 때 다음을 사용하여 디버깅 기호를 제거할 수 있는 옵션이 있습니다.INSTALL_MOD_STRIP=1. 이렇게 하면 상당한 디스크 공간이 절약됩니다.

메모리도 절약되나요? 커널 모듈에 디버깅 기호를 유지해야 하는 이유는 무엇입니까?

답변1

디버깅 기호는 GDB와 같은 디버거를 실행할 때 도움이 되는 추가 정보를 실행 파일에 추가할 뿐입니다. 이를 통해 디버거는 실행 파일에서 소스 코드를 다시 생성하여 런타임 중에 세그폴트와 같은 일이 발생하는 위치를 보여줄 수 있습니다.

테스트/해킹/모듈과 상호 운용되는 무언가를 만드는 경우 해당 모듈이 필요합니다. 정상적인 작동 중에는 공간만 차지하며 생산 시스템에 보안 위험을 초래할 수 있습니다. 예를 들어 누군가 사용자 권한으로 시스템에 침입하면 디버거를 사용하여 현재 실행 중인 모듈의 약점을 찾아 루트 액세스 권한을 얻을 수 있습니다.

이를 제거하면 약간의 공간도 절약됩니다.

관련 정보