Re: How to diagnose emacs21 segfault?
Brian
i will venture to try to blab about what little i know... i think
that segfaults should be devbugged via gdb. The way is to first 'cd'
to the directory containing your original .c files from which emacs
was built. (If you downloaded emacs binaries, then you can get
sources, say in debian as: apt-get sources... and use that...)
then run 'gdb emacs' from there.. and then try to obtain useful
information :)
the emacs manual has a node called 'checklist' --- for bugs, which
describes this process in some detail.. attached below is a section
from that. Also read the file etc/DEBUG (As recommended below). To do
that, first type, say C-h N to view the NEWS file. Now you are in the
right directory, and press C-x C-f DEBUG.
* Additional information from a C debugger such as GDB might enable
someone to find a problem on a machine which he does not have
available. If you don't know how to use GDB, please read the GDB
manual--it is not very long, and using GDB is easy. You can find
the GDB distribution, including the GDB manual in online form, in
most of the same places you can find the Emacs distribution. To
run Emacs under GDB, you should switch to the `src' subdirectory
in which Emacs was compiled, then do `gdb emacs'. It is important
for the directory `src' to be current so that GDB will read the
`.gdbinit' file in this directory.
...
To show a variable's value in Lisp syntax, first print its value,
then use the user-defined GDB command `pr' to print the Lisp
object in Lisp syntax. (If you must use another debugger, call
the function `debug_print' with the object as an argument.) The
`pr' command is defined by the file `.gdbinit', and it works only
if you are debugging a running process (not with a core dump).
To make Lisp errors stop Emacs and return to GDB, put a breakpoint
at `Fsignal'.
For a short listing of Lisp functions running, type the GDB
command `xbacktrace'.
The file `.gdbinit' defines several other commands that are useful
for examining the data types and contents of Lisp objects. Their
names begin with `x'. These commands work at a lower level than
`pr', and are less convenient, but they may work even when `pr'
does not, such as when debugging a core dump or when Emacs has had
a fatal signal.
More detailed advice and other useful techniques for debugging
Emacs are available in the file `etc/DEBUG' in the Emacs
distribution. That file also includes instructions for
investigating problems whereby Emacs stops responding (many people
assume that Emacs is "hung," whereas in fact it might be in an
infinite loop).
To find the file `etc/DEBUG' in your Emacs installation, use the
directory name stored in the variable `data-directory'.
--
To UNSUBSCRIBE, email to debian-emacsen-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: