mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-23 07:19:15 +00:00
Add hints for running Emacs with malloc debuggers.
This commit is contained in:
parent
d57211a399
commit
19cf8f36fd
41
etc/DEBUG
41
etc/DEBUG
@ -437,6 +437,47 @@ some extra checks, such as look for broken relations between byte and
|
||||
character positions in buffers and strings; the resulting diagnostics
|
||||
might pinpoint the cause of the problem.
|
||||
|
||||
** Running Emacs built with malloc debugging packages
|
||||
|
||||
If Emacs exhibits bugs that seem to be related to use of memory
|
||||
allocated off the heap, it might be useful to link Emacs with a
|
||||
special debugging library, such as Electric Fence (a.k.a. efence) or
|
||||
GNU Checker, which helps find such problems.
|
||||
|
||||
Emacs compiled with such packages might not run without some hacking,
|
||||
because Emacs replaces the system's memory allocation functions with
|
||||
its own versions, and because the dumping process might be
|
||||
incompatible with the way these packages use to track allocated
|
||||
memory. Here are some of the changes you might find necessary
|
||||
(SYSTEM-NAME and MACHINE-NAME are the names of your OS- and
|
||||
CPU-specific headers in the subdirectories of `src'):
|
||||
|
||||
- In src/s/SYSTEM-NAME.h add "#define SYSTEM_MALLOC".
|
||||
|
||||
- In src/m/MACHINE-NAME.h add "#define CANNOT_DUMP" and
|
||||
"#define CANNOT_UNEXEC".
|
||||
|
||||
- Configure with a different --prefix= option. If you use GCC,
|
||||
version 2.7.2 is preferred, as some malloc debugging packages
|
||||
work a lot better with it than with 2.95 or later versions.
|
||||
|
||||
- Type "make" then "make -k install".
|
||||
|
||||
- If required, invoke the package-specific command to prepare
|
||||
src/temacs for execution.
|
||||
|
||||
- cd ..; src/temacs
|
||||
|
||||
(Note that this runs `temacs' instead of the usual `emacs' executable.
|
||||
This avoids problems with dumping Emacs mentioned above.)
|
||||
|
||||
Some malloc debugging libraries might print lots of false alarms for
|
||||
bitfields used by Emacs in some data structures. If you want to get
|
||||
rid of the false alarms, you will have to hack the definitions of
|
||||
these data structures on the respective headers to remove the `:N'
|
||||
bitfield definitions (which will cause each such field to use a full
|
||||
int).
|
||||
|
||||
** Some suggestions for debugging on MS Windows:
|
||||
|
||||
(written by Marc Fleischeuers, Geoff Voelker and Andrew Innes)
|
||||
|
Loading…
Reference in New Issue
Block a user