byebug 2.1.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +9 -0
  4. data/CONTRIBUTING.md +13 -1
  5. data/GUIDE.md +181 -1
  6. data/README.md +67 -211
  7. data/Rakefile +1 -0
  8. data/bin/byebug +1 -8
  9. data/ext/byebug/byebug.c +66 -25
  10. data/ext/byebug/context.c +16 -20
  11. data/ext/byebug/extconf.rb +2 -1
  12. data/lib/byebug.rb +16 -9
  13. data/lib/byebug/command.rb +3 -3
  14. data/lib/byebug/commands/condition.rb +2 -2
  15. data/lib/byebug/commands/edit.rb +12 -9
  16. data/lib/byebug/commands/eval.rb +0 -16
  17. data/lib/byebug/commands/frame.rb +7 -17
  18. data/lib/byebug/commands/info.rb +2 -9
  19. data/lib/byebug/commands/list.rb +1 -1
  20. data/lib/byebug/commands/reload.rb +11 -0
  21. data/lib/byebug/commands/repl.rb +3 -6
  22. data/lib/byebug/commands/set.rb +5 -5
  23. data/lib/byebug/commands/show.rb +5 -0
  24. data/lib/byebug/commands/threads.rb +4 -4
  25. data/lib/byebug/commands/trace.rb +2 -1
  26. data/lib/byebug/context.rb +14 -5
  27. data/lib/byebug/interface.rb +1 -1
  28. data/lib/byebug/processor.rb +1 -1
  29. data/lib/byebug/remote.rb +1 -24
  30. data/lib/byebug/version.rb +1 -1
  31. data/old_doc/byebug.1 +0 -3
  32. data/old_doc/byebug.texi +2 -3
  33. data/test/breakpoints_test.rb +75 -52
  34. data/test/conditions_test.rb +2 -3
  35. data/test/continue_test.rb +6 -0
  36. data/test/edit_test.rb +3 -3
  37. data/test/eval_test.rb +14 -5
  38. data/test/examples/breakpoint.rb +4 -13
  39. data/test/examples/breakpoint_deep.rb +1 -21
  40. data/test/examples/conditions.rb +1 -1
  41. data/test/examples/continue.rb +2 -1
  42. data/test/examples/edit.rb +1 -0
  43. data/test/examples/eval.rb +1 -11
  44. data/test/examples/finish.rb +0 -17
  45. data/test/examples/frame.rb +2 -26
  46. data/test/examples/frame_deep.rb +0 -19
  47. data/test/examples/help.rb +0 -1
  48. data/test/examples/info.rb +4 -36
  49. data/test/examples/kill.rb +1 -1
  50. data/test/examples/list.rb +1 -1
  51. data/test/examples/method.rb +2 -13
  52. data/test/examples/post_mortem.rb +1 -16
  53. data/test/examples/quit.rb +1 -1
  54. data/test/examples/reload.rb +1 -1
  55. data/test/examples/restart.rb +1 -1
  56. data/test/examples/show.rb +0 -1
  57. data/test/examples/stepping.rb +2 -19
  58. data/test/examples/thread.rb +0 -27
  59. data/test/examples/variables.rb +0 -22
  60. data/test/finish_test.rb +22 -6
  61. data/test/frame_test.rb +89 -56
  62. data/test/info_test.rb +71 -46
  63. data/test/kill_test.rb +6 -1
  64. data/test/list_test.rb +1 -2
  65. data/test/method_test.rb +32 -13
  66. data/test/post_mortem_test.rb +34 -21
  67. data/test/quit_test.rb +0 -1
  68. data/test/restart_test.rb +6 -0
  69. data/test/set_test.rb +1 -1
  70. data/test/show_test.rb +17 -17
  71. data/test/source_test.rb +2 -3
  72. data/test/stepping_test.rb +31 -7
  73. data/test/support/test_dsl.rb +11 -1
  74. data/test/test_helper.rb +9 -0
  75. data/test/thread_test.rb +57 -23
  76. data/test/trace_test.rb +0 -1
  77. data/test/variables_test.rb +36 -17
  78. metadata +3 -9
  79. data/test/examples/breakpoint2.rb +0 -7
  80. data/test/examples/jump.rb +0 -14
  81. data/test/examples/set_annotate.rb +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8ce377f1e91c98824d4b2f13186abca18ae9916f
4
- data.tar.gz: e8225ad23bd321ce9fa0373a2d30fb7b6fa9fad8
3
+ metadata.gz: f8478138d1bb0441775054b1f4ba7feb59429a60
4
+ data.tar.gz: 1404c249bcc849e2b9ae0240617ef590e88b8b96
5
5
  SHA512:
6
- metadata.gz: e24e6c9e24efbd1e88f298c5a091af7348ad679f2ef2945b4b5e46ad3db2ea7da123dc0bc41d3e4696bd68a8b371694266480a16bda074f7b6de17188e926013
7
- data.tar.gz: a6e0cda3871f5555ea1ab7b025a1c47af188573172d83e87eb5966bf091419cb2a7e16bcc0de65abce2677b11475d585ed922044838c7b4a4969bf6e5e4e3b45
6
+ metadata.gz: 1cc5b019263bc58a174d59b5ad8829dc8781e53722b3742091e879122916484d3ef73e46be20f20cbb72359a0cee62843ca8cfde9676ff15a1101f0c27519914
7
+ data.tar.gz: 46c6792714d460d1aaaf99cc487da5a8d0f0a72c81253e3c6e0d98df1af90358be796ef1de87ce7f1e43f44e4f6d1f575896683acde1e4811325c5c5c0511236
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ doc
15
15
  Gemfile.lock
16
16
 
17
17
  lib/byebug.so
18
+ lib/byebug.bundle
@@ -1,3 +1,12 @@
1
+ # 2.2.0
2
+
3
+ * Small fixes in stack_size calculations
4
+ * Warning free byebug
5
+ * Add `verbose` setting for TracePoint API event inspection
6
+ * Fix setting `post_mortem` mode
7
+ * Allow `edit <filename>` without a line number
8
+
9
+
1
10
  # 2.1.1
2
11
 
3
12
  * Fix bug when debugging code inside '-e' flag
@@ -4,6 +4,18 @@ To make your changes, follow this steps:
4
4
 
5
5
  * [Fork the project](https://help.github.com/fork-a-repo)
6
6
  * Create a topic branch - `git checkout -b my_branch`
7
- * Insert awesome code
7
+ * Insert awesome code - See below
8
8
  * Push your branch to your forked repo - `git push origin my_branch`
9
9
  * [Make a pull request](https://help.github.com/articles/using-pull-requests)
10
+
11
+ How to insert awesome code:
12
+
13
+ This gem uses `rake-compiler` to build native gems. You can use `rake compile` to build the native gem
14
+ and start the tests using `rake test`
15
+
16
+ ```bash
17
+ rake compile
18
+ rake test
19
+ ```
20
+
21
+ It's appreciated if you add tests for new functionality. Thanks!
data/GUIDE.md CHANGED
@@ -1,3 +1,155 @@
1
+ ### First Steps
2
+
3
+ A handful of commands are enough to get started using `byebug`. The following
4
+ session illustrates these commands.
5
+
6
+ ```
7
+ $ byebug triangle.rb
8
+ [1, 10] in /home/davidr/Proyectos/byebug/old_doc/triangle.rb
9
+ 1: # Compute the n'th triangle number: triangle(n) == (n*(n+1))/2
10
+ => 2: def triangle(n)
11
+ 3: tri = 0
12
+ 4: 0.upto(n) do |i|
13
+ 5: tri += i
14
+ 6: end
15
+ 7: tri
16
+ 8: end
17
+ 9:
18
+ 10: t = triangle(3)
19
+ (byebug)
20
+ ```
21
+
22
+ We are currently stopped before the first executable line of the program: line 2
23
+ of `triangle.rb`. If you are used to less dynamic languages and have used
24
+ debuggers for more statically compiled languages like C, C++, or Java, it may
25
+ seem odd to be stopped before a function definition but in Ruby line 2 is
26
+ executed.
27
+
28
+ Byebug's prompt is `(byebug)`. If the program has died and you are in
29
+ post-mortem debugging, `(byebug:post-mortem)` is used instead. If the program
30
+ has terminated normally, the string this position will be `(byebug:ctrl)`. The
31
+ commands available change depending on the program's state.
32
+
33
+ Byebug automatically lists 10 lines of code centered around the current line
34
+ everytime it is stopped. The current line is marked with `=>`, so the range
35
+ byebug would like to show is [-3..6]. However since there aren't 5 lines before
36
+ the current line, the range is moved _up_ so we can actually display 10 lines
37
+ of code.
38
+
39
+ Now let us step through the program.
40
+
41
+ ```
42
+ (byebug) step
43
+ [2, 11] in /home/davidr/Proyectos/byebug/old_doc/triangle.rb
44
+ 2: def triangle(n)
45
+ 3: tri = 0
46
+ 4: 0.upto(n) do |i|
47
+ 5: tri += i
48
+ 6: end
49
+ 7: tri
50
+ 8: end
51
+ 9:
52
+ => 10: t = triangle(3)
53
+ 11: puts t
54
+ (byebug) <RET> # hit enter
55
+ [1, 10] in /home/davidr/Proyectos/byebug/old_doc/triangle.rb
56
+ 1: # Compute the n'th triangle number: triangle(n) == (n*(n+1))/2
57
+ 2: def triangle(n)
58
+ => 3: tri = 0
59
+ 4: 0.upto(n) do |i|
60
+ 5: tri += i
61
+ 6: end
62
+ 7: tri
63
+ 8: end
64
+ 9:
65
+ 10: t = triangle(3)
66
+ (byebug) p tri
67
+ nil
68
+ (byebug) step
69
+ [1, 10] in /home/davidr/Proyectos/byebug/old_doc/triangle.rb
70
+ 1: # Compute the n'th triangle number: triangle(n) == (n*(n+1))/2
71
+ 2: def triangle(n)
72
+ 3: tri = 0
73
+ => 4: 0.upto(n) do |i|
74
+ 5: tri += i
75
+ 6: end
76
+ 7: tri
77
+ 8: end
78
+ 9:
79
+ 10: t = triangle(3)
80
+ (byebug) p tri
81
+ 0
82
+ ```
83
+
84
+ The first `step` command runs the script one executable unit. The second command
85
+ we entered was just hitting the return key; `byebug` remembers the last command
86
+ you entered was `step` and it runs it again.
87
+
88
+ One way to print the values of variables is `p` (there are other ways). When we
89
+ look at the value of `tri` the first time, we see it is `nil`. Again we are
90
+ stopped _before_ the assignment on line 3, and this variable hasn't been set
91
+ previously. However after issuing another `step` command we see that the value
92
+ is 0 as expected. If every time we stop we want to see the value of `tri` to see
93
+ how things are going, there is a better way by setting a display expression:
94
+
95
+ ```
96
+ (byebug) display tri
97
+ 1: tri = 0
98
+ ```
99
+
100
+ Now let us run the program until we return from the function. We'll want to see
101
+ which lines get run, so we turn on _line tracing_. If we don't want whole paths
102
+ to be displayed when tracing, we can turn on _basename_.
103
+
104
+ ```
105
+ (byebug) display i
106
+ 2: i =
107
+ (byebug) set linetrace on
108
+ line tracing is on.
109
+ (byebug) set basename on
110
+ basename is on.
111
+ (byebug) finish
112
+ Tracing: triangle.rb:5 tri += i
113
+ 1: tri = 0
114
+ 2: i = 0
115
+ Tracing: triangle.rb:5 tri += i
116
+ 1: tri = 0
117
+ 2: i = 1
118
+ Tracing: triangle.rb:5 tri += i
119
+ 1: tri = 1
120
+ 2: i = 2
121
+ Tracing: triangle.rb:5 tri += i
122
+ 1: tri = 3
123
+ 2: i = 3
124
+ Tracing: triangle.rb:7 tri
125
+ 1: tri = 6
126
+ 2: i =
127
+ Tracing: triangle.rb:11 puts t
128
+ 1: tri =
129
+ 2: i =
130
+ [2, 11] in /home/davidr/Proyectos/byebug/old_doc/triangle.rb
131
+ 2: def triangle(n)
132
+ 3: tri = 0
133
+ 4: 0.upto(n) do |i|
134
+ 5: tri += i
135
+ 6: end
136
+ 7: tri
137
+ 8: end
138
+ 9:
139
+ 10: t = triangle(3)
140
+ => 11: puts t
141
+ 1: tri =
142
+ 2: i =
143
+ (byebug) quit
144
+ Really quit? (y/n) y
145
+ ```
146
+
147
+ So far, so good. As you can see from the above to get out of `byebug`, one
148
+ can issue a `quit` command (`q` and `exit` are just as good). If you want to
149
+ quit without being prompted, suffix the command with an exclamation mark, e.g.,
150
+ `q!`.
151
+
152
+
1
153
  ### Second Sample Session: Delving Deeper
2
154
 
3
155
  In this section we'll introduce breakpoints, the call stack and restarting.
@@ -601,7 +753,6 @@ Options:
601
753
  -x, --trace Turn on line tracing
602
754
 
603
755
  Common options:
604
- --verbose Turn on verbose mode
605
756
  --help Show this message
606
757
  --version Print program version
607
758
  -v Print version number, then turn on verbose mode
@@ -1186,3 +1337,32 @@ stopped. Repeating a `list` command with `RET` discards the argument, so it is
1186
1337
  equivalent to typing just `list`. This is more useful than listing the same
1187
1338
  lines again. An exception is made for an argument of `-`: that argument is
1188
1339
  preserved in repetition so that each repetition moves up in the source file.
1340
+
1341
+ ### Editing Source files (`edit`)
1342
+
1343
+ To edit a source file, use the `edit` command. The editor of your choice is invoked
1344
+ with the current line set to the active line in the program. Alternatively, you can
1345
+ give a line specification to specify what part of the file you want to edit.
1346
+
1347
+ You can customize `byebug` to use any editor you want by using the `EDITOR`
1348
+ environment variable. The only restriction is that your editor (say `ex`) recognizes
1349
+ the following command-line syntax:
1350
+ ```
1351
+ ex +nnn file
1352
+ ```
1353
+
1354
+ The optional numeric value `+nnn` specifies the line number in the file where
1355
+ you want to start editing. For example, to configure `byebug` to use the `vi` editor,
1356
+ you could use these commands with the `sh` shell:
1357
+
1358
+ ```bash
1359
+ EDITOR=/usr/bin/vi
1360
+ export EDITOR
1361
+ byebug ...
1362
+ ```
1363
+
1364
+ or in the `csh` shell,
1365
+ ```bash
1366
+ setenv EDITOR /usr/bin/vi
1367
+ byebug ...
1368
+ ```
data/README.md CHANGED
@@ -38,7 +38,7 @@ Simply drop
38
38
  byebug
39
39
 
40
40
  wherever you want to start debugging and the execution will stop there. If you
41
- are debugging rails, start the server and once the execution get to your
41
+ are debugging rails, start the server and once the execution gets to your
42
42
  `byebug` command you will get a debugging prompt.
43
43
 
44
44
  Former [debugger](https://github.com/cldwalker/debugger) or
@@ -58,15 +58,9 @@ no longer need to set them in the startup file.
58
58
 
59
59
  * Works on 2.0.0 and it doesn't on 1.9.x.
60
60
  * Has no MRI internal source code dependencies, just a clean API.
61
- * Fixes most of debugger's current open issues:
62
- - Post-mortem mode segfaulting.
63
- - Line number wrongly shown as zero in backtrace.
64
- - Line tracing.
65
- - Colon delimited include paths.
66
- - Nice markdown guide.
67
- - Ruby 2.0 support.
68
- - where/bt does not in fact give a backtrace.
69
- - `byebug` can now be placed at the end of a block or method call.
61
+ * Fixes all of debugger's open bugs in its issue tracker and provides some
62
+ enhancements, such as a markdown guide or the fact that `byebug` can now be
63
+ placed at the end of a block or method call.
70
64
  * Very actively mantained.
71
65
  * Editor agnostic: no external editor built-in support.
72
66
  * Pry command is built-in. No need of external gem like debugger-pry.
@@ -82,211 +76,67 @@ changes.
82
76
 
83
77
  Byebug's public API is determined by its set of commands
84
78
 
85
- +-----------+----------+------------------------------------------------+
86
- | Command | Aliases | Subcommands |
87
- +-----------+----------+------------------------------------------------+
88
- | backtrace | bt|where | |
89
- | break | | |
90
- | catch | | |
91
- | condition | | |
92
- | continue | | |
93
- | delete | | |
94
- | disable | | breakpoints|display |
95
- | display | | |
96
- | down | | |
97
- | edit | | |
98
- | enable | | breakpoints|display |
99
- | finish | | |
100
- | frame | | |
101
- | help | | |
102
- | info | | args|breakpoints|catch|display|file|files |
103
- | | | global_variables|instance_variables|line |
104
- | | | locals|program|stack|variables |
105
- | irb | | |
106
- | kill | | |
107
- | list | | |
108
- | method | | instance|iv |
109
- | next | | |
110
- | p | eval | |
111
- | pp | | |
112
- | pry | | |
113
- | ps | | |
114
- | putl | | |
115
- | quit | exit | |
116
- | reload | | |
117
- | restart | | |
118
- | save | | |
119
- | set | | args|autoeval|autoirb|autolist|autoreload |
120
- | | | basename|callstyle|forcestep|fullpath|history |
121
- | | | linetrace|linetrace_plus|listsize|post_mortem |
122
- | | | stack_trace_on_error|testing|width |
123
- | show | | args|autoeval|autoirb|autolist|autoreload |
124
- | | | basename|callstyle|commands|forcestep|fullpath |
125
- | | | history|linetrace|linetrace_plus|listsize |
126
- | | | post_mortem|stack_trace_on_error|width |
127
- | skip | | |
128
- | source | | |
129
- | step | | |
130
- | thread | | current|list|resume|stop|switch |
131
- | trace | | |
132
- | undisplay | | |
133
- | up | | |
134
- | var | | class|constant|global|instance|local|ct |
135
- +-----------+----------+------------------------------------------------+
79
+ Command | Aliases | Subcommands
80
+ ----------|----------|------------------------------------------------------
81
+ backtrace | bt,where |
82
+ break | |
83
+ catch | |
84
+ condition | |
85
+ continue | |
86
+ delete | |
87
+ disable | | breakpoints,display
88
+ display | |
89
+ down | |
90
+ edit | |
91
+ enable | | breakpoints,display
92
+ finish | |
93
+ frame | |
94
+ help | |
95
+ info | | args,breakpoints,catch,display,file,files,...
96
+ irb | |
97
+ kill | |
98
+ list | |
99
+ method | | instance,iv
100
+ next | |
101
+ p | eval |
102
+ pp | |
103
+ pry | |
104
+ ps | |
105
+ putl | |
106
+ quit | exit |
107
+ reload | |
108
+ restart | |
109
+ save | |
110
+ set | | args,autoeval,autoirb,autolist,autoreload,basename...
111
+ show | | args,autoeval,autoirb,autolist,autoreload,basename...
112
+ skip | |
113
+ source | |
114
+ step | |
115
+ thread | | current,list,resume,stop,switch
116
+ trace | |
117
+ undisplay | |
118
+ up | |
119
+ var | | class,constant,global,instance,local,ct
120
+
121
+ Full lists of subcommands:
122
+
123
+ * info: `args`,`breakpoints`,`catch`,`display`,`file`,`files`,
124
+ `global_variables`,`instance_variables`,`line`,`locals`,`program,stack`,
125
+ `variables`.
126
+ * set: `args`,`autoeval`,`autoirb`,`autolist`,`autoreload`,`basename`,
127
+ `callstyle`,`forcestep`,`fullpath`,`history`,`linetrace`,`linetrace_plus`,
128
+ `listsize`,`post_mortem`,`stack_trace_on_error`,`testing`,`verbose`,`width`.
129
+ * show: `args`,`autoeval`,`autoirb`,`autolist`,`autoreload`,`basename`,
130
+ `callstyle`,`commands`,`forcestep`,`fullpath`,`history`,`linetrace`,
131
+ `linetrace_plus`, `listsize`,`post_mortem`,`stack_trace_on_error`,`verbose`,
132
+ `width`.
136
133
 
137
134
 
138
135
  ## Getting Started
139
136
 
140
- A handful of commands are enough to get started using `byebug`. The following
141
- session illustrates these commands.
142
-
143
- ```
144
- $ byebug triangle.rb
145
- [1, 10] in /home/davidr/Proyectos/byebug/old_doc/triangle.rb
146
- 1: # Compute the n'th triangle number: triangle(n) == (n*(n+1))/2
147
- => 2: def triangle(n)
148
- 3: tri = 0
149
- 4: 0.upto(n) do |i|
150
- 5: tri += i
151
- 6: end
152
- 7: tri
153
- 8: end
154
- 9:
155
- 10: t = triangle(3)
156
- (byebug)
157
- ```
158
-
159
- We are currently stopped before the first executable line of the program: line 2
160
- of `triangle.rb`. If you are used to less dynamic languages and have used
161
- debuggers for more statically compiled languages like C, C++, or Java, it may
162
- seem odd to be stopped before a function definition but in Ruby line 2 is
163
- executed.
164
-
165
- Byebug's prompt is `(byebug)`. If the program has died and you are in
166
- post-mortem debugging, `(byebug:post-mortem)` is used instead. If the program
167
- has terminated normally, the string this position will be `(byebug:ctrl)`. The
168
- commands available change depending on the program's state.
169
-
170
- Byebug automatically lists 10 lines of code centered around the current line
171
- everytime it is stopped. The current line is marked with `=>`, so the range
172
- byebug would like to show is [-3..6]. However since there aren't 5 lines before
173
- the current line, the range is moved _up_ so we can actually display 10 lines
174
- of code.
175
-
176
- Now let us step through the program.
177
-
178
- ```
179
- (byebug) step
180
- [2, 11] in /home/davidr/Proyectos/byebug/old_doc/triangle.rb
181
- 2: def triangle(n)
182
- 3: tri = 0
183
- 4: 0.upto(n) do |i|
184
- 5: tri += i
185
- 6: end
186
- 7: tri
187
- 8: end
188
- 9:
189
- => 10: t = triangle(3)
190
- 11: puts t
191
- (byebug) <RET> # hit enter
192
- [1, 10] in /home/davidr/Proyectos/byebug/old_doc/triangle.rb
193
- 1: # Compute the n'th triangle number: triangle(n) == (n*(n+1))/2
194
- 2: def triangle(n)
195
- => 3: tri = 0
196
- 4: 0.upto(n) do |i|
197
- 5: tri += i
198
- 6: end
199
- 7: tri
200
- 8: end
201
- 9:
202
- 10: t = triangle(3)
203
- (byebug) p tri
204
- nil
205
- (byebug) step
206
- [1, 10] in /home/davidr/Proyectos/byebug/old_doc/triangle.rb
207
- 1: # Compute the n'th triangle number: triangle(n) == (n*(n+1))/2
208
- 2: def triangle(n)
209
- 3: tri = 0
210
- => 4: 0.upto(n) do |i|
211
- 5: tri += i
212
- 6: end
213
- 7: tri
214
- 8: end
215
- 9:
216
- 10: t = triangle(3)
217
- (byebug) p tri
218
- 0
219
- ```
220
-
221
- The first `step` command runs the script one executable unit. The second command
222
- we entered was just hitting the return key; `byebug` remembers the last command
223
- you entered was `step` and it runs it again.
224
-
225
- One way to print the values of variables is `p` (there are other ways). When we
226
- look at the value of `tri` the first time, we see it is `nil`. Again we are
227
- stopped _before_ the assignment on line 3, and this variable hasn't been set
228
- previously. However after issuing another `step` command we see that the value
229
- is 0 as expected. If every time we stop we want to see the value of `tri` to see
230
- how things are going, there is a better way by setting a display expression:
231
-
232
- ```
233
- (byebug) display tri
234
- 1: tri = 0
235
- ```
236
-
237
- Now let us run the program until we return from the function. We'll want to see
238
- which lines get run, so we turn on _line tracing_. If we don't want whole paths
239
- to be displayed when tracing, we can turn on _basename_.
240
-
241
- ```
242
- (byebug) display i
243
- 2: i =
244
- (byebug) set linetrace on
245
- line tracing is on.
246
- (byebug) set basename on
247
- basename is on.
248
- (byebug) finish
249
- Tracing: triangle.rb:5 tri += i
250
- 1: tri = 0
251
- 2: i = 0
252
- Tracing: triangle.rb:5 tri += i
253
- 1: tri = 0
254
- 2: i = 1
255
- Tracing: triangle.rb:5 tri += i
256
- 1: tri = 1
257
- 2: i = 2
258
- Tracing: triangle.rb:5 tri += i
259
- 1: tri = 3
260
- 2: i = 3
261
- Tracing: triangle.rb:7 tri
262
- 1: tri = 6
263
- 2: i =
264
- Tracing: triangle.rb:11 puts t
265
- 1: tri =
266
- 2: i =
267
- [2, 11] in /home/davidr/Proyectos/byebug/old_doc/triangle.rb
268
- 2: def triangle(n)
269
- 3: tri = 0
270
- 4: 0.upto(n) do |i|
271
- 5: tri += i
272
- 6: end
273
- 7: tri
274
- 8: end
275
- 9:
276
- 10: t = triangle(3)
277
- => 11: puts t
278
- 1: tri =
279
- 2: i =
280
- (byebug) quit
281
- Really quit? (y/n) y
282
- ```
283
-
284
- So far, so good. As you can see from the above to get out of `byebug`, one
285
- can issue a `quit` command (`q` and `exit` are just as good). If you want to
286
- quit without being prompted, suffix the command with an exclamation mark, e.g.,
287
- `q!`.
288
-
289
- ### The rest of the tutorial is available [here](https://github.com/deivid-rodriguez/byebug/blob/master/GUIDE.md)
137
+ Read [byebug's markdown
138
+ guide](https://github.com/deivid-rodriguez/byebug/blob/master/GUIDE.md) to get
139
+ started. Proper documentation will be eventually written.
290
140
 
291
141
 
292
142
  ## Related projects
@@ -299,6 +149,12 @@ adds a rake task that restarts Passenger with byebug connected.
299
149
  session on minitest failures.
300
150
 
301
151
 
152
+ ## Future (possible) directions
153
+
154
+ * JRuby support.
155
+ * Libify and test byebug's executable.
156
+
157
+
302
158
  ## Credits
303
159
 
304
160
  Everybody who has ever contributed to this forked and reforked piece of