~vcs-imports/gawk/master

« back to all changes in this revision

Viewing changes to doc/README.DGAWK

  • Committer: Arnold D. Robbins
  • Date: 2010-11-18 21:00:31 UTC
  • Revision ID: git-v1:6f3612539c425da2bc1d34db621696e6a273b01c
Bring latest byte code gawk into git. Hurray!

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
INVOKING:
 
2
 
 
3
        Invoking dgawk is similar to gawk. Run dgawk with all options and arguments as
 
4
you would supply to gawk. Command line scripts can not be debugged using dgawk.
 
5
dgawk expects at least one program text included via the -f option. If you include
 
6
programs using the --source option, dgawk will not stop at instructions originating
 
7
from that source. 
 
8
 
 
9
USAGE:
 
10
 
 
11
        $> dgawk -f foo.awk
 
12
        dgawk> list
 
13
        ...
 
14
        dgawk> break 5
 
15
        ...
 
16
        dgawk> run
 
17
        ...
 
18
        dgawk> next
 
19
        ...
 
20
        dgawk> continue
 
21
        ...
 
22
        dgawk> quit
 
23
 
 
24
 
 
25
COMMANDS:
 
26
 
 
27
        * help [command]
 
28
                prints a list of all commands and short descriptions.
 
29
                'help command' prints the information about command 'command'. 
 
30
 
 
31
        * info source|sources|variables|functions|break|frame|args|locals|display|watch
 
32
                * source
 
33
                        name of the current source file. Each time the program stops, the
 
34
                        current source file is the file containing the current instruction.
 
35
                        When dgawk first starts, the current source file is the first file
 
36
                        included via the -f option. The 'list filename:lineno' command can
 
37
                        be used at any time to change the current source.
 
38
                * sources
 
39
                        list all program sources.
 
40
                * variables
 
41
                        list all global variables.
 
42
                * functions
 
43
                        list all function definitions including source file names and
 
44
                        line numbers.
 
45
                * break
 
46
                        list all currently set breakpoints.
 
47
                * frame
 
48
                        description of the selected stack frame.
 
49
                * args
 
50
                        arguments of the selected frame.
 
51
                * locals
 
52
                        local variables of the selected frame.
 
53
                * display
 
54
                        list of all items in the automatic display list.
 
55
                * watch
 
56
                        list of all items in the watch list.
 
57
 
 
58
        * list [-|+|n|filename:n|m-n|function]
 
59
                prints specified lines (default 15) from the current source file
 
60
                or file named 'filename'.
 
61
                        -                       print lines before the lines last printed.       
 
62
                        +                       print lines after the lines last printed.
 
63
                                                list without any argument does the same thing.
 
64
                        n                       print lines centered around line number 'n'.
 
65
                        m-n                     print lines from 'm' to 'n'.
 
66
                        filename:n      print lines centered around line number 'n' in
 
67
                                                source file 'filename'. May change current source file.
 
68
                        function        print lines centered around beginning of the
 
69
                                                function 'function'. May change current source file.
 
70
 
 
71
        * break [[filename:]n|function]
 
72
                Without any argument, sets a breakpoint at the next instruction
 
73
                to be executed in the selected stack frame.
 
74
                        n                       set a breakpoint at line number 'n' in the current
 
75
                                                source file.
 
76
                        filename:n      set a breakpoint at line number 'n' in source file
 
77
                                                'filename'.
 
78
                        function        set a breakpoint at entry to function (first instruction)
 
79
                                                'function'.
 
80
 
 
81
        * tbreak [[filename:]n|function]
 
82
                set a temporary breakpoint (enabled for only one stop).
 
83
 
 
84
        * disable [n1 n2 ...] [m-n]
 
85
                disable specified breakpoints or a range of breakpoints. Without
 
86
                any argument, disables all breakpoints.
 
87
 
 
88
        * enable [once|del] [n1 n2 ...] [m-n]
 
89
                enable specified breakpoints or a range of breakpoints. Without
 
90
                any argument, enables all breakpoints.
 
91
                        once            enable breakpoint(s) temporarily, then disable it when
 
92
                                                the program stops at the breakpoint.
 
93
                        del                     enable breakpoint(s) tempoarily, then delete it when
 
94
                                                the program stops at the breakpoint.
 
95
 
 
96
        * delete [n1 n2 ...] [m-n]
 
97
                delete specified breakpoints or a range of breakpoints. Deletes
 
98
                all defined breakpoints if no argument is supplied.
 
99
 
 
100
        * clear [[filename:]n|function]
 
101
                without any argument, deletes any breakpoint at the next instruction
 
102
                to be executed in the selected stack frame. If the program stops at
 
103
                a breakpoint, this will delete that breakpoint so that the program
 
104
                does not stop at that location again.
 
105
                        n                       delete breakpoint(s) set at line number 'n' in current
 
106
                                                source file.
 
107
                        filename:n      delete breakpoint(s) set at line number 'n' in source
 
108
                                                file 'filename'.
 
109
                        function        delete breakpoint(s) set at entry to function 'function'.
 
110
 
 
111
        * ignore N COUNT
 
112
                ignore breakpoint N COUNT times before stopping.
 
113
 
 
114
        * run
 
115
                starts/restarts execution of the program. When restarting, dgawk retains
 
116
                current breakpoints, watchpoints, command history, automatic display
 
117
                variables and debugger options.
 
118
 
 
119
        * frame [N]
 
120
                select and print (frame number, function and argument names, source file,
 
121
                and the source line) stack frame N. Frame 0 is the currently executing
 
122
                or innermost frame (function call), frame 1 is the frame that called the
 
123
                innermost one. The highest numbered frame is the one for 'main'.
 
124
 
 
125
        * up [COUNT]
 
126
                move COUNT (default 1) frames up the stack toward the outermost frame.
 
127
                selects and prints the frame.
 
128
 
 
129
        * down [COUNT]
 
130
                move COUNT (default 1) frames down the stack toward the innermost frame.
 
131
                selects and prints the frame.
 
132
 
 
133
        * backtrace [COUNT]
 
134
                print backtrace of all function calls (stack frames), or innermost COUNT
 
135
                frames if COUNT > 0. Prints outermost -COUNT frames for COUNT < 0.
 
136
                Displays name and arguments to each function, source filename and line number.
 
137
 
 
138
        * continue [COUNT]
 
139
                resume program execution. If continued from a breakpoint and COUNT is
 
140
                specified, ignores the breakpoint at that location next COUNT times before
 
141
                stopping.
 
142
                
 
143
        * step [COUNT]
 
144
                continue execution until control reaches a different source line in the
 
145
                current stack frame. Step steps inside any function called within the line.
 
146
                If the argument COUNT is supplied, steps that many times before stopping,
 
147
                unless it encounters a breakpoint (or watchpoint).
 
148
 
 
149
        * next [COUNT]
 
150
                continue execution to the next source line, stepping over function calls.
 
151
                The argument COUNT controls how many times to repeat the action as
 
152
                in step.
 
153
                
 
154
        * stepi [COUNT]
 
155
                execute one (or COUNT) instruction(s), stepping inside function calls.
 
156
 
 
157
        * nexti [COUNT]
 
158
                execute one (or COUNT) instruction(s), stepping over function calls.
 
159
 
 
160
        * finish
 
161
                execute program until the selected stack frame returns.
 
162
                Prints the returned value.
 
163
 
 
164
        * return [value]
 
165
                cancel execution of a function call. If 'value' (either string or number)
 
166
                is specified, it is used as the function's return value. If used in a
 
167
                frame other than the the innermost one (currently executing function i.e.
 
168
                frame number 0), discards all outer frames in addition to the selected one,
 
169
                and the caller of that frame becomes the innermost frame.
 
170
 
 
171
        * until [[filename:]n|function]
 
172
                without any argument, continues execution until a line past the current
 
173
                line in current stack frame is reached. With argument,
 
174
                continues execution until the specified location is reached, or the current
 
175
                stack frame returns.
 
176
 
 
177
        * print var1[,|\s|\t var2 ...]
 
178
                print the value of a gawk variable or field. Fields must be referenced by
 
179
                constants:
 
180
                        dgawk> print $3
 
181
                prints the third field in the input record (if the specified field does not
 
182
                exist, it will print 'Null field'). Variable can be an array element, with
 
183
                the subscripts being constant values. To print the contents of an array,
 
184
                prefix the name of the array with the '@' symbol:
 
185
                        gawk> print @a
 
186
                prints the index and the corresponding value for all elements in array 'a'.
 
187
 
 
188
        * printf format, [arg], ...
 
189
        print formatted text. May include escape sequences, such as `\n'.
 
190
                No newline is printed unless specified one.
 
191
 
 
192
        * set var=value
 
193
                assign a constant (number or string) value to a gawk variable or field.
 
194
                String values must be enclosed between double quotes(").
 
195
 
 
196
        * display [var|$n]
 
197
                add variable 'var' (or field $n) to the automatic display list. The
 
198
                value of the variable or field is displayed each time the program stops.
 
199
                Each variable added to the list is identified by a unique number:
 
200
                        dgawk> display x
 
201
                        10: x = 1
 
202
                displays the assigned item number, the variable name and its current value.
 
203
                If the display variable refers to a function parameter, it is silently
 
204
                deleted from the list as soon as the execution reaches a context where
 
205
                no such variable of the given name exists.
 
206
                Without argument, displays the current values of items on the list.
 
207
 
 
208
        * undisplay [N]
 
209
                remove item number N (or all items) from the automatic display list.
 
210
 
 
211
        * watch var|$n
 
212
                add variable 'var' (or field $n) to the watch list. dgawk will stop whenever
 
213
                the value of the variable or field changes. Each watched item is assigned a
 
214
                number which can be used to delete it from the watch list using the
 
215
                unwatch command.
 
216
 
 
217
        * unwatch [N]
 
218
                remove item number N (or all items) from the watch list.
 
219
 
 
220
        * option [name[=value]]
 
221
                without argument, displays the available debugger options
 
222
                and their current values. 'option name' shows the current
 
223
                value of the named option. 'option name=value' assigns
 
224
                a new value to the named option.
 
225
                Available options:
 
226
                * listsize
 
227
                        the number of lines that list prints. The default is 15.
 
228
                * prompt
 
229
                        debugger prompt. The default is "dgawk> ".
 
230
                * trace [on|off]
 
231
                        turns instruction tracing on or off. The default is off.
 
232
                * outfile
 
233
                        sends gawk output to a file; debugger output still goes
 
234
                        to stdout. An empty string ("") resets output to stdout.
 
235
                * save_history [on|off]
 
236
                        save command history to file ./.dgawk_history. The default is 'on'.
 
237
                * history_size
 
238
                        maximum no of lines to keep in history file ./.dgawk_history.
 
239
                        The default is 100.
 
240
                * save_options [on|off]
 
241
                        save current options to file ./.dgawkrc on quit. The default is 'on'.
 
242
                        Options are read back in next session on startup.
 
243
 
 
244
        * commands [N]
 
245
        * silent
 
246
        * end
 
247
                'commands' sets list of commands to be executed when stopped at
 
248
                a breakpoint or watchpoint. N is the breakpoint or watchpoint number.
 
249
                Without a number, refers to the last one set. The actual commands follow
 
250
                starting on the next line and are terminated by the 'end' command.
 
251
                If the command 'silent' is in the list, the usual messages about stopping
 
252
                at a breakpoint and the sourceline are not printed. Any command
 
253
                in the list that resumes execution (e.g. continue) terminates the list
 
254
                (an implicit end), and subsequent commands are ignored.
 
255
                        
 
256
                        dgawk> commands
 
257
                        > silent
 
258
                        > printf "A silent breakpoint; i = %d\n", i
 
259
                        > info locals
 
260
                        > set i = 10
 
261
                        > continue
 
262
                        > end
 
263
                        dgawk>
 
264
 
 
265
        * source filename
 
266
                run command(s) from a file; an error in any command does not
 
267
                terminate execution of subsequent commands. Comments (lines starting
 
268
                with #) are allowed in a command file. Empty lines are ignored, does not
 
269
                repeat last command. Can't restart program by having more than one run
 
270
                command in the file.
 
271
                Can also use the '-R file' OR '--command=file' command line option to
 
272
                execute commands from a file non-interactively.  
 
273
 
 
274
        * save filename
 
275
                saves the commands from the current session to the given filename,
 
276
                so it can be replayed using the source command.
 
277
 
 
278
        * quit
 
279
                quit debugger.
 
280
 
 
281
 
 
282
READLINE SUPPORT:
 
283
 
 
284
        If compiled with readline library, you can take advantage of its command
 
285
completion and history expansion feature. The following types of completion
 
286
are available:
 
287
                * command completion
 
288
                        command names.
 
289
                * source filename completion
 
290
                        source file names. Relevant commands are list, break, tbreak, until,
 
291
                        and clear. 
 
292
                * argument completion
 
293
                        non-number arguments to a command. Relevant commands are info and enable.
 
294
                * variable name completion
 
295
                        global variable names, and function arguments in the current context
 
296
                        if the program is running. Relevant commands are print, set, watch,
 
297
                        and display.
 
298
 
 
299
REFERENCES:
 
300
 
 
301
        * Debugging with GDB, the manual for the GNU Source-Level Debugger.
 
302
        Much of the contents of this README shamelessly stolen and adapted from it.
 
303
        * GNU Readline User's Manual
 
304
        * GNU History User's Manual