diff options
| author | Nick Roberts | 2006-06-06 23:16:32 +0000 |
|---|---|---|
| committer | Nick Roberts | 2006-06-06 23:16:32 +0000 |
| commit | fc275000aac4d9ef89705b400007bb7b7cbd697f (patch) | |
| tree | 8ade48c73251821a6d8648995543d5735b487ef0 | |
| parent | afbef80c864e95c7c4fa9e21972941f5def24a68 (diff) | |
| download | emacs-fc275000aac4d9ef89705b400007bb7b7cbd697f.tar.gz emacs-fc275000aac4d9ef89705b400007bb7b7cbd697f.zip | |
(Watch Expressions): Move node to end.
(GDB Graphical Interface): Move description of clicks in fringe...
(GDB commands in the Fringe): ...to here. New node.
| -rw-r--r-- | man/building.texi | 175 |
1 files changed, 104 insertions, 71 deletions
diff --git a/man/building.texi b/man/building.texi index 44f5ba32ce9..b55fc1e47c6 100644 --- a/man/building.texi +++ b/man/building.texi | |||
| @@ -807,20 +807,9 @@ Fully qualified class name derived from the expression surrounding point | |||
| 807 | interface, using Emacs windows for display program state information. | 807 | interface, using Emacs windows for display program state information. |
| 808 | In effect, this makes Emacs into an IDE (interactive development | 808 | In effect, this makes Emacs into an IDE (interactive development |
| 809 | environment). With it, you do not need to use textual GDB commands; | 809 | environment). With it, you do not need to use textual GDB commands; |
| 810 | you can control the debugging session with the mouse. | 810 | you can control the debugging session with the mouse. For example, |
| 811 | 811 | you can click in the fringe of a source buffer to set a breakpoint | |
| 812 | @c @findex gdb-mouse-set-clear-breakpoint | 812 | there, or on a stack frame in the stack buffer to select that frame. |
| 813 | @c @findex gdb-mouse-toggle-breakpoint | ||
| 814 | For example, you can click @kbd{Mouse-1} in the fringe or display | ||
| 815 | margin of a source buffer to set a breakpoint there and, on a | ||
| 816 | graphical display, a red bullet will appear on that line. If a | ||
| 817 | breakpoint already exists on that line, the same click will remove it. | ||
| 818 | You can also enable or disable a breakpoint by clicking @kbd{C-Mouse-1} | ||
| 819 | on the bullet. If you drag the debugger arrow in the fringe with | ||
| 820 | @kbd{Mouse-1} (@code{gdb-mouse-until}), execution will continue to the | ||
| 821 | line where you release the button, provided it is still in the same | ||
| 822 | frame. Alternatively, you can click @kbd{Mouse-3} at some point in | ||
| 823 | the fringe of this buffer and execution will advance to there. | ||
| 824 | 813 | ||
| 825 | This mode requires telling GDB that its ``screen size'' is | 814 | This mode requires telling GDB that its ``screen size'' is |
| 826 | unlimited, so it sets the height and width accordingly. For correct | 815 | unlimited, so it sets the height and width accordingly. For correct |
| @@ -839,9 +828,11 @@ that way, you can use @kbd{M-x gdba} to invoke GDB in graphical mode. | |||
| 839 | * GDB User Interface Layout:: Control the number of displayed buffers. | 828 | * GDB User Interface Layout:: Control the number of displayed buffers. |
| 840 | * Breakpoints Buffer:: A breakpoint control panel. | 829 | * Breakpoints Buffer:: A breakpoint control panel. |
| 841 | * Stack Buffer:: Select a frame from the call stack. | 830 | * Stack Buffer:: Select a frame from the call stack. |
| 842 | * Watch Expressions:: Monitor variable values in the speedbar. | ||
| 843 | * Other GDB User Interface Buffers:: Input/output, locals, registers, | 831 | * Other GDB User Interface Buffers:: Input/output, locals, registers, |
| 844 | assembler, threads and memory buffers. | 832 | assembler, threads and memory buffers. |
| 833 | * GDB commands in the Fringe:: Use the mouse in the fringe/margin to | ||
| 834 | control your program. | ||
| 835 | * Watch Expressions:: Monitor variable values in the speedbar. | ||
| 845 | @end menu | 836 | @end menu |
| 846 | 837 | ||
| 847 | @node GDB User Interface Layout | 838 | @node GDB User Interface Layout |
| @@ -958,62 +949,6 @@ frame and type @key{RET} (@code{gdb-frames-select}), or click | |||
| 958 | selecting a stack frame updates it to display the local variables of | 949 | selecting a stack frame updates it to display the local variables of |
| 959 | the new frame. | 950 | the new frame. |
| 960 | 951 | ||
| 961 | @node Watch Expressions | ||
| 962 | @subsubsection Watch Expressions | ||
| 963 | @cindex Watching expressions in GDB | ||
| 964 | |||
| 965 | @findex gud-watch | ||
| 966 | @kindex C-x C-a C-w @r{(GUD)} | ||
| 967 | If you want to see how a variable changes each time your program | ||
| 968 | stops, move point into the variable name and click on the watch icon | ||
| 969 | in the tool bar (@code{gud-watch}) or type @kbd{C-x C-a C-w}. If you | ||
| 970 | specify a prefix argument, you can enter the variable name in the | ||
| 971 | minibuffer. | ||
| 972 | |||
| 973 | Each watch expression is displayed in the speedbar. Complex data | ||
| 974 | types, such as arrays, structures and unions are represented in a tree | ||
| 975 | format. Leaves and simple data types show the name of the expression | ||
| 976 | and its value and, when the speedbar frame is selected, display the | ||
| 977 | type as a tooltip. Higher levels show the name, type and address | ||
| 978 | value for pointers and just the name and type otherwise. Root expressions | ||
| 979 | also display the frame address as a tooltip to help identify the frame | ||
| 980 | in which they were defined. | ||
| 981 | |||
| 982 | To expand or contract a complex data type, click @kbd{Mouse-2} | ||
| 983 | on the tag to the left of the expression. | ||
| 984 | |||
| 985 | @kindex D @r{(GDB speedbar)} | ||
| 986 | @findex gdb-var-delete | ||
| 987 | To delete a complex watch expression, move point to the root | ||
| 988 | expression in the speedbar and type @kbd{D} (@code{gdb-var-delete}). | ||
| 989 | |||
| 990 | @kindex RET @r{(GDB speedbar)} | ||
| 991 | @findex gdb-edit-value | ||
| 992 | To edit a variable with a simple data type, or a simple element of a | ||
| 993 | complex data type, move point there in the speedbar and type @key{RET} | ||
| 994 | (@code{gdb-edit-value}). Or you can click @kbd{Mouse-2} on a value to | ||
| 995 | edit it. Either way, this reads the new value using the minibuffer. | ||
| 996 | |||
| 997 | @vindex gdb-show-changed-values | ||
| 998 | If you set the variable @code{gdb-show-changed-values} to | ||
| 999 | non-@code{nil} (the default value), Emacs uses | ||
| 1000 | @code{font-lock-warning-face} to highlight values that have recently | ||
| 1001 | changed and @code{shadow} face to make variables which have gone out of | ||
| 1002 | scope less noticeable. When a variable goes out of scope you can't | ||
| 1003 | edit its value. | ||
| 1004 | |||
| 1005 | @vindex gdb-use-colon-colon-notation | ||
| 1006 | If the variable @code{gdb-use-colon-colon-notation} is | ||
| 1007 | non-@code{nil}, Emacs uses the @samp{@var{function}::@var{variable}} | ||
| 1008 | format. This allows the user to display watch expressions which share | ||
| 1009 | the same variable name. The default value is @code{nil}. | ||
| 1010 | |||
| 1011 | @vindex gdb-speedbar-auto-raise | ||
| 1012 | To automatically raise the speedbar every time the display of watch | ||
| 1013 | expressions updates, set @code{gdb-speedbar-auto-raise} to | ||
| 1014 | non-@code{nil}. This can be useful if you are debugging with a full | ||
| 1015 | screen Emacs frame. | ||
| 1016 | |||
| 1017 | @node Other GDB User Interface Buffers | 952 | @node Other GDB User Interface Buffers |
| 1018 | @subsubsection Other Buffers | 953 | @subsubsection Other Buffers |
| 1019 | 954 | ||
| @@ -1076,9 +1011,107 @@ Click @kbd{Mouse-1} on the appropriate part of the header line to | |||
| 1076 | change the starting address or number of data items that the buffer | 1011 | change the starting address or number of data items that the buffer |
| 1077 | displays. Click @kbd{Mouse-3} on the header line to select the | 1012 | displays. Click @kbd{Mouse-3} on the header line to select the |
| 1078 | display format or unit size for these data items. | 1013 | display format or unit size for these data items. |
| 1014 | @end table | ||
| 1015 | |||
| 1016 | @node GDB commands in the Fringe | ||
| 1017 | @subsubsection GDB commands in the Fringe | ||
| 1018 | @cindex GDB commands in the Fringe | ||
| 1079 | 1019 | ||
| 1020 | @c @findex gdb-mouse-set-clear-breakpoint | ||
| 1021 | @c @findex gdb-mouse-toggle-breakpoint | ||
| 1022 | Many GDB commands can be entered using keybindings or the tool bar but | ||
| 1023 | sometimes it is quicker to use the fringe. These commands either | ||
| 1024 | manipulate breakpoints or control program execution. When there is no | ||
| 1025 | fringe, you can use the margin but this is only present when the | ||
| 1026 | source file already has a breakpoint. | ||
| 1027 | |||
| 1028 | You can click @kbd{Mouse-1} in the fringe or display margin of a | ||
| 1029 | source buffer to set a breakpoint there and, on a graphical display, a | ||
| 1030 | red bullet will appear on that line. If a breakpoint already exists | ||
| 1031 | on that line, the same click will remove it. You can also enable or | ||
| 1032 | disable a breakpoint by clicking @kbd{C-Mouse-1} on the bullet. | ||
| 1033 | |||
| 1034 | If you drag the debugger arrow in the fringe with @kbd{Mouse-1} | ||
| 1035 | (@code{gdb-mouse-until}), execution will continue to the line where | ||
| 1036 | you release the button, provided it is still in the same frame. | ||
| 1037 | Alternatively, you can click @kbd{Mouse-3} at some point in the fringe | ||
| 1038 | of this buffer and execution will advance to there. A similar command | ||
| 1039 | (@code{gdb-mouse-jump}) allows you to jump to a source line without | ||
| 1040 | executing the intermediate lines by clicking @kbd{C-Mouse-3}. This | ||
| 1041 | command allows you to go backwards which can be useful for running | ||
| 1042 | through code that has already executed, in order to examine its | ||
| 1043 | execution in more detail. | ||
| 1044 | |||
| 1045 | @table @kbd | ||
| 1046 | @item Mouse-1 | ||
| 1047 | Set or clear a breakpoint. | ||
| 1048 | |||
| 1049 | @item C-Mouse-1 | ||
| 1050 | Enable or disable a breakpoint. | ||
| 1051 | |||
| 1052 | @item Mouse-3 | ||
| 1053 | Continue execution to here. | ||
| 1054 | |||
| 1055 | @item C-Mouse-3 | ||
| 1056 | Jump to here. | ||
| 1080 | @end table | 1057 | @end table |
| 1081 | 1058 | ||
| 1059 | @node Watch Expressions | ||
| 1060 | @subsubsection Watch Expressions | ||
| 1061 | @cindex Watching expressions in GDB | ||
| 1062 | |||
| 1063 | @findex gud-watch | ||
| 1064 | @kindex C-x C-a C-w @r{(GUD)} | ||
| 1065 | If you want to see how a variable changes each time your program | ||
| 1066 | stops, move point into the variable name and click on the watch icon | ||
| 1067 | in the tool bar (@code{gud-watch}) or type @kbd{C-x C-a C-w}. If you | ||
| 1068 | specify a prefix argument, you can enter the variable name in the | ||
| 1069 | minibuffer. | ||
| 1070 | |||
| 1071 | Each watch expression is displayed in the speedbar. Complex data | ||
| 1072 | types, such as arrays, structures and unions are represented in a tree | ||
| 1073 | format. Leaves and simple data types show the name of the expression | ||
| 1074 | and its value and, when the speedbar frame is selected, display the | ||
| 1075 | type as a tooltip. Higher levels show the name, type and address | ||
| 1076 | value for pointers and just the name and type otherwise. Root expressions | ||
| 1077 | also display the frame address as a tooltip to help identify the frame | ||
| 1078 | in which they were defined. | ||
| 1079 | |||
| 1080 | To expand or contract a complex data type, click @kbd{Mouse-2} | ||
| 1081 | on the tag to the left of the expression. | ||
| 1082 | |||
| 1083 | @kindex D @r{(GDB speedbar)} | ||
| 1084 | @findex gdb-var-delete | ||
| 1085 | To delete a complex watch expression, move point to the root | ||
| 1086 | expression in the speedbar and type @kbd{D} (@code{gdb-var-delete}). | ||
| 1087 | |||
| 1088 | @kindex RET @r{(GDB speedbar)} | ||
| 1089 | @findex gdb-edit-value | ||
| 1090 | To edit a variable with a simple data type, or a simple element of a | ||
| 1091 | complex data type, move point there in the speedbar and type @key{RET} | ||
| 1092 | (@code{gdb-edit-value}). Or you can click @kbd{Mouse-2} on a value to | ||
| 1093 | edit it. Either way, this reads the new value using the minibuffer. | ||
| 1094 | |||
| 1095 | @vindex gdb-show-changed-values | ||
| 1096 | If you set the variable @code{gdb-show-changed-values} to | ||
| 1097 | non-@code{nil} (the default value), Emacs uses | ||
| 1098 | @code{font-lock-warning-face} to highlight values that have recently | ||
| 1099 | changed and @code{shadow} face to make variables which have gone out of | ||
| 1100 | scope less noticeable. When a variable goes out of scope you can't | ||
| 1101 | edit its value. | ||
| 1102 | |||
| 1103 | @vindex gdb-use-colon-colon-notation | ||
| 1104 | If the variable @code{gdb-use-colon-colon-notation} is | ||
| 1105 | non-@code{nil}, Emacs uses the @samp{@var{function}::@var{variable}} | ||
| 1106 | format. This allows the user to display watch expressions which share | ||
| 1107 | the same variable name. The default value is @code{nil}. | ||
| 1108 | |||
| 1109 | @vindex gdb-speedbar-auto-raise | ||
| 1110 | To automatically raise the speedbar every time the display of watch | ||
| 1111 | expressions updates, set @code{gdb-speedbar-auto-raise} to | ||
| 1112 | non-@code{nil}. This can be useful if you are debugging with a full | ||
| 1113 | screen Emacs frame. | ||
| 1114 | |||
| 1082 | @node Executing Lisp | 1115 | @node Executing Lisp |
| 1083 | @section Executing Lisp Expressions | 1116 | @section Executing Lisp Expressions |
| 1084 | 1117 | ||