lack of symbol tables in sgi distributions

Dave Ciemiewicz ciemo at bananaPC.wpd.sgi.com
Wed Sep 19 03:52:58 AEST 1990


In article <9009181645.AA18649 at mcirps2.med.nyu.edu>,
karron at MCIRPS2.MED.NYU.EDU writes:
> Just to confuse the symbol table issue more, I note that most unix vendors
> leave the symbol table in /unix, and use it to debug a crashed kernel panic.
> 
> If there is no symbol table in the progs that cause a kernel crash, then
> how can you be certain as to the programs that precipitated a crash.
> 
> There is a gl library with the symbol table left in (a compile time option
> i noticed on the tapes). A symbol table should be left in for commands that
> probably might perhaps irritate the kernel and cause software failure.
> 
> In the install process, you can pipe the binaries through strip and remove
> the symbol tables if you want, and restore binaries with the tables in if
> you want (or have the disk space).

If the kernel is shipped with symbols for debugging purposes, a kernel debugger
probably has access to the process tables which have information about which
binaries (an a.out and some set of shared libraries) are associated with a
process.  User level binaries do not need to have symbol tables to do kernel
debugging.  There is usually enough information in this situation to determine
the system call and arguments which a user level program invoked which caused
the panic if that were truly the cause which is extremely rare.  A common
the cause of kernel panics is not due to any specific user level action but
more likely some sequence of actions which cause mismanagement of internal
kernel data structures.  Having symbol tables in the all of the a.outs would
not be of much help.

In general, a symbol table is not required to determine the name of the a.out
(binary) for a process which dumps core.  The kernel keeps track of the a.out
from which process text is loaded.  When a process encounters an exception
which causes the kernel to dump a core image of the process, the a.out name
information is recorded.  This a.out information may be inspected a number of
ways:

	- In WorkSpace, open or double-click on a corefile icon 
	- From the shell command line, type "file core" to get the info
	- For old hacks, type "strings core | more"

A file's name shouldn't rely on the symbol table.  Otherwise, changing a
file name using "mv" would require changing the symbol table entry too.

						--- Ciemo



More information about the Comp.sys.sgi mailing list