System.map
System.mapLinux의 경우System.map 파일은 커널에서 사용되는 기호 테이블입니다.
기호 테이블은 기호 이름과 메모리 내 주소 사이의 조회입니다.기호 이름은 변수의 이름 또는 함수의 이름입니다.System.map은 기호 이름의 주소 또는 주소의 기호 이름이 필요할 때 필요합니다.특히 커널 패닉 및 커널의 오류를 디버깅할 때 유용합니다.커널은 주소에서 이름으로의 변환을 스스로 수행합니다.CONFIG_KALLSYMSksymoops 등의 도구가 [1]필요하지 않도록 활성화되어 있습니다.
내부
아래는 의 일부입니다.System.map파일:[2]
c041bc90 b packet_sklist c041bc94 b packet_sklist_lock c041bc94 b packet_socks_nr c041bc98 A _end c041c000 A pg0 ffe400 A _ kernel _ vsyscall fff410 A SYSEFE A _ 204 리턴
주소는 빌드에서 다음 빌드로 변경될 수 있기 때문에,System.map커널 [3]빌드별로 생성됩니다.
기호 유형
주소와 기호 사이의 문자(공백으로 구분)는 기호 유형입니다.그nmUnix 시스템의 유틸리티 프로그램은 객체 파일의 기호를 나열합니다.그System.map이 파일이 에 의해 생성된다는 점에서 직접 관련이 있습니다.nm커널 프로그램 전체에 대해 설명합니다.nm에 작은 오브젝트 프로그램의 [4]기호와 그 유형을 나타냅니다.
다음 유형 [4]중 몇 가지가 있습니다.
A절대로B또는b초기화되지 않은 데이터 섹션(BSS라고 함)의 경우D또는d초기화된 데이터 섹션의 경우G또는g작은 객체에 대한 초기화된 데이터 섹션(글로벌)의 경우iDLL 고유 섹션의 경우N디버깅 기호용p스택 언바인드 섹션용R또는r읽기 전용 데이터 섹션용S또는s작은 객체에 대한 초기화되지 않은 데이터 섹션의 경우T또는t텍스트(코드) 섹션의 경우U정의되지 않은 경우V또는v약한 목적을 위해W또는w태그가 부착되지 않은 약한 물체의 경우-a.out 객체 파일의 stavs 기호용?"알 수 없는 유형"의 경우
파일 시스템 위치
Linux 커널 구축 후System.map는 소스 디렉토리의 루트에 있습니다.다만, 그 외의 소프트웨어 인스톨 순서에서는,[5] 다음의 장소에 파일을 배치할 수 있습니다.
- ~하듯이
/boot/System.map-$(uname -r) - 빌딩 SVGAlib은 다음 정보를 찾을 것으로 예상합니다.
/lib/modules/$(uname -r)/build/System.map
「 」를 참조해 주세요.
레퍼런스
- ^ "FAQ/System.map - Linux Kernel Newbies". kernelnewbies.org. 2006-04-14. Retrieved 2014-04-06.
- ^ Peter Jay Salzman (2003-05-28). "The system.map File". Rlworkman.net. Retrieved 2014-04-06.
- ^ "Kernel-HOWTO". faqs.org. Retrieved 2014-04-06.
- ^ a b "nm(1): symbols from object files - Linux man page". Linux.die.net. Retrieved 2014-04-06.
- ^ "Peter's Notes: System.map". Linuxmafia.com. 2003-05-29. Retrieved 2014-04-06.