aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Roberts2004-05-13 22:07:24 +0000
committerNick Roberts2004-05-13 22:07:24 +0000
commit961102426d822e07bfd96bf02631969225dc1b60 (patch)
treed0e793f416321403aa0dce17cfd223c0d6ac51f5
parent1ab18d0b5150b356914f9f931bb326263966a4cd (diff)
downloademacs-961102426d822e07bfd96bf02631969225dc1b60.tar.gz
emacs-961102426d822e07bfd96bf02631969225dc1b60.zip
(GDB Graphical Interface): Update and describe layout first.
-rw-r--r--man/building.texi103
1 files changed, 58 insertions, 45 deletions
diff --git a/man/building.texi b/man/building.texi
index 2985a04895c..994e3be3f59 100644
--- a/man/building.texi
+++ b/man/building.texi
@@ -286,7 +286,7 @@ Emacs. @xref{MS-DOS}.
286The GUD (Grand Unified Debugger) library provides an interface to 286The GUD (Grand Unified Debugger) library provides an interface to
287various symbolic debuggers from within Emacs. We recommend the debugger 287various symbolic debuggers from within Emacs. We recommend the debugger
288GDB, which is free software, but you can also run DBX, SDB or XDB if you 288GDB, which is free software, but you can also run DBX, SDB or XDB if you
289have them. GUD can also serve as an interface to the Perl's debugging 289have them. GUD can also serve as an interface to Perl's debugging
290mode, the Python debugger PDB, and to JDB, the Java Debugger. 290mode, the Python debugger PDB, and to JDB, the Java Debugger.
291@xref{Debugging,, The Lisp Debugger, elisp, the Emacs Lisp Reference Manual}, 291@xref{Debugging,, The Lisp Debugger, elisp, the Emacs Lisp Reference Manual},
292for information on debugging Emacs Lisp programs. 292for information on debugging Emacs Lisp programs.
@@ -311,9 +311,13 @@ to a particular debugger program.
311@table @kbd 311@table @kbd
312@item M-x gdb @key{RET} @var{file} @key{RET} 312@item M-x gdb @key{RET} @var{file} @key{RET}
313@findex gdb 313@findex gdb
314Run GDB as a subprocess of Emacs. This command creates a buffer 314Run GDB as a subprocess of Emacs. If the variable
315for input and output to GDB, and switches to it. If a GDB buffer 315@code{gud-gdb-command-name} is ``gdb --annotate=3'' (the default
316already exists, it just switches to that buffer. 316value) then GDB starts as for @kbd{M-x gdba} below. If you want to
317GDB to start as in Emacs 21.3 and earlier then set
318@code{gud-gdb-command-name} to ``gdb --fullname''. In this case, the
319command creates a buffer for input and output to GDB, and switches to
320it. If a GDB buffer already exists, it just switches to that buffer.
317 321
318@item M-x gdba @key{RET} @var{file} @key{RET} 322@item M-x gdba @key{RET} @var{file} @key{RET}
319Run GDB as a subprocess of Emacs, providing a graphical interface 323Run GDB as a subprocess of Emacs, providing a graphical interface
@@ -638,13 +642,59 @@ mode is that you can do it through menus and clicks, without needing
638to know GDB commands. 642to know GDB commands.
639 643
640@menu 644@menu
645* Layout:: Control the number of displayed buffers.
641* Breakpoints Buffer:: A breakpoint control panel. 646* Breakpoints Buffer:: A breakpoint control panel.
642* Stack Buffer:: Select a frame from the call stack. 647* Stack Buffer:: Select a frame from the call stack.
643* Watch Expressions:: Monitor variable values in the speedbar. 648* Watch Expressions:: Monitor variable values in the speedbar.
644* Other Buffers:: Input/output, locals, registers and assembler buffers. 649* Other Buffers:: Input/output, locals, registers and assembler buffers.
645* Layout:: Control the number of displayed buffers.
646@end menu 650@end menu
647 651
652@node Layout
653@subsubsection Layout
654@cindex GDB User Interface layout
655
656@findex gdb-many-windows
657@vindex gdb-many-windows
658
659If the variable @code{gdb-many-windows} is @code{nil} (the default
660value) then gdb just pops up the GUD buffer unless the variable
661@code{gdb-show-main} is non-@code{nil}. In this case it starts with
662two windows: one displaying the GUD buffer and the other with the
663source file with the main routine of the inferior.
664
665If @code{gdb-many-windows} is non-@code{nil}, regardless of the value of
666@code{gdb-show-main}, the layout below will appear unless
667@code{gdb-use-inferior-io-buffer} is @code{nil}. In this case the
668source buffer occupies the full width of the frame.
669
670@multitable @columnfractions .5 .5
671@item GUD buffer (I/O of GDB)
672@tab Locals buffer
673@item
674@tab
675@item Source buffer
676@tab Input/Output (of inferior) buffer
677@item
678@tab
679@item Stack buffer
680@tab Breakpoints buffer
681@end multitable
682
683To toggle this layout, do @kbd{M-x gdb-many-windows}.
684
685@findex gdb-restore-windows
686If you change the window layout, for example, while editing and
687re-compiling your program, then you can restore it with the command
688@code{gdb-restore-windows}.
689
690You may also choose which additional buffers you want to display,
691either in the same frame or a different one. Select GDB-windows or
692GDB-Frames from the menu-bar under the heading GUD. If the menu-bar
693is unavailable, type @code{M-x
694gdb-display-@var{buffertype}-buffer} or @code{M-x
695gdb-frame-@var{buffertype}-buffer} respectively, where @var{buffertype}
696is the relevant buffer type e.g breakpoints.
697
648@node Breakpoints Buffer 698@node Breakpoints Buffer
649@subsubsection Breakpoints Buffer 699@subsubsection Breakpoints Buffer
650 700
@@ -705,7 +755,7 @@ on the tag to the left of the expression.
705@kindex RET @r{(GDB speedbar)} 755@kindex RET @r{(GDB speedbar)}
706@findex gdb-var-delete 756@findex gdb-var-delete
707With the cursor over the root expression of a complex data type, type 757With the cursor over the root expression of a complex data type, type
708@key{D} to delete it from the speedbar 758@kbd{D} to delete it from the speedbar
709(@code{gdb-var-delete}). 759(@code{gdb-var-delete}).
710 760
711@findex gdb-edit-value 761@findex gdb-edit-value
@@ -730,7 +780,8 @@ the default value is @code{nil}.
730 780
731@table @asis 781@table @asis
732@item Input/Output Buffer 782@item Input/Output Buffer
733The executable program that is being debugged takes its input and 783If the variable @code{gdb-use-inferior-io-buffer} is non-@code{nil},
784the executable program that is being debugged takes its input and
734displays its output here. Some of the commands from shell mode are 785displays its output here. Some of the commands from shell mode are
735available here. @xref{Shell Mode}. 786available here. @xref{Shell Mode}.
736 787
@@ -763,44 +814,6 @@ make the selected thread become the current one.
763 814
764@end table 815@end table
765 816
766@node Layout
767@subsubsection Layout
768@cindex GDB User Interface layout
769
770@findex gdb-many-windows
771@vindex gdb-many-windows
772If @code{gdb-many-windows} is @code{nil} (the default value), then GDB starts
773with just two windows: the GUD and the source buffer. If it is @code{t}, then
774six windows with the following layout will appear:
775
776@multitable @columnfractions .5 .5
777@item GUD buffer (I/O of GDB)
778@tab Locals buffer
779@item
780@tab
781@item Source buffer
782@tab Input/Output (of debuggee) buffer
783@item
784@tab
785@item Stack buffer
786@tab Breakpoints buffer
787@end multitable
788
789To toggle this layout, do @kbd{M-x gdb-many-windows}.
790
791@findex gdb-restore-windows
792If you change the window layout, for example, while editing and
793re-compiling your program, then you can restore it with
794@code{gdb-restore-windows}.
795
796You may also choose which additional buffers you want to display,
797either in the same frame or a different one. Select GDB-windows or
798GDB-Frames from the menu-bar under the heading GUD. If the menu-bar
799is unavailable, type @code{M-x
800gdb-display-@var{buffertype}-buffer} or @code{M-x
801gdb-frame-@var{buffertype}-buffer} respectively, where @var{buffertype}
802is the relevant buffer type e.g breakpoints.
803
804@node Executing Lisp 817@node Executing Lisp
805@section Executing Lisp Expressions 818@section Executing Lisp Expressions
806 819