aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2005-12-09 19:17:40 +0000
committerEli Zaretskii2005-12-09 19:17:40 +0000
commit3a817827e0f8e1006da5247e1f3dbc258281f77d (patch)
tree56f3ad67e48be29858614cf8ec77f14dd295ce0e
parentc95dddbee52712aaffb18c41dd914662f5cda8cd (diff)
downloademacs-3a817827e0f8e1006da5247e1f3dbc258281f77d.tar.gz
emacs-3a817827e0f8e1006da5247e1f3dbc258281f77d.zip
Add explanation of how to debug with GDB starting from the Emacs Abort dialog.
-rw-r--r--nt/INSTALL37
1 files changed, 25 insertions, 12 deletions
diff --git a/nt/INSTALL b/nt/INSTALL
index 2fb673d47d2..d756585ce20 100644
--- a/nt/INSTALL
+++ b/nt/INSTALL
@@ -243,7 +243,19 @@
243 243
244 You should be able to debug Emacs using the debugger that is 244 You should be able to debug Emacs using the debugger that is
245 appropriate for the compiler you used, namely DevStudio or Windbg if 245 appropriate for the compiler you used, namely DevStudio or Windbg if
246 compiled with MSVC, or gdb if compiled with gcc. 246 compiled with MSVC, or GDB if compiled with GCC.
247
248 When Emacs aborts due to a fatal internal error, Emacs on Windows
249 pops up an Emacs Abort Dialog asking you whether you want to debug
250 Emacs or terminate it. If Emacs was built with MSVC, click YES
251 twice, and Windbg or the DevStudio debugger will start up
252 automatically. If Emacs was built with GCC, first start GDB and
253 attach it to the Emacs process with the "gdb -p EMACS-PID" command,
254 where EMACS-PID is the Emacs process ID (which you can see in the
255 Windows Task Manager), type the "continue" command inside GDB, and
256 only then click YES on the abort dialog. This will pass control to
257 the debugger, and you will be able to debug the cause of the fatal
258 error.
247 259
248 Emacs functions implemented in C use a naming convention that reflects 260 Emacs functions implemented in C use a naming convention that reflects
249 their names in lisp. The names of the C routines are the lisp names 261 their names in lisp. The names of the C routines are the lisp names
@@ -254,17 +266,18 @@
254 easily set breakpoints or examine familiar lisp variables by name. 266 easily set breakpoints or examine familiar lisp variables by name.
255 267
256 Since Emacs data is often in the form of a lisp object, and the 268 Since Emacs data is often in the form of a lisp object, and the
257 Lisp_Object type is difficult to examine manually in the MSVC 269 Lisp_Object type is difficult to examine manually in a debugger,
258 debugger, Emacs provides a helper routine called debug_print that 270 Emacs provides a helper routine called debug_print that prints out a
259 prints out a readable representation of a Lisp_Object. (If you are 271 readable representation of a Lisp_Object. If you are using GDB,
260 using gdb, there is a .gdbinit file in the src directory which 272 there is a .gdbinit file in the src directory which provides
261 provides definitions that are useful for examining lisp objects. The 273 definitions that are useful for examining lisp objects. Therefore,
262 following tips are mainly of interest when using MSVC.) The output 274 the following tips are mainly of interest when using MSVC.
263 from debug_print is sent to stderr, and to the debugger via the 275
264 OutputDebugString routine. The output sent to stderr should be 276 The output from debug_print is sent to stderr, and to the debugger
265 displayed in the console window that was opened when the emacs.exe 277 via the OutputDebugString routine. The output sent to stderr should
266 executable was started. The output sent to the debugger should be 278 be displayed in the console window that was opened when the
267 displayed in its "Debug" output window. 279 emacs.exe executable was started. The output sent to the debugger
280 should be displayed in its "Debug" output window.
268 281
269 When you are in the process of debugging Emacs and you would like to 282 When you are in the process of debugging Emacs and you would like to
270 examine the contents of a Lisp_Object variable, popup the QuickWatch 283 examine the contents of a Lisp_Object variable, popup the QuickWatch