Title: What is the file System.map?
Author: Sandro Tosi
Last modified: 2005-06-03
System.map is a list <memory_address, type, identifier> for every
symbol (data structures or functions names) exported by the kernel.
Every time you compile a kernel, it will change version, compilation
options, pieces of code compiled as module or directly inside the
kernel, i.e. you change the internal addresses of the symbols. This is
the reason because each kernel in the computer should have its own
System.map file, named System.map-`uname -r`.
System.map is not necessary to make your system work good, but this
file becomes fundamental during kernel debug: via this file, it's
possible to replace the address of a kernel symbol with its name,
speeding up the analysis of a kernel level error (the famous oops, the
segmentation fault of the kernel ) because you know what functions
have been called before the error.
Many more infos can be retrieved here:
# man klogd
# man ksymoops.
# cat /usr/src/linux/Documentation/oops-tracing.txt
System.map is used by ``ps'' and ``top'' too: if you want the field
WCHAN to be displayed, System.map has to up-to-date. And even ``lsof''
uses it.
A beautiful description of System.map file is available at
http://www.dirac.org/linux/system.map/ .
|