System.map

System.map

Linux의 경우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

「 」를 참조해 주세요.

레퍼런스

  1. ^ "FAQ/System.map - Linux Kernel Newbies". kernelnewbies.org. 2006-04-14. Retrieved 2014-04-06.
  2. ^ Peter Jay Salzman (2003-05-28). "The system.map File". Rlworkman.net. Retrieved 2014-04-06.
  3. ^ "Kernel-HOWTO". faqs.org. Retrieved 2014-04-06.
  4. ^ a b "nm(1): symbols from object files - Linux man page". Linux.die.net. Retrieved 2014-04-06.
  5. ^ "Peter's Notes: System.map". Linuxmafia.com. 2003-05-29. Retrieved 2014-04-06.