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 debugging kernel panics and kernel oopses. The kernel does the address-to-name translation itself when
CONFIG_KALLSYMS is enabled so that tools like ksymoops are not required.
The following is part of a
c041bc90 b packet_sklist c041bc94 b packet_sklist_lock c041bc94 b packet_socks_nr c041bc98 A __bss_stop c041bc98 A _end c041c000 A pg0 ffffe400 A __kernel_vsyscall ffffe410 A SYSENTER_RETURN ffffe420 A __kernel_sigreturn ffffe440 A __kernel_rt_sigreturn
Because addresses may change from one build to the next, a new
System.map is generated for each build of the kernel.
The character between the address and the symbol (separated by spaces) is the type of a symbol. The
nm utility program on Unix systems list the symbols from object files. The
System.map is directly related to it, in that this file is produced by
nm on the whole kernel program – just like
nm lists the symbols and their types for any small object programs.
Some of these types are:
bfor uninitialized data section (called BSS)
dfor initialized data section
gfor initialized data section for small objects (global)
ifor sections specific to DLLs
Nfor debugging symbol
pfor stack unwind section
rfor read only data section
sfor uninitialized data section for small objects
tfor text (code) section
vfor weak object
wfor weak objects which have not been tagged so
-for stabs symbol in an a.out object file
?for "symbol type unknown"
- building SVGALib expects to find
- "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.
- "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.
|This Linux-related article is a stub. You can help Wikipedia by expanding it.|