Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

System.map

From Wikipedia, the free encyclopedia
Symbol table used by the Linux kernel

InLinux, theSystem.map file is asymbol table used by thekernel.

A symbol table is a look-up between symbol names and their addresses in memory. A symbol name may be the name of a variable or the name of a function. The System.map is required when the address of a symbol name, or the symbol name of an address, is needed. It is especially useful for debuggingkernel panics andkernel oopses. The kernel does the address-to-name translation itself whenCONFIG_KALLSYMS is enabled so that tools like ksymoops are not required.[1]

Internals

[edit]

The following is part of aSystem.map file:[2]

c041bc90 b packet_sklistc041bc94 b packet_sklist_lockc041bc94 b packet_socks_nrc041bc98 A __bss_stopc041bc98 A _endc041c000 A pg0ffffe400 A __kernel_vsyscallffffe410 A SYSENTER_RETURNffffe420 A __kernel_sigreturnffffe440 A __kernel_rt_sigreturn

Because addresses may change from one build to the next, a newSystem.map is generated for each build of the kernel.[3]

Symbol types

[edit]

The character between the address and the symbol (separated by spaces) is thetype of a symbol. Thenm utility program onUnix systems lists the symbols from object files. TheSystem.map is directly related to it, in that this file is produced bynm on the whole kernel program – just likenm lists the symbols and their types for any small object programs.[4]

Some of these types are:[4]

  • A for absolute
  • B orb for uninitialized data section (called BSS)
  • D ord for initialized data section
  • G org for initialized data section for small objects (global)
  • i for sections specific to DLLs
  • N for debugging symbol
  • p for stack unwind section
  • R orr for read only data section
  • S ors for uninitialized data section for small objects
  • T ort for text (code) section
  • U for undefined
  • V orv for weak object
  • W orw for weak objects which have not been tagged so
  • - for stabs symbol in an a.out object file
  • ? for "symbol type unknown"

Filesystem location

[edit]

After building theLinux kernel,System.map is located in the root of the source directory. However, some further software installation steps expect to locate the file elsewhere:[5]

  • as/boot/System.map-$(uname -r)
  • buildingSVGAlib expects to find/lib/modules/$(uname -r)/build/System.map

See also

[edit]

References

[edit]
  1. ^"FAQ/System.map - Linux Kernel Newbies". kernelnewbies.org. 2006-04-14. Retrieved2014-04-06.
  2. ^Peter Jay Salzman (2003-05-28)."The system.map File". Rlworkman.net. Retrieved2014-04-06.
  3. ^"Kernel-HOWTO". faqs.org. Retrieved2014-04-06.
  4. ^ab"nm(1): symbols from object files - Linux man page". Linux.die.net. Retrieved2014-04-06.
  5. ^"Peter's Notes: System.map". Linuxmafia.com. 2003-05-29. Retrieved2014-04-06.
Linux kernel
Controversies
Distributions
Organizations
Adoption
Media
Professional related certifications
Organization
Kernel
Support
People
Technical
Debugging
Startup
ABIs
APIs
Kernel
System Call
Interface
In-kernel
Userspace
Daemons,
File systems
Wrapper
libraries
Components
Variants
Virtualization
Adoption
Range
of use
Adopters
Stub icon

ThisLinux-related article is astub. You can help Wikipedia byexpanding it.

Retrieved from "https://en.wikipedia.org/w/index.php?title=System.map&oldid=1268469176"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp