aboutsummaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorEli Zaretskii2014-10-22 18:19:44 +0300
committerEli Zaretskii2014-10-22 18:19:44 +0300
commit97be2b8848dab2e460922fe182a5e1d8d40dcdde (patch)
treed917ff4744fcf6725a3f8c05c860c8d6b7c03d7f /etc
parentbe603ee9b653b14f62bb1bbcc6bded35e76f3ee7 (diff)
downloademacs-97be2b8848dab2e460922fe182a5e1d8d40dcdde.tar.gz
emacs-97be2b8848dab2e460922fe182a5e1d8d40dcdde.zip
etc/DEBUG: Improve instructions for debugging infinite loops.
Diffstat (limited to 'etc')
-rw-r--r--etc/DEBUG19
1 files changed, 12 insertions, 7 deletions
diff --git a/etc/DEBUG b/etc/DEBUG
index 096bdbc48c9..89e1a85088c 100644
--- a/etc/DEBUG
+++ b/etc/DEBUG
@@ -398,9 +398,13 @@ to start debugging.
398Don't assume Emacs is `hung'--it may instead be in an infinite loop. 398Don't assume Emacs is `hung'--it may instead be in an infinite loop.
399To find out which, make the problem happen under GDB and stop Emacs 399To find out which, make the problem happen under GDB and stop Emacs
400once it is not responding. (If Emacs is using X Windows directly, you 400once it is not responding. (If Emacs is using X Windows directly, you
401can stop Emacs by typing C-z at the GDB job.) Then try stepping with 401can stop Emacs by typing C-z at the GDB job. On MS-Windows, run Emacs
402`step'. If Emacs is hung, the `step' command won't return. If it is 402as usual, and then attach GDB to it -- that will usually interrupt
403looping, `step' will return. 403whatever Emacs is doing and let you perform the steps described
404below.)
405
406Then try stepping with `step'. If Emacs is hung, the `step' command
407won't return. If it is looping, `step' will return.
404 408
405If this shows Emacs is hung in a system call, stop it again and 409If this shows Emacs is hung in a system call, stop it again and
406examine the arguments of the call. If you report the bug, it is very 410examine the arguments of the call. If you report the bug, it is very
@@ -420,10 +424,11 @@ stepping, you will see where the loop starts and ends. Also, examine
420the data being used in the loop and try to determine why the loop does 424the data being used in the loop and try to determine why the loop does
421not exit when it should. 425not exit when it should.
422 426
423You can also trying sending Emacs SIGUSR2, which, if `debug-on-event' 427On GNU and Unix systems, you can also trying sending Emacs SIGUSR2,
424has its default value, will cause Emacs to attempt to break it out of 428which, if `debug-on-event' has its default value, will cause Emacs to
425its current loop and into the Lisp debugger. This feature is useful 429attempt to break it out of its current loop and into the Lisp
426when a C-level debugger is not conveniently available. 430debugger. This feature is useful when a C-level debugger is not
431conveniently available.
427 432
428** If certain operations in Emacs are slower than they used to be, here 433** If certain operations in Emacs are slower than they used to be, here
429is some advice for how to find out why. 434is some advice for how to find out why.