byebug 0.0.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. data/.gitignore +4 -0
  2. data/.travis.yml +0 -5
  3. data/CHANGELOG.md +6 -0
  4. data/Gemfile +1 -1
  5. data/LICENSE +23 -20
  6. data/byebug.gemspec +5 -5
  7. data/ext/byebug/breakpoint.c +102 -134
  8. data/ext/byebug/byebug.c +110 -64
  9. data/ext/byebug/byebug.h +2 -3
  10. data/ext/byebug/context.c +72 -39
  11. data/lib/byebug.rb +34 -38
  12. data/lib/byebug/command.rb +19 -24
  13. data/lib/byebug/commands/breakpoints.rb +11 -12
  14. data/lib/byebug/commands/catchpoint.rb +1 -1
  15. data/lib/byebug/commands/control.rb +2 -4
  16. data/lib/byebug/commands/finish.rb +1 -1
  17. data/lib/byebug/commands/frame.rb +15 -17
  18. data/lib/byebug/commands/info.rb +29 -28
  19. data/lib/byebug/commands/irb.rb +23 -21
  20. data/lib/byebug/commands/method.rb +4 -4
  21. data/lib/byebug/commands/reload.rb +8 -6
  22. data/lib/byebug/commands/set.rb +27 -23
  23. data/lib/byebug/commands/show.rb +6 -4
  24. data/lib/byebug/commands/stepping.rb +2 -2
  25. data/lib/byebug/commands/threads.rb +10 -10
  26. data/lib/byebug/commands/trace.rb +13 -14
  27. data/lib/byebug/commands/variables.rb +14 -12
  28. data/lib/byebug/context.rb +2 -15
  29. data/lib/byebug/interface.rb +5 -0
  30. data/lib/byebug/processor.rb +59 -64
  31. data/lib/byebug/version.rb +2 -1
  32. data/old_doc/Makefile +20 -0
  33. data/{man/rdebug.1 → old_doc/byebug.1} +5 -5
  34. data/old_doc/byebug.html +6178 -0
  35. data/old_doc/byebug.texi +3775 -0
  36. data/{doc → old_doc}/hanoi.rb +0 -0
  37. data/{doc → old_doc}/primes.rb +0 -0
  38. data/{doc → old_doc}/test-tri2.rb +0 -0
  39. data/{doc → old_doc}/tri3.rb +0 -0
  40. data/{doc → old_doc}/triangle.rb +0 -0
  41. data/test/breakpoints_test.rb +96 -60
  42. data/test/conditions_test.rb +15 -12
  43. data/test/examples/info.rb +5 -5
  44. data/test/examples/stepping.rb +1 -1
  45. data/test/frame_test.rb +40 -39
  46. data/test/info_test.rb +105 -96
  47. data/test/irb_test.rb +66 -61
  48. data/test/jump_test.rb +18 -9
  49. data/test/list_test.rb +114 -107
  50. data/test/restart_test.rb +51 -58
  51. data/test/save_test.rb +8 -7
  52. data/test/set_test.rb +8 -11
  53. data/test/show_test.rb +3 -5
  54. data/test/stepping_test.rb +43 -53
  55. data/test/support/context.rb +1 -0
  56. data/test/support/processor.rb +10 -4
  57. data/test/support/test_dsl.rb +46 -18
  58. data/test/support/test_interface.rb +8 -5
  59. data/test/test_helper.rb +2 -2
  60. data/test/trace_test.rb +123 -124
  61. metadata +39 -17
  62. data/AUTHORS +0 -10
  63. data/doc/rdebug-emacs.texi +0 -1030
@@ -1,1030 +0,0 @@
1
- \input texinfo @c -*-texinfo-*-
2
- @setfilename rdebug-emacs.info
3
-
4
- @set DBG ruby-debug
5
- @set ttrdebug @code{rdebug}
6
- @set ttDBG @code{@value{DBG}}
7
- @set Emacs @sc{gnu} Emacs
8
-
9
- @set RDEBUG_EMACS_VERSION 0.1
10
- @include version-rdebug-emacs.texi
11
- @finalout
12
-
13
- @c Karl Berry informs me that this will add straight quotes in
14
- @c typewriter text.
15
- @c See the "Inserting Quote Characters" node in the Texinfo manual
16
- @set txicodequoteundirected
17
- @set txicodequotebacktick
18
-
19
- @c THIS MANUAL REQUIRES TEXINFO 4.0 OR LATER.
20
-
21
- @c This is a dir.info fragment to support semi-automated addition of
22
- @c manuals to an info tree.
23
- @dircategory Programming & development tools.
24
- @direntry
25
- * ruby-debug-emacs: (ruby-debug). Ruby Byebug for GNU Emacs
26
- @end direntry
27
-
28
- @titlepage
29
- @title Debugging with @code{ruby-debug} inside GNU Emacs Version @value{RDEBUG_EMACS_VERSION}
30
- @sp 1
31
- @subtitle @value{EDITION} Edition
32
- @subtitle @value{UPDATED-MONTH}
33
- @author Rocky Bernstein and Anders Lindgren
34
- @page
35
- @ifset WHERETO
36
- @tex
37
- {\parskip=0pt
38
- \hfill (Send bugs and comments on ruby-debug to fill in...)\par
39
- \hfill {\it Debugging with {\tt ruby-debug}\par
40
- \hfill \TeX{}info \texinfoversion\par
41
- }
42
- @end tex
43
- @end ifset
44
- @end titlepage
45
- @page
46
-
47
- @node Top, Getting started, (dir), (dir)
48
- @top Debugging with ruby-debug under GNU Emacs
49
-
50
- @menu
51
- * Getting started::
52
- * The Multi-window Mode::
53
- * Byebug Buffers::
54
- * Emacs Byebug Commands:: Indexes (nodes containing large menus)
55
- * Emacs Command Index:: An item for each GNU/Emacs command name.
56
- * Emacs Function Index:: An item for each Emacs Function.
57
- * Emacs Key Binding Index:: An item for each Emacs Byebug Command.
58
-
59
- @detailmenu
60
- --- The Detailed Node Listing ---
61
-
62
- Getting started
63
-
64
- * Installation:: How to install this package
65
- * Emacs rdebug:: Invoke the ruby byebug initially
66
- * Emacs shell tracking mode:: Entering rdebug from an existing shell buffer
67
-
68
- Byebug Buffers
69
-
70
- * Byebug Command Buffer::
71
- * Emacs Source:: Commands from the source script
72
-
73
- Emacs Byebug Commands
74
-
75
- * Emacs Byebug Common Commands::
76
- * Emacs Byebug Breakpoint Buffer Commands::
77
- * Emacs Byebug Stack Buffer Commands::
78
- * Emacs Byebug Variable Buffer Commands::
79
- * Emacs Byebug Watch Buffer Commands::
80
- * Emacs GUD Commands::
81
-
82
- @end detailmenu
83
- @end menu
84
-
85
- This file describes ruby-debug, the Ruby Byebug,
86
- version @value{RDEBUG_EMACS_VERSION}
87
-
88
- This is the @value{EDITION} Edition, @value{UPDATED}
89
- @c Copyright (C) 2007 ...
90
-
91
- @c @node GNU Emacs
92
- @c @chapter Using @code{ruby-debug} from GNU Emacs
93
-
94
-
95
- @cindex @value{Emacs}
96
- A special interface which comes with Ruby that allows you to use
97
- @value{Emacs} to view (and edit) the source files for the program you
98
- are debugging with @value{DBG}. However you must be using at least
99
- version 21 of @value{Emacs}, but with @value{Emacs} version 22 or 23
100
- there are even more debugging features available. @code{M-x
101
- show-emacs-version} inside @value{Emacs} will tell you what version you
102
- are running.
103
-
104
- This package provide a full-fledged debugging environment, on par with
105
- modern integrated development environments. Once the byebug has been
106
- activated, the Emacs frame is divided into a number of dedicated
107
- byebug windows.@footnote{If you are an @value{Emacs} traditionalist,
108
- you can, of course, run this package with only a shell and source
109
- buffer}
110
-
111
- This package comes with a number of predefined window layouts. It is
112
- fully customizable so you can create your own.
113
-
114
- @c -------------------------------------------------------------------
115
-
116
-
117
- @node Getting started, The Multi-window Mode, Top, Top
118
- @chapter Getting started
119
-
120
- @menu
121
- * Installation:: How to install this package
122
- * Emacs rdebug:: Invoke the ruby byebug initially
123
- * Emacs shell tracking mode:: Entering rdebug from an existing shell buffer
124
- * Configurating this package:: Introducing the configure system
125
- @end menu
126
-
127
- @node Installation, Emacs rdebug, Getting started, Getting started
128
- @section Installation
129
-
130
- To use this interface, load the file @code{rdebug.el}. This file is a
131
- light-weight file, basically it only contains a handful of
132
- @code{autoload} directives.
133
-
134
- For example, you can place the following in your @code{~/.emacs} file:
135
-
136
- @smallexample
137
- (require 'rdebug)
138
- @end smallexample
139
-
140
- In addition, you must have Ruby and ruby-debug installed.
141
-
142
-
143
- @node Emacs rdebug, Emacs shell tracking mode, Installation, Getting started
144
- @section Emacs rdebug
145
-
146
- Use the command @kbd{M-x rdebug} in @sc{gnu} Emacs to start debugging.
147
- Give the executable file you want to debug as an argument. Make sure
148
- to use the version that comes with this package as this is newer than
149
- that supplied with @value{Emacs}.
150
-
151
- The @kbd{rdebug} command starts @value{DBG} as a subprocess of Emacs,
152
- with input and output through a newly created Emacs buffer.
153
-
154
- Using @value{DBG} under Emacs is just like using @value{DBG}
155
- normally except for two things:
156
-
157
- @itemize @bullet
158
- @item
159
- All ``terminal'' input and output goes through the GNU Emacs buffer.
160
- @end itemize
161
-
162
- This applies both to @value{DBG} commands and their output, and to the input
163
- and output done by the program you are debugging.
164
-
165
- This is useful because it means that you can copy the text of previous
166
- commands and input them again; you can even use parts of the output
167
- in this way.
168
-
169
- All the facilities of GNU Emacs' Shell mode are available for interacting
170
- with your script. In particular, you can send signals the usual
171
- way---for example, @kbd{C-c C-c} for an interrupt, @kbd{C-c C-z} for a
172
- stop.
173
-
174
- @node Emacs shell tracking mode, Configurating this package, Emacs rdebug, Getting started
175
- @section Entering rdebug from an existing shell buffer
176
-
177
- Many times it's not feasible to enter the byebug from the outset.
178
- Instead a call to the byebug is put inside the program.
179
-
180
- @c See @xref{Unit Testing Session}.
181
-
182
- It is also possible in GNU emacs to use a (``comint'') shell and set a
183
- mode to watch for @value{DBG} prompts and track the source code in
184
- another window. @xref{Interactive Shell, , Shell, Emacs, The @value{Emacs}
185
- Manual}.
186
-
187
- To enable, this run @kbd{M-x turn-on-rdebug-track-mode}. There is some
188
- overhead involved in scanning output, so if you are not debugging Ruby
189
- programs you probably want to turn this off which can be done via the
190
- @code{M-x turn-off-rdebugtrack} command.
191
-
192
-
193
- @node Configurating this package, , Emacs shell tracking mode, Getting started
194
- @section Configurating this package
195
-
196
- In this manual we present a number of @value{Emacs} lisp variables and
197
- functions that you can use to configure the byebug interface. In
198
- addition, you can use the @value{Emacs} @emph{customize} system, see the
199
- @kbd{<menu-bar> <byebug> <options> <customize>} menu item.
200
-
201
- @c -------------------------------------------------------------------
202
-
203
- @node The Multi-window Mode, Byebug Buffers, Getting started, Top
204
- @chapter Multi-window
205
-
206
- In the multi-window byebug mode, a number of buffers are visible when
207
- the byebug starts. This chapter will describe each of them, in
208
- addition it will describe the features associated with the multi-window
209
- mode.
210
-
211
- The default multi-window layout looks like the following:
212
-
213
- @verbatim
214
- +----------------------------------------------------------------------+
215
- | Toolbar |
216
- +-----------------------------------+----------------------------------+
217
- | | |
218
- | Byebug shell | Variables buffer |
219
- | | |
220
- +-----------------------------------+----------------------------------+
221
- | | |
222
- | Source buffer | Output buffer |
223
- | | |
224
- +-----------------------------------+----------------------------------+
225
- | | |
226
- | Stack buffer | Breakpoints buffer |
227
- | | |
228
- +-----------------------------------+----------------------------------+
229
- @end verbatim
230
-
231
- @section Activating Multi-window mode
232
-
233
- The variable @code{rdebug-many-windows} controls if multi-window mode
234
- should be used, it is enabled by default. When starting the byebug
235
- using the @code{M-x rdebug} mode the command line option @code{--emacs
236
- 3} must be specified (this is also the default).
237
-
238
- When attaching to an already running byebug process, you must give the
239
- byebug command @kbd{set annotate 3}.
240
-
241
- @section Window Layouts
242
-
243
- When the byebug is started, the original window layout of
244
- @value{Emacs} is replaced with the window layout of the byebug. You
245
- can switch back and forth between the original window layout and the
246
- byebug layout using
247
- @kbd{M-x rdebug-display-original-window-configuration} and
248
- @kbd{M-x rdebug-display-byebug-window-configuration}.
249
-
250
- If, for some reason, the byebug layout has been garbled you can
251
- restore it to the original state using @kbd{M-x
252
- rdebug-restore-byebug-window-layout}.
253
-
254
- The byebug provides a number of different window layouts. The easies
255
- way to try them out is to use the menu @kbd{<menu-bar> <byebug>
256
- <layout>} and select any in the section starting with @code{Standard}.
257
-
258
-
259
- @section The buffers
260
-
261
- All buffers in this section share a set of commands for common byebug
262
- operations and for switching between buffers. In addition, each buffer
263
- has got a set of dedicated commands.
264
-
265
- All byebug buffers, with the exception of source and the byebug
266
- shell window, are called @emph{secondary buffers}.
267
-
268
- @subsection Keybindings for all Byebug Windows
269
-
270
- The byebug provides key-bindings that work in all byebug windows,
271
- including Ruby source buffers. The key bindings are designed to match
272
- keys of commonly used byebug environments.
273
-
274
- The variable @code{rdebug-populate-common-keys-function} can be assigned
275
- to a function that should bind the keys use. Three functions are
276
- provided @code{rdebug-populate-common-keys-standard},
277
- @code{...-eclipse}, and @code{...-netbeans}.
278
-
279
- @multitable @columnfractions 0.4 0.2 0.2 0.2
280
- @headitem Command @tab Standard @tab Eclipse @tab Netbeans
281
- @item Run @tab f5 @tab @tab
282
- @item Quit @tab S-f5 @tab @tab
283
- @item Toggle Breakpoint @tab f9 @tab @tab
284
- @item Enable/Disable Breakpoint @tab C-f9 @tab S-C-b @tab S-f8
285
- @item Step over @tab f10 @tab f6 @tab f8
286
- @item Step into @tab f11 @tab f5 @tab f7
287
- @item Step out @tab S-f11 @tab f7 @tab M-S-f7
288
-
289
- @end multitable
290
-
291
-
292
-
293
- @subsection Keybindings for Secondary Buffers
294
-
295
- The following commands are available in all secondary windows.
296
-
297
- Capital letters move between secondary buffers as mentioned above (jump
298
- to if visible or replace a secondary if not).
299
-
300
- @table @kbd
301
- @item SPACE
302
- step (edebug compatible)
303
- @item <
304
- Up in the stack trace
305
- @item >
306
- Down in the stack trace
307
- @item ?
308
- Help
309
- @item B
310
- Display breakpoints buffer
311
- @item C
312
- Display command buffer
313
- @item O
314
- Display program output
315
- @item S
316
- Display source window
317
- @item T
318
- Display stack trace buffer
319
- @item V
320
- display variables buffer
321
- @item W
322
- display watch buffer
323
- @item b
324
- Set breakpoint
325
- @item c
326
- Continue (i.e. run)
327
- @item d
328
- Remove breakpoint
329
- @item f
330
- Finish (i.e. step out of the current function)
331
- @item n
332
- Next (i.e. step into function)
333
- @item p
334
- print
335
- @item q
336
- Quit
337
- @item r
338
- Restart
339
- @item s
340
- Step (i.e. step over function)
341
- @end table
342
-
343
- You can use the same commands in the source buffer if you enable
344
- @code{rdebug-short-key-mode}. The best way to do this is to add the
345
- following to your init file:
346
-
347
- @smallexample
348
- (add-hook 'rdebug-mode-hook 'rdebug-turn-on-short-key-mode)
349
- @end smallexample
350
-
351
-
352
-
353
- @subsection The Byebug Shell Buffer
354
-
355
- The @emph{byebug shell window} is the main communication channel
356
- between @value{DBG} and @value{Emacs}. You can use the shell to issue
357
- byebug commands directly. In addition, any @value{Emacs} byebug
358
- command you issue will be translated into shell commands, and the output
359
- will be parsed.
360
-
361
- It is the ambition that the @value{Emacs} byebug interface should be
362
- in a state where the byebug shell window would not need to be visible.
363
-
364
- @subsection The Source Buffer
365
-
366
- The @emph{source buffers} (or buffers) contains the actual Ruby source
367
- code that is being debugged. A small arrow in the left fringe displays
368
- the current line. Active breakpoints are displayed as red dots and
369
- passive as grey.
370
-
371
- @subsection The Output Buffer
372
-
373
- The @emph{output buffer} displays any output the debugged program emits.
374
-
375
- The option @code{rdebug-use-separate-io-buffer} controls if the output
376
- buffer should be used, or if the output would go into the byebug shell
377
- buffer.
378
-
379
- @subsection The Variables Buffer
380
-
381
- In this buffer, local and object variables are displayed. The values of
382
- the variables can be edited.
383
-
384
- @table @kbd
385
- @item RET
386
- Edit the value
387
- @item e
388
- Print the value
389
- @item x
390
- Pretty-print the value
391
- @end table
392
-
393
- @subsection The Stack Trace Buffer
394
-
395
- The @emph{stack trace} buffer displays the function that is currently
396
- being byebug, the function that called it, etc., all the way up to the
397
- originally called function.
398
-
399
- You can navigate in the stack trace buffer in order to see the source of
400
- any function in the call chain. The Variables buffer will also be
401
- updated to reflect the local variables of that function.
402
-
403
- @table @kbd
404
- @item RET
405
- Select a function to display
406
- @item <digits>
407
- Go to a stack frame
408
- @end table
409
-
410
- @subsection The Watch Buffer
411
-
412
- The @emph{Watch Buffer} can display arbitrary expressions, including,
413
- but not limited to, global variables.
414
-
415
- @table @kbd
416
- @item a
417
- Add a watch expression
418
- @item C-d, d
419
- Delete a watch expression
420
- @item RET, e
421
- Edit a watch expression
422
- @item <digits>
423
- Go to the expression
424
- @end table
425
-
426
- @subsection The Breakpoints Buffer
427
-
428
- The @emph{Breakpoints Buffer} displays all breakpoints that currently are
429
- defined and shows if they are enabled or disabled.
430
-
431
- @table @kbd
432
- @item t
433
- Toggle a breakpoint between enabled and disabled
434
- @item i
435
- Add a breakpoint condition
436
- @item ret
437
- Goto a breakpoint
438
- @item C-d
439
- Delete a breakpoint
440
- @item <digits>
441
- Go to the expression
442
- @end table
443
-
444
- @subsection The Help Buffer
445
-
446
- The @emph{Help Buffer} is displayed whenever you press @code{?}. It will
447
- display a help text on the available byebug commands and commands to
448
- navigate between the buffers.
449
-
450
-
451
- @c -------------------------------------------------------------------
452
-
453
- @node Byebug Buffers, Emacs Byebug Commands, The Multi-window Mode, Top
454
- @chapter Byebug Buffers
455
-
456
- @menu
457
- * Byebug Command Buffer::
458
- * Emacs Source:: Commands from the source script
459
- @end menu
460
-
461
- @node Byebug Command Buffer, Emacs Source, Byebug Buffers, Byebug Buffers
462
- @section Emacs Byebug Command buffer
463
-
464
- Each time @value{DBG} displays a stack frame, Emacs automatically finds the
465
- source file for that frame and puts an arrow (@samp{=>}) at the
466
- left margin of the current line. Emacs uses a separate buffer for
467
- source display, and splits the screen to show both your @value{DBG} session
468
- and the source.
469
-
470
- Explicit @value{DBG} @code{list} or search commands still produce output as
471
- usual, but you probably have no reason to use them from GNU Emacs.
472
-
473
- @quotation
474
- @emph{Warning:} If the directory where your script resides is not your
475
- current directory, it can be easy to confuse Emacs about the location of
476
- the source files, in which case the auxiliary display buffer does not
477
- appear to show your source. @value{DBG} can find programs by searching your
478
- environment's @code{PATH} variable, so the @value{DBG} input and output
479
- session proceeds normally; but Emacs does not get enough information
480
- back from @value{DBG} to locate the source files in this situation. To
481
- avoid this problem, either start @value{DBG} mode from the directory where
482
- your script resides, or specify an absolute file name when prompted for the
483
- @kbd{M-x gdb} argument.
484
-
485
- A similar confusion can result if you use the @value{DBG} @code{file} command to
486
- switch to debugging a program in some other location, from an existing
487
- @value{DBG} buffer in Emacs.
488
- @end quotation
489
-
490
- @noindent
491
- (preceded by @kbd{M-:} or @kbd{ESC :}, or typed in the @code{*scratch*} buffer, or
492
- in your @file{.emacs} file).
493
-
494
- In the @value{DBG} I/O buffer, you can use the Emacs commands listed
495
- below in addition to the standard Shell mode commands. The I/O buffer
496
- name name is usually @code{*gud-}@emph{script-name}@code{*}, where
497
- @emph{script-name} is the name of the script you are debugging.
498
-
499
- Many of the commands listed below are also bound to a second key
500
- sequence which also can be used in the also be used in the source
501
- script. These are listed in @ref{Emacs Source}.
502
-
503
- In secondary buffers many commands are available the corresponding
504
- final keystroke. For example @code{C-c n} in a secondary buffer is
505
- @code{n}.
506
-
507
- @table @kbd
508
- @item C-h m
509
- Describe the features of Emacs' @value{DBG} Mode.
510
-
511
- @item C-x C-a C-b (gud-break)
512
- @pindex C-x C-a C-b (gud-break)
513
- Set breakpoint at current line.
514
-
515
- @item C-x C-a C-d (gud-remove)
516
- @pindex C-x C-a C-d (gud-remove)
517
- Remove breakpoint at current line.
518
-
519
- @item C-x C-a C-l (gud-refresh)
520
- @pindex C-x C-a C-d (gud-refresh)
521
- Fix up a possibly garbled display, and redraw the arrow.
522
-
523
- @item C-c RET (comint-copy-old-input)
524
- @pindex C-c RET (comint-copy-old-input)
525
- Insert after prompt old input at point as new input to be edited.
526
- Calls `comint-get-old-input' to get old input.
527
-
528
- @item C-c n (gud-next)
529
- @pindex C-c n (gud-next)
530
- Step one line, skipping functions. (Step over).
531
-
532
- @item C-x C-a C-o (comint-delete-output)
533
- @pindex C-c n (comint-delete-output)
534
- Delete all output from interpreter since last input. Does not delete
535
- the prompt.
536
-
537
- @item C-x C-a C-r (gud-cont)
538
-
539
- @item C-c SPC (gud-step @var{arg})
540
- @pindex C-c SPC (gud-step @var{arg})
541
- @itemx C-x C-a C-s (gud-step @var{arg})
542
- @pindex C-x C-a C-s (gud-step @var{arg})
543
- Step one source line. Same as @value{DBG} @code{step} command. The
544
- @value{Emacs} command name is @code{gud-step} and @code{C-x C-a C-s}
545
- is an alternate binding which can be used in the source
546
- script.
547
- @c @xref{Step}.
548
-
549
- With a numeric argument, run that many times.
550
- @xref{Arguments, , Numeric Arguments, Emacs, The @value{Emacs}
551
- Manual}.
552
-
553
-
554
- @item C-x C-a C-t (gud-tbreak @var{arg})
555
- Set temporary breakpoint at current line.
556
-
557
- @item C-x C-a C-w (backward-kill-word)
558
- @item C-x C-a C-x (comint-get-next-from-history)
559
- @item C-x C-a C-z (comint-stop-subjob)
560
- Stop the current subjob.
561
- This command also kills the pending input
562
- between the process mark and point.
563
-
564
- WARNING: if there is no current subjob, you can end up suspending
565
- the top-level process running in the buffer. If you accidentally do
566
- this, use M-x comint-continue-subjob to resume the process. (This
567
- is not a problem with most shells, since they ignore this signal.)
568
-
569
- @item C-x C-a C-\ (comint-quit-subjob)
570
- Send quit signal to the current subjob.
571
- This command also kills the pending input
572
- between the process mark and point.
573
-
574
- @item C-c + (gud-step-plus)
575
- Run @code{step+}.
576
-
577
- @item C-c . (comint-insert-previous-argument @var{index})
578
- Insert the @emph{index-th} argument from the previous Comint command-line at point.
579
- Spaces are added at beginning and/or end of the inserted string if
580
- necessary to ensure that it's separated from adjacent arguments.
581
- Interactively, if no prefix argument is given, the last argument is inserted.
582
- Repeated interactive invocations will cycle through the same argument
583
- from progressively earlier commands (using the value of index specified
584
- with the first command).
585
-
586
- @item C-c < (gud-up)
587
- Go up a stack frame. With a numeric argument, go up that many
588
- stack frames. Same @value{DBG} @code{up} command.
589
- @xref{Arguments, , Numeric Arguments, Emacs, The @value{Emacs}
590
- Manual}.
591
-
592
- @item C-c > (gud-down)
593
- Go down a stack frame. Same as @value{DBG} @code{down}.
594
- With a numeric argument, go down that many stack frames.
595
- @xref{Arguments, , Numeric Arguments, Emacs, The @value{Emacs}
596
- Manual}.
597
-
598
- @item C-c ? (rdebug-display-secondary-window-help-buffer)
599
- Display the rdebug help buffer.
600
-
601
- @item C-c B (rdebug-display-breakpoints-buffer)
602
- Display the rdebug breakpoints buffer.
603
-
604
- @item C-x C-a C (rdebug-display-cmd-buffer)
605
- Display the rdebug command buffer.
606
-
607
- @item C-c O (rdebug-display-output-buffer)
608
- Display the rdebug output buffer.
609
-
610
- @item C-c R (gud-run)
611
- @itemx C-c r (gud run)
612
- Restart or run the script. Same as @value{DBG} @code{run} command.
613
-
614
- @item C-c S (gud-source-resync)
615
- @item C-c T (rdebug-display-stack-buffer)
616
- Display the rdebug stack buffer.
617
- @item C-c V (rdebug-display-variables-buffer)
618
- Display the rdebug variables buffer.
619
-
620
- @item C-c W (rdebug-display-watch-buffer)
621
- Display the rdebug watch buffer.
622
-
623
- @item C-c f (gud-finish @var{arg})
624
- @pindex C-c f (gud-finish @var{arg})
625
- Finish executing current function.
626
-
627
- @itemx C-x C-a C-f (gud-finish)
628
- @pindex C-x C-a C-f (gud-finish)
629
- Finish executing current function. The same as @value{DBG}
630
- @code{finish} command.
631
- @c @xref{Finish}.
632
-
633
- @item C-c n (gud-next)
634
- @pindex C-c n (gud-next)
635
- Execute to next source line in this function, skipping all function
636
- calls. Same as @value{DBG} @code{next} command.
637
- @c @xref{Next}.
638
-
639
- With a numeric argument, run that many times.
640
- @c @xref{Arguments, , Numeric Arguments, Emacs, The @value{Emacs} Manual}.
641
-
642
- @item C-c q (gud-quit)
643
-
644
- @item C-x C-a C-l
645
- Resynchronize the current position with the source window. The
646
- @value{Emacs} command name is @code{gud-refresh} and @code{C-x C-a
647
- C-l} is an alternate binding which also can be used in the source script.
648
-
649
- @item C-c a
650
- Shows argument variables (e.g.@: @code{$1}, @code{$2}) of the current
651
- stack frame. Same as @value{DBG} @code{info args} command. The
652
- @value{Emacs} command name is @code{gud-args} and @code{C-x C-a a} is
653
- an alternate binding which also can be used in the source script.
654
-
655
- @item C-c T
656
- Show stack trace. Same as @value{DBG} @code{where} command. The
657
- @value{Emacs} command name is @code{gud-where} and @code{C-x C-a T} is
658
- an alternate binding which can be used in the source
659
- script.
660
- @c @xref{Backtrace}.
661
-
662
- @end table
663
-
664
- In any source file, the Emacs command @kbd{C-x SPC} (@code{gud-break})
665
- tells @value{DBG} to set a breakpoint on the source line point is on.
666
-
667
- If you accidentally delete the source-display buffer, an easy way to get
668
- it back is to type the command @code{frame} in the @value{DBG} buffer, to
669
- request a frame display; when you run under Emacs, this recreates
670
- the source buffer if necessary to show you the context of the current
671
- frame.
672
-
673
- The source files displayed in Emacs are in ordinary Emacs buffers
674
- which are visiting the source files in the usual way. You can edit
675
- the files with these buffers if you wish; but keep in mind that @value{DBG}
676
- communicates with Emacs in terms of line numbers. If you add or
677
- delete lines from the text, the line numbers that @value{DBG} knows cease
678
- to correspond properly with the code.
679
-
680
- @xref{Byebug Operation, , , Emacs, The @value{Emacs}
681
- Manual}.
682
-
683
- @node Emacs Source, , Byebug Command Buffer, Byebug Buffers
684
- @section Commands from the source script
685
-
686
- @table @kbd
687
- @item C-x SPC
688
-
689
- tells @value{DBG} to set a breakpoint on the source
690
- line point is on. (@code{gud-break})
691
-
692
- @item C-x C-a t
693
-
694
- @code{gud-linetrace}
695
-
696
- @item C-x C-a C-f
697
- Restart or run the script. Same as @value{DBG} @code{run} command. The
698
- @value{Emacs} command name is @code{gud-finish}. In the corresponding
699
- I/O buffer, @code{C-c R} is an alternate binding.
700
-
701
- @item C-x C-a T
702
- Show stack trace. Same as @value{DBG} @code{where} command. In the
703
- corresponding I/O buffer, @code{C-c T} is an alternate
704
- binding.
705
- @c @xref{Backtrace}.
706
-
707
- @item C-x C-a <
708
-
709
- Go up a stack frame. With a numeric argument, go up that many
710
- stack frames. Same @value{DBG} @code{up} command.
711
- @xref{Arguments, , Numeric Arguments, Emacs, The @value{Emacs} Manual}.
712
-
713
- The @value{Emacs} command name is @code{gud-up}. In the corresponding
714
- I/O buffer, @code{C-c <} is an alternate binding.
715
-
716
- @item C-x C-a >
717
-
718
- Go down a stack frame. Same as @value{DBG} @code{down}.
719
- With a numeric argument, go down that many stack frames.
720
- @xref{Arguments, , Numeric Arguments, Emacs, The @value{Emacs}
721
- Manual}.
722
-
723
- The @value{Emacs} command name is @code{gud-down}. In the
724
- corresponding I/O buffer, @code{C-c >} is an alternate binding.
725
-
726
- @item C-x C-a C-t
727
-
728
- @code{gud-tbreak}
729
-
730
- @item C-x C-a C-s
731
-
732
- Step one source line. Same as @value{DBG} @code{step}
733
- command.
734
- @c @xref{Step}.
735
-
736
- With a numeric argument, run that many times.
737
- @xref{Arguments, , Numeric Arguments, Emacs, The @value{Emacs}
738
- Manual}.
739
-
740
- The @value{Emacs} command name is @code{gud-step}. In the
741
- corresponding I/O buffer, @code{C-x C-a C-s} is an alternate binding.
742
-
743
- @item C-x C-a C-e
744
-
745
- @code{gud-statement}
746
-
747
- @item C-x C-a R
748
- Restart or run the script. Same as @value{DBG} @code{run} command. The
749
- @value{Emacs} command name is @code{gud-run}. In the corresponding I/O
750
- buffer, @code{C-c R} is an alternate binding.
751
-
752
- @item C-x C-a C-d
753
- Delete breakpoint. @code{gud-remove}
754
-
755
- @item C-x C-a C-p
756
-
757
- @code{gud-print}
758
-
759
- @item C-x C-a C-n
760
-
761
- Execute to next source line in this function, skipping all function
762
- calls. Same as @value{DBG} @code{next} command. With a numeric
763
- argument, run that many times. @xref{Arguments, , Numeric Arguments,
764
- Emacs, The @value{Emacs} Manual}.
765
-
766
- The @value{Emacs} command name is @code{gud-next}. In the
767
- corresponding I/O buffer, @code{C-x C-a C-n} is an alternate binding.
768
-
769
- @item C-x C-a f C-f
770
-
771
- @code{gud-finish}
772
-
773
- @item C-x C-a C-r
774
- Continue execution of your script Same as @value{DBG} @code{continue}
775
- command. The @value{Emacs} command name is @code{gud-cont}. In the
776
- corresponding I/O buffer, @code{C-x C-a C-r} is an alternate binding.
777
- @c See @ref{Continue}.
778
-
779
- @item C-x C-a C-b
780
-
781
- @code{gud-break}
782
-
783
- @item C-x C-a a
784
-
785
- @code{gud-args}
786
- Shows argument variables (e.g.@: @code{$1}, @code{$2}) of the current
787
- stack frame. Same as @value{DBG} @code{info args} command. The
788
- @value{Emacs} command name is @code{gud-args}. In the corresponding
789
- I/O buffer, @code{C-c a} is an alternate binding which also can be
790
- used in the source script.
791
-
792
- @item C-x C-a C-l
793
- Move to current position in this source window. The @value{Emacs}
794
- command name is @code{gud-refresh}. In the corresponding I/O buffer,
795
- @code{C-x C-a C-l} is an alternate binding.
796
-
797
- @end table
798
-
799
- @node Emacs Byebug Commands, Emacs Command Index, Byebug Buffers, Top
800
- @chapter Emacs Byebug Commands
801
-
802
- @menu
803
- * Emacs Byebug Common Commands::
804
- * Emacs Byebug Breakpoint Buffer Commands::
805
- * Emacs Byebug Stack Buffer Commands::
806
- * Emacs Byebug Variable Buffer Commands::
807
- * Emacs Byebug Watch Buffer Commands::
808
- * Emacs GUD Commands::
809
- @end menu
810
-
811
- @node Emacs Byebug Common Commands, Emacs Byebug Breakpoint Buffer Commands, Emacs Byebug Commands, Emacs Byebug Commands
812
- @section Emacs Byebug Common Commands
813
-
814
- The commands in this section are used to make a secondary buffer
815
- visible. If the buffer doesn't exist, nothing is done.
816
- The way the buffer is made visible is follows the following
817
- rules tried in order:
818
-
819
- @enumerate
820
- @item
821
- If the buffer doesn't exist, do nothing.
822
- @item
823
- If the buffer is already displayed, switch to it.
824
- @item
825
- If the current buffer is a
826
- secondary buffer, bury it replacing with the requested
827
- buffer.
828
- @item
829
- If there is secondary buffer visible, that
830
- is replaced instead.
831
- @item
832
- Just pick a visible buffer to bury and replace.
833
- @end enumerate
834
-
835
- The commands are also have key bindings that end in an uppercase
836
- letter. This letter is given in parenthesis. When in one of the
837
- secondary buffers, the uppercase letter is bound to the command as well.
838
-
839
- @table @kbd
840
-
841
- @item (rdebug-display-breakpoints-buffer) (@kbd{B})
842
- @findex rdebug-display-breakpoints-buffer (@kbd{B})
843
- Display the rdebug breakpoints buffer. Bound to: @kbd{C-x C-a B},
844
- @kbd{<menu-bar> <byebug> <view> <breakpoints>}. Secondary buffers:
845
- @kbd{O}.
846
-
847
- @item (rdebug-display-cmd-buffer) (@kbd{C})
848
- @findex rdebug-display-cmd-buffer (@kbd{C})
849
- Display the byebug command buffer.
850
-
851
- Bound to: @kbd{C-x C-a C}, @kbd{<menu-bar> <byebug> <view> <shell>}.
852
-
853
- @item (rdebug-display-output-buffer) (@kbd{O})
854
- @findex rdebug-display-output-buffer (@kbd{?})
855
- Display the byebug output buffer.
856
-
857
- Bound to: @kbd{C-x C-a O}, @kbd{<menu-bar> <byebug> <view>
858
- <output>}. Secondary buffers: @kbd{O}.
859
-
860
- @item (rdebug-display-secondary-window-help-buffer) (@kbd{?})
861
- @findex rdebug-display-secondary-window-help-buffer (@kbd{?})
862
-
863
- @item (rdebug-display-stack-buffer) (@kbd{T})
864
- @findex rdebug-display-stack-buffer (@kbd{T})
865
- Display the byebug stack buffer. Bound to: @kbd{C-x C-a T},
866
- @kbd{<menu-bar> <byebug> <view> <stack>}. Secondary buffers: @kbd{T}.
867
-
868
- @item (rdebug-display-variables-buffer) (@kbd{V})
869
- @findex rdebug-display-variables-buffer (@kbd{V})
870
- Display the byebug variables buffer. Bound to: @kbd{C-x C-a V},
871
- @kbd{<menu-bar> <byebug> <view> <variables>}. Secondary buffers:
872
- @kbd{V}.
873
-
874
- @item (rdebug-display-watch-buffer) (@kbd{W})
875
- @findex rdebug-display-watch-buffer (@kbd{W})
876
- Display the byebug variables buffer. Bound to: @kbd{C-x C-a W},
877
- @kbd{<menu-bar> <byebug> <view> <watch>}. Secondary buffers: @kbd{V}.
878
-
879
- @item (rdebug-display-byebug-window-configuration)
880
- @findex rdebug-display-byebug-window-configuration
881
- Display the current layout of windows of the rdebug Ruby byebug.
882
- @item (rdebug-display-original-window-configuration)
883
- @findex rdebug-display-original-window-configuration
884
- Display the layout of windows prior to starting the rdebug Ruby
885
- byebug. This function is called upon quitting the byebug and
886
- @var{rdebug-many-windows} is not nil.
887
- @item (rdebug-goto-entry-n)
888
- @findex rdebug-goto-entry-n
889
- Breakpoints, Display expressions and Stack Frames all have
890
- numbers associated with them which are distinct from line
891
- numbers. In a secondary buffer, this function is usually bound to
892
- a numeric key. which will position you at that entry number. To
893
- go to an entry above 9, just keep entering the number. For
894
- example, if you press 1 and then 9, you should jump to entry
895
- 1 (if it exists) and then 19 (if that exists). Entering any
896
- non-digit will start entry number from the beginning again.
897
- @item (rdebug-quit) - q
898
- @findex rdebug-quit (q)
899
- Kill the byebug process associated with the buffer.
900
-
901
- When @var{rdebug-many-windows} is active, the original window layout is
902
- restored.
903
- @item (rdebug-restore-windows)
904
- @findex rdebug-restore-windows
905
- Display the initial ruby byebug window layout.
906
-
907
- @end table
908
-
909
-
910
- @node Emacs Byebug Breakpoint Buffer Commands, Emacs Byebug Stack Buffer Commands, Emacs Byebug Common Commands, Emacs Byebug Commands
911
- @section Emacs Byebug Breakpoint Buffer Commands
912
-
913
- @table @kbd
914
- @item (rdebug-goto-breakpoint)
915
- @findex rdebug-goto-breakpoint
916
- @item (rdebug-goto-breakpoint-mouse)
917
- @findex rdebug-goto-breakpoint-mouse
918
- @item (rdebug-breakpoints-mode)
919
- @findex rdebug-breakpoints-mode
920
- Major mode for displaying breakpoints in a secondary window. Uses
921
- @var{rdebug-breakpoints-mode-map}.
922
- @end table
923
-
924
- @node Emacs Byebug Stack Buffer Commands, Emacs Byebug Variable Buffer Commands, Emacs Byebug Breakpoint Buffer Commands, Emacs Byebug Commands
925
- @section Emacs Byebug Stack Buffer Commands
926
-
927
- @table @kbd
928
- @item (rdebug-goto-stack-frame)
929
- @findex rdebug-goto-stack-frame
930
- @item (rdebug-frames-mode)
931
- @findex rdebug-frames-mode
932
- Major mode for displaying the stack trace. Uses
933
- @var{rdebug-frames-mode-map}.
934
- @end table
935
-
936
- @node Emacs Byebug Variable Buffer Commands, Emacs Byebug Watch Buffer Commands, Emacs Byebug Stack Buffer Commands, Emacs Byebug Commands
937
- @section Emacs Byebug Variable Buffer Commands
938
-
939
- @table @kbd
940
- @item (rdebug-variables-edit)
941
- @findex rdebug-variables-edit
942
- @end table
943
-
944
- @node Emacs Byebug Watch Buffer Commands, Emacs GUD Commands, Emacs Byebug Variable Buffer Commands, Emacs Byebug Commands
945
- @section Emacs Byebug Watch Buffer Commands
946
-
947
- @table @kbd
948
- @item (rdebug-watch-add)
949
- @findex rdebug-watch-add
950
- Add a display expression.
951
- @item (rdebug-watch-delete)
952
- @findex rdebug-watch-delete
953
- Delete a display expression.
954
- @item (rdebug-watch-edit)
955
- @findex rdebug-watch-edit
956
- Edit a display expression.
957
- @item (rdebug-watch-mode)
958
- @findex rdebug-watch-mode
959
- Major mode for displaying the display expressions. Uses
960
- @var{rdebug-watch-mode-map}.
961
- @end table
962
-
963
- @node Emacs GUD Commands, , Emacs Byebug Watch Buffer Commands, Emacs Byebug Commands
964
- @section Emacs Byebug GUD Commands
965
-
966
- @table @kbd
967
- @item (comint-copy-old-input)
968
- @findex comint-copy-old-input
969
- Insert after prompt old input at point as new input to be edited.
970
- Calls `comint-get-old-input' to get old input.
971
- @item (comint-delete-output)
972
- @findex comint-delete-output
973
- Delete all output from interpreter since last input.
974
- Does not delete the prompt.
975
- @item (gud-break)
976
- @findex gud-break
977
- Set a breakpoint on the source line point is on.
978
- @item (gud-cont) - c
979
- @findex gud-cont (c)
980
- Continue execution.
981
- @item (gud-next) - n
982
- @findex gud-next (n)
983
- Step one line, skipping functions. (Step over).
984
- @item (gud-refresh)
985
- @findex gud-refresh
986
- Fix up a possibly garbled display, and redraw the arrow.
987
- @item (gud-remove)
988
- @findex gud-remove
989
- Remove breakpoint at current line.
990
- @item (gud-step) - s
991
- @findex gud-step (s)
992
- Step one statement. (Step into)
993
- @item (gud-step-plus) - +
994
- @findex gud-step-plus (+)
995
- Run @code{step+}---like @code{gud-step} but ensure we go to a new
996
- line.
997
- @item (gud-tbreak @var{arg})
998
- @findex gud-tbreak
999
- Set temporary breakpoint at current line.
1000
- @end table
1001
-
1002
- @node Emacs Command Index, Emacs Function Index, Emacs Byebug Commands, Top
1003
- @unnumbered Emacs Command Index
1004
- @printindex pg
1005
-
1006
- @node Emacs Function Index, Emacs Key Binding Index, Emacs Command Index, Top
1007
- @unnumbered Emacs Function Index
1008
- @printindex fn
1009
-
1010
- @node Emacs Key Binding Index, , Emacs Function Index, Top
1011
- @unnumbered Key Binding Index
1012
- @printindex ky
1013
-
1014
- @tex
1015
- % I think something like @colophon should be in texinfo. In the
1016
- % meantime:
1017
- \long\def\colophon{\hbox to0pt{}\vfill
1018
- \centerline{The body of this manual is set in}
1019
- \centerline{\fontname\tenrm,}
1020
- \centerline{with headings in {\bf\fontname\tenbf}}
1021
- \centerline{and examples in {\tt\fontname\tentt}.}
1022
- \centerline{{\it\fontname\tenit\/},}
1023
- \centerline{{\bf\fontname\tenbf}, and}
1024
- \centerline{{\sl\fontname\tensl\/}}
1025
- \centerline{are used for emphasis.}\vfill}
1026
- \page\colophon
1027
- % Blame: doc@cygnus.com, 1991.
1028
- @end tex
1029
-
1030
- @bye