byebug 8.1.0 → 8.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c94e35f817b35598528398f89bf25b1eb6be58cd
4
- data.tar.gz: 835bd30d2e482817798f87c0ff6c96a1ee2ee44d
3
+ metadata.gz: 784b994320d0e3c0fe8f3c4fcfe74bb5fb81bdcd
4
+ data.tar.gz: ae9fda6dcd7bbf932171355d8666f3a7ce5dc59f
5
5
  SHA512:
6
- metadata.gz: f51b7abcaf7771ef033323ab1bd37c0795c5445d18b0266d29110e61f1f2d433f894d221113c793375040c3832e16f6af3a4f0fea0a55cbdb3dba285cf3658fc
7
- data.tar.gz: fc49688e24e43f16d091c27c6e642dc1943ae0d00db65431c50f18399049a6bd29b486eac934509360fba8e60a30bcd151bd03250d93a9da9b3583724a079f31
6
+ metadata.gz: 42b4da095c53ae1ccb54eac816106918a6e1d00f2ccdc9084dc994322a2f0393d502fed12e19b195d17e012ebf1f0ecd30db21737448ad4d6acd9261d50647fb
7
+ data.tar.gz: 88f0c640694ab1acf6fb8fffbe98a2c7ffa94ad5c914e253745a80796f1e14aa2c223e059600a2dfc7f90cbcfe56dda948990dff0b542d61af105572e787f975
@@ -1,5 +1,15 @@
1
1
  ## Master (Unreleased)
2
2
 
3
+ ## 8.2.0 - 2015-11-12
4
+ ### Fixed
5
+ * [#184](https://github.com/deivid-rodriguez/byebug/issues/184) &
6
+ [#188](https://github.com/deivid-rodriguez/byebug/issues/188), both due
7
+ to the way of running evaluations in a separate thread.
8
+
9
+ ### Added
10
+ * `debug` command to evaluate things in a separate thread, since this behavior
11
+ was removed from default `eval` to fix the above issues.
12
+
3
13
  ## 8.1.0 - 2015-11-09
4
14
  ### Fixed
5
15
  * Command history should be specific per project.
@@ -142,403 +152,403 @@ as a dependency.
142
152
 
143
153
  ## 4.0.0 - 2015-03-13
144
154
  ### Added
145
- - `untracevar` command that stops tracing a global variable.
146
- - Window CI build through AppVeyor.
147
- - OSX CI build through Travis.
148
- - Style enforcement through RuboCop.
149
- - C style enforment using the `indent` command line utility.
150
- - Some remote debugging tests (thanks @eric-hu).
151
- - Printer's support (thanks @astashov).
155
+ * `untracevar` command that stops tracing a global variable.
156
+ * Window CI build through AppVeyor.
157
+ * OSX CI build through Travis.
158
+ * Style enforcement through RuboCop.
159
+ * C style enforment using the `indent` command line utility.
160
+ * Some remote debugging tests (thanks @eric-hu).
161
+ * Printer's support (thanks @astashov).
152
162
 
153
163
  ### Changed
154
- - A lot of internal refactoring.
155
- - `tracevar` now requires the full global variable name (with "$").
156
- - [#92](https://github.com/deivid-rodriguez/byebug/issues/92). The `catch`
164
+ * A lot of internal refactoring.
165
+ * `tracevar` now requires the full global variable name (with "$").
166
+ * [#92](https://github.com/deivid-rodriguez/byebug/issues/92). The `catch`
157
167
  command is not allowed in post_mortem mode anymore. It was not working anyways.
158
- - [#85](https://github.com/deivid-rodriguez/byebug/issues/85). `step` is now
168
+ * [#85](https://github.com/deivid-rodriguez/byebug/issues/85). `step` is now
159
169
  more user friendly when used in combination with `up`.
160
- - `var const` can now be called without an argument and will show constants in
170
+ * `var const` can now be called without an argument and will show constants in
161
171
  the current scope.
162
- - `break` with a class name now creates breakpoints regardless of class not
172
+ * `break` with a class name now creates breakpoints regardless of class not
163
173
  being yet defined. If that's the case, it gives a warning but the class is
164
174
  created anyways.
165
175
 
166
176
  ### Fixed
167
- - Code reloading issues.
168
- - `set fullpath` was not showing fullpaths. Now it is.
169
- - `up`, `down` and `frame` commands now work in post_mortem mode (#93).
170
- - rc file (`.byebugrc`) loading: invalid commands are just ignored instead of
177
+ * Code reloading issues.
178
+ * `set fullpath` was not showing fullpaths. Now it is.
179
+ * `up`, `down` and `frame` commands now work in post_mortem mode (#93).
180
+ * rc file (`.byebugrc`) loading: invalid commands are just ignored instead of
171
181
  aborting, global (home) rc file is now properly loaded before project's file.
172
- - [#93](https://github.com/deivid-rodriguez/byebug/issues/93). Backtraces not
182
+ * [#93](https://github.com/deivid-rodriguez/byebug/issues/93). Backtraces not
173
183
  working in `post_mortem` mode.
174
- - 'cmd1 ; cmd2 ; ...; cmdN' syntax which allows running several commands
184
+ * 'cmd1 ; cmd2 ; ...; cmdN' syntax which allows running several commands
175
185
  sequentially.
176
- - [#101](https://github.com/deivid-rodriguez/byebug/issues/101). `finish`
186
+ * [#101](https://github.com/deivid-rodriguez/byebug/issues/101). `finish`
177
187
  command not stopping at the correct line.
178
- - [#106](https://github.com/deivid-rodriguez/byebug/issues/106). `break` with
188
+ * [#106](https://github.com/deivid-rodriguez/byebug/issues/106). `break` with
179
189
  namespaced class, like `break A::B#c` should now work.
180
- - Command history is now persisted before exiting byebug.
181
- - Setting breakpoint in a method would stop not only at the beginning of the
190
+ * Command history is now persisted before exiting byebug.
191
+ * Setting breakpoint in a method would stop not only at the beginning of the
182
192
  method but also at the beginning of every block inside the method.
183
- - [#122](https://github.com/deivid-rodriguez/byebug/issues/122). Setting
193
+ * [#122](https://github.com/deivid-rodriguez/byebug/issues/122). Setting
184
194
  breakpoints on module methods (@x-yuri).
185
195
 
186
196
  ### Removed
187
- - `autoreload` setting as it's not necessary anymore. Code should always be up
197
+ * `autoreload` setting as it's not necessary anymore. Code should always be up
188
198
  to date.
189
- - `reload` command for the same reason.
190
- - Gem dependency on `debugger-linecache`.
191
- - `step+`, `step-`, `next+`, `next-`, `set/show linetrace_plus` and
199
+ * `reload` command for the same reason.
200
+ * Gem dependency on `debugger-linecache`.
201
+ * `step+`, `step-`, `next+`, `next-`, `set/show linetrace_plus` and
192
202
  `set/show forcestep` commands. These were all mechanisms to deal with TracePoint
193
203
  API event dupplication, but this duplicated events have been completely removed
194
204
  from the API since
195
205
  [r48609](bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/48609), so
196
206
  they are no longer necessary.
197
- - `info file` subcommands: `info file breakpoints`, `info file mtime`, `info
207
+ * `info file` subcommands: `info file breakpoints`, `info file mtime`, `info
198
208
  file sha1`, `info file all`. Now all information is listed under `info file`.
199
- - `testing` setting. It was just a hack to be able to test `byebug`. Nobody was
209
+ * `testing` setting. It was just a hack to be able to test `byebug`. Nobody was
200
210
  supposed to actually use it!
201
- - `var class` command, just use Ruby (`self.class.class_variables`).
202
- - `p` command, just use `eval`, or just type your expression and `byebug` will
211
+ * `var class` command, just use Ruby (`self.class.class_variables`).
212
+ * `p` command, just use `eval`, or just type your expression and `byebug` will
203
213
  autoevaluate it.
204
- - `exit` alias for `quit`.
214
+ * `exit` alias for `quit`.
205
215
 
206
216
  ## 3.5.1 - 2014-09-29
207
217
  ### Fixed
208
- - [#79](https://github.com/deivid-rodriguez/byebug/issues/79). Windows
218
+ * [#79](https://github.com/deivid-rodriguez/byebug/issues/79). Windows
209
219
  installation.
210
- - `condition` command not properly detecting invalid breakpoint ids.
220
+ * `condition` command not properly detecting invalid breakpoint ids.
211
221
 
212
222
  ## 3.5.0 - 2014-09-28
213
223
  ### Fixed
214
- - [#81](https://github.com/deivid-rodriguez/byebug/issues/81). Byebug's history
224
+ * [#81](https://github.com/deivid-rodriguez/byebug/issues/81). Byebug's history
215
225
  messing up other programs using Readline.
216
- - Readline's history not being properly saved and inmediately available.
217
- - User not being notified when trying to debug a non existent script.
226
+ * Readline's history not being properly saved and inmediately available.
227
+ * User not being notified when trying to debug a non existent script.
218
228
 
219
229
  ### Changed
220
- - Complete rewrite of byebug's history.
221
- - Complete rewrite of list command.
222
- - Docs about stacktrace related commands (up, down, frame, backtrace).
230
+ * Complete rewrite of byebug's history.
231
+ * Complete rewrite of list command.
232
+ * Docs about stacktrace related commands (up, down, frame, backtrace).
223
233
 
224
234
  ## 3.4.2 - 2014-09-26
225
235
  ### Fixed
226
- - [#67](https://github.com/deivid-rodriguez/byebug/issues/67). Debugging
236
+ * [#67](https://github.com/deivid-rodriguez/byebug/issues/67). Debugging
227
237
  commands invoked by ruby executable, as in `byebug -- ruby -Itest a_test.rb
228
- -n test_something`.
238
+ *n test_something`.
229
239
 
230
240
  ## 3.4.1 - 2014-09-25
231
241
  ### Fixed
232
- - [#54](https://github.com/deivid-rodriguez/byebug/issues/54). Use of threads
242
+ * [#54](https://github.com/deivid-rodriguez/byebug/issues/54). Use of threads
233
243
  inside `eval` command.
234
- - `list` command not listing backwards after reaching the end of the file.
244
+ * `list` command not listing backwards after reaching the end of the file.
235
245
 
236
246
  ## 3.4.0 - 2014-09-01
237
247
  ### Fixed
238
- - deivid-rodriguez/pry-byebug#32 in a better way.
248
+ * deivid-rodriguez/pry-byebug#32 in a better way.
239
249
 
240
250
 
241
251
  ## 3.3.0 - 2014-08-28
242
252
  ### Fixed
243
- - `set verbose` command.
244
- - `set post_mortem false` command.
245
- - Debugger stopping in `byebug`'s internal frames in some cases.
246
- - `backtrace` crashing when `fullpath` setting disabled and calculated stack
253
+ * `set verbose` command.
254
+ * `set post_mortem false` command.
255
+ * Debugger stopping in `byebug`'s internal frames in some cases.
256
+ * `backtrace` crashing when `fullpath` setting disabled and calculated stack
247
257
  size being smaller than the real one.
248
258
 
249
259
  ## Changed
250
- - The `-t` option for `bin/byebug` now turns tracing on whereas the `-x` option
260
+ * The `-t` option for `bin/byebug` now turns tracing on whereas the `-x` option
251
261
  tells byebug to run the initialization file (.byebugrc) on startup. This is the
252
262
  default behaviour though.
253
- - `bin/byebug` libified and tests added.
263
+ * `bin/byebug` libified and tests added.
254
264
 
255
265
  ### Removed
256
- - `info locals` command. Use `var local` instead.
257
- - `info instance_variables` command. Use `var instance` instead.
258
- - `info global_variables` command. Use `var global` instead.
259
- - `info variables` command. Use `var all` instead.
260
- - `irb` command stepping capabilities, see
266
+ * `info locals` command. Use `var local` instead.
267
+ * `info instance_variables` command. Use `var instance` instead.
268
+ * `info global_variables` command. Use `var global` instead.
269
+ * `info variables` command. Use `var all` instead.
270
+ * `irb` command stepping capabilities, see
261
271
  [8e226d0](https://github.com/deivid-rodriguez/byebug/commit/8e226d0).
262
- - `script` and `restart-script` options for `bin/byebug`.
272
+ * `script` and `restart-script` options for `bin/byebug`.
263
273
 
264
274
  ## 3.2.0 - 2014-08-02
265
275
  ### Fixed
266
- - [#71](https://github.com/deivid-rodriguez/byebug/issues/71). Remote debugging
276
+ * [#71](https://github.com/deivid-rodriguez/byebug/issues/71). Remote debugging
267
277
  (thanks @shuky19).
268
- - [#69](https://github.com/deivid-rodriguez/byebug/issues/69). `source` command
278
+ * [#69](https://github.com/deivid-rodriguez/byebug/issues/69). `source` command
269
279
  (thanks @Olgagr).
270
280
 
271
281
  ### Removed
272
- - `post_mortem` activation through `Byebug.post_mortem`. Use `set post_mortem`
282
+ * `post_mortem` activation through `Byebug.post_mortem`. Use `set post_mortem`
273
283
  instead.
274
- - `info stack` command. Use `where` instead.
275
- - `method iv` command. Use `var instance` instead.
276
- - [#77](https://github.com/deivid-rodriguez/byebug/issues/77). Warning.
284
+ * `info stack` command. Use `where` instead.
285
+ * `method iv` command. Use `var instance` instead.
286
+ * [#77](https://github.com/deivid-rodriguez/byebug/issues/77). Warning.
277
287
 
278
288
  ## 3.1.2 - 2014-04-23
279
289
  ### Fixed
280
- - (Really) `post_mortem` mode in `bin/byebug`.
281
- - Line tracing in `bin/byebug`.
290
+ * (Really) `post_mortem` mode in `bin/byebug`.
291
+ * Line tracing in `bin/byebug`.
282
292
 
283
293
  ## 3.1.1 - 2014-04-23
284
294
  ### Fixed
285
- - `post_mortem` mode in bin/byebug.
295
+ * `post_mortem` mode in bin/byebug.
286
296
 
287
297
  ## 3.1.0 - 2014-04-23
288
298
  ### Removed
289
- - `show commands` command. Use `history` instead.
290
- - Byebug.start accepting options. Any program settings you want applied from
299
+ * `show commands` command. Use `history` instead.
300
+ * Byebug.start accepting options. Any program settings you want applied from
291
301
  the start should be set in `.byebugrc`.
292
- - `trace` command. Use `set linetrace` for line tracing and `tracevar` for
302
+ * `trace` command. Use `set linetrace` for line tracing and `tracevar` for
293
303
  global variable tracing.
294
- - `show version` command. Use `byebug --version` to check byebug's version.
295
- - `set arg` setting. Use the `restart` command instead.
304
+ * `show version` command. Use `byebug --version` to check byebug's version.
305
+ * `set arg` setting. Use the `restart` command instead.
296
306
 
297
307
  ### Changed
298
- - `linetrace_plus` setting renamed to `tracing_plus`.
308
+ * `linetrace_plus` setting renamed to `tracing_plus`.
299
309
 
300
310
  ### Added
301
- - `history` command to check byebug's history of previous commands.
311
+ * `history` command to check byebug's history of previous commands.
302
312
 
303
313
  ## 3.0.0 - 2014-04-17
304
314
  ### Fixed
305
- - Plain `byebug` not working when `pry-byebug` installed.
306
- - `post_mortem` mode.
307
- - Command history not being saved after regular program termination.
308
- - [#54](https://github.com/deivid-rodriguez/byebug/issues/54). (Again) calling
315
+ * Plain `byebug` not working when `pry-byebug` installed.
316
+ * `post_mortem` mode.
317
+ * Command history not being saved after regular program termination.
318
+ * [#54](https://github.com/deivid-rodriguez/byebug/issues/54). (Again) calling
309
319
  `Byebug.start` with `Timeout.timeout` (thanks @zmoazeni).
310
320
 
311
321
  ### Added
312
- - Allow disabling `post_mortem` mode.
322
+ * Allow disabling `post_mortem` mode.
313
323
 
314
324
  ### Changed
315
- - `show commands` command for listing history of previous commands now behaves
325
+ * `show commands` command for listing history of previous commands now behaves
316
326
  like shell's `history` command.
317
- - `show/set history filename` is now `show/set histfile`
318
- - `show/set history size` is now `show/set histsize`
319
- - `show/set history save` is now `show/set autosave`
320
- - `finish` semantics, see
327
+ * `show/set history filename` is now `show/set histfile`
328
+ * `show/set history size` is now `show/set histsize`
329
+ * `show/set history save` is now `show/set autosave`
330
+ * `finish` semantics, see
321
331
  [61f9b4d](https://github.com/deivid-rodriguez/byebug/commit/61f9b4d).
322
- - Use `per project` history file by default.
332
+ * Use `per project` history file by default.
323
333
 
324
334
  ## Removed
325
- - The `init` option for `Byebug.start`. Information to make the `restart`
335
+ * The `init` option for `Byebug.start`. Information to make the `restart`
326
336
  command work is always saved now.
327
337
 
328
338
  ## 2.7.0 - 2014-02-24
329
339
  ### Fixed
330
- - [#52](https://github.com/deivid-rodriguez/byebug/issues/52). `IGNORED_FILES`
340
+ * [#52](https://github.com/deivid-rodriguez/byebug/issues/52). `IGNORED_FILES`
331
341
  slowing down startup.
332
- - [#53](https://github.com/deivid-rodriguez/byebug/issues/53) and
342
+ * [#53](https://github.com/deivid-rodriguez/byebug/issues/53) and
333
343
  [#54](https://github.com/deivid-rodriguez/byebug/issues/54). Calling
334
344
  `Byebug.start` with `Timeout.timeout`.
335
345
 
336
346
  ## 2.6.0 - 2014-02-08
337
347
  ### Fixed
338
- - Circular dependency affecting `pry-byebug` (thanks @andreychernih).
348
+ * Circular dependency affecting `pry-byebug` (thanks @andreychernih).
339
349
 
340
350
  ## 2.5.0 - 2013-12-14
341
351
  ### Added
342
- - Support for `sublime-debugger`.
352
+ * Support for `sublime-debugger`.
343
353
 
344
354
  ## 2.4.1 - 2013-12-05
345
355
  ### Fixed
346
- - [#40](https://github.com/deivid-rodriguez/byebug/issues/40). Installation
356
+ * [#40](https://github.com/deivid-rodriguez/byebug/issues/40). Installation
347
357
  error in Mac OSX (thanks @luislavena).
348
358
 
349
359
  ## 2.4.0 - 2013-12-02
350
360
  ### Fixed
351
- - `thread list` showing too many threads.
352
- - Fix setting post mortem mode with `set post_mortem`. Now this is the only
361
+ * `thread list` showing too many threads.
362
+ * Fix setting post mortem mode with `set post_mortem`. Now this is the only
353
363
  post mortem functionality available as specifying `Byebug.post_mortem` with a
354
364
  block has been removed in this version.
355
365
 
356
366
  ### Added
357
- - (Again) `debugger` as an alias to `byebug` (thanks @wallace).
358
- - `-R` option for `bin/byebug` to specify server's hostname:port for remote
367
+ * (Again) `debugger` as an alias to `byebug` (thanks @wallace).
368
+ * `-R` option for `bin/byebug` to specify server's hostname:port for remote
359
369
  debugging (thanks @mrkn).
360
370
 
361
371
  ### Changed
362
- - Use `require` instead of `require_relative` for loading byebug's extension
372
+ * Use `require` instead of `require_relative` for loading byebug's extension
363
373
  library (thanks @nobu).
364
- - `trace variable $foo` should be now `trace variable $foo`.
374
+ * `trace variable $foo` should be now `trace variable $foo`.
365
375
 
366
376
  ## 2.3.1 - 2013-10-17
367
377
  ### Fixed
368
- - Breakpoint removal.
369
- - Broken test suite.
378
+ * Breakpoint removal.
379
+ * Broken test suite.
370
380
 
371
381
  ## 2.3.0 - 2013-10-09
372
382
  ### Added
373
- - Compatibility with Phusion Passenger Enterprise (thanks @FooBarWidget).
383
+ * Compatibility with Phusion Passenger Enterprise (thanks @FooBarWidget).
374
384
 
375
385
  ### Changed
376
- - More minimalist help system.
386
+ * More minimalist help system.
377
387
 
378
388
  ## 2.2.2 - 2013-09-25
379
389
  ### Fixed
380
- - Compilation issue in 64 bit systems.
390
+ * Compilation issue in 64 bit systems.
381
391
 
382
392
  ## 2.2.1 - 2013-09-24
383
393
  ### Fixed
384
- - [#26](https://github.com/deivid-rodriguez/byebug/issues/26). Compilation issue
394
+ * [#26](https://github.com/deivid-rodriguez/byebug/issues/26). Compilation issue
385
395
  introduced in `2.2.0`.
386
396
 
387
397
  ### Changed
388
- - `show/set stack_trace_on_error` is now `show/set stack_on_error`.
398
+ * `show/set stack_trace_on_error` is now `show/set stack_on_error`.
389
399
 
390
400
  ## 2.2.0 - 2013-09-22
391
401
  ### Fixed
392
- - Stack size calculations.
393
- - Setting `post_mortem` mode.
402
+ * Stack size calculations.
403
+ * Setting `post_mortem` mode.
394
404
 
395
405
  ### Added
396
- - `verbose` setting for TracePoint API event inspection.
406
+ * `verbose` setting for TracePoint API event inspection.
397
407
 
398
408
  ### Changed
399
- - Warning free byebug.
400
- - Allow `edit <filename>` without a line number.
409
+ * Warning free byebug.
410
+ * Allow `edit <filename>` without a line number.
401
411
 
402
412
  ## 2.1.1 - 2013-09-10
403
413
  ### Fixed
404
- - Debugging code inside `-e` Ruby flag.
414
+ * Debugging code inside `-e` Ruby flag.
405
415
 
406
416
  ## 2.1.0 - 2013-09-08
407
417
  ### Fixed
408
- - Remote debugging display.
409
- - `eval` crashing when inspecting raised an exception (reported by @iblue).
418
+ * Remote debugging display.
419
+ * `eval` crashing when inspecting raised an exception (reported by @iblue).
410
420
 
411
421
  ### Changed
412
- - `enable breakpoints` now enables every breakpoint.
413
- - `disable breakpoints` now disables every breakpoint.
422
+ * `enable breakpoints` now enables every breakpoint.
423
+ * `disable breakpoints` now disables every breakpoint.
414
424
 
415
425
  ## 2.0.0 - 2013-08-30
416
426
  ### Added
417
- - "Official" definition of a command API.
418
- - Thread support.
427
+ * "Official" definition of a command API.
428
+ * Thread support.
419
429
 
420
430
  ### Removed
421
- - `jump` command. It had never worked.
431
+ * `jump` command. It had never worked.
422
432
 
423
433
  ### Changed
424
- - Several internal refactorings.
434
+ * Several internal refactorings.
425
435
 
426
436
  ## 1.8.2 - 2013-08-16
427
437
  ### Fixed
428
- - `save` command now saves the list of `displays`.
429
- - Stack size calculation.
438
+ * `save` command now saves the list of `displays`.
439
+ * Stack size calculation.
430
440
 
431
441
  ### Changed
432
- - More user friendly regexps for commands.
433
- - Better help for some commands.
442
+ * More user friendly regexps for commands.
443
+ * Better help for some commands.
434
444
 
435
445
  ## 1.8.1 - 2013-08-12
436
446
  ### Fixed
437
- - Major regression introduced in 1.8.0.
447
+ * Major regression introduced in 1.8.0.
438
448
 
439
449
  ## 1.8.0 - 2013-08-12
440
450
  ### Added
441
- - Remote debugging support.
451
+ * Remote debugging support.
442
452
 
443
453
  ## 1.7.0 - 2013-08-03
444
454
  ### Added
445
- - List command automatically called after callstack navigation commands.
446
- - C-frames specifically marked in the callstack.
447
- - C-frames skipped when navigating the callstack.
455
+ * List command automatically called after callstack navigation commands.
456
+ * C-frames specifically marked in the callstack.
457
+ * C-frames skipped when navigating the callstack.
448
458
 
449
459
  ## 1.6.1 - 2013-07-10
450
460
  ### Fixed
451
- - Windows compatibiliy: compilation and terminal width issues.
461
+ * Windows compatibiliy: compilation and terminal width issues.
452
462
 
453
463
  ## 1.6.0 - 2013-07-10
454
464
  ### Fixed
455
- - `byebug` placed at the end of a block or method call not working as expected.
456
- - `autolist` being applied when Ruby `-e` option used.
465
+ * `byebug` placed at the end of a block or method call not working as expected.
466
+ * `autolist` being applied when Ruby `-e` option used.
457
467
 
458
468
  ### Changed
459
- - Backtrace callstyles. Use `long` for detailed frames in callstack and `short`
469
+ * Backtrace callstyles. Use `long` for detailed frames in callstack and `short`
460
470
  for more concise frames.
461
471
 
462
472
  ## 1.5.0 - 2013-06-21
463
473
  ### Fixed
464
- - Incomplete backtraces when the debugger was not started at program startup.
474
+ * Incomplete backtraces when the debugger was not started at program startup.
465
475
 
466
476
  ## 1.4.2 - 2013-06-20
467
477
  ### Fixed
468
- - `help command subcommand` command.
469
- - Interaction with Rails Console debugging flag.
470
- - `post_mortem` mode when running byebug from the outset.
471
- - `no-quit` flag when running byebug from the outset.
478
+ * `help command subcommand` command.
479
+ * Interaction with Rails Console debugging flag.
480
+ * `post_mortem` mode when running byebug from the outset.
481
+ * `no-quit` flag when running byebug from the outset.
472
482
 
473
483
  ## 1.4.1 - 2013-06-15
474
484
  ### Fixed
475
- - Crash when printing some filenames in backtraces.
476
- - Allow byebug developers to easily use compilers different from gcc (thanks
485
+ * Crash when printing some filenames in backtraces.
486
+ * Allow byebug developers to easily use compilers different from gcc (thanks
477
487
  @GarthSnyder!).
478
488
 
479
489
  ## 1.4.0 - 2013-06-05
480
490
  ### Fixed
481
- - Memory leaks causing `byebug` to randomly crash.
491
+ * Memory leaks causing `byebug` to randomly crash.
482
492
 
483
493
  ### Changed
484
- - Use the Debug Inspector API for backtrace information.
494
+ * Use the Debug Inspector API for backtrace information.
485
495
 
486
496
  ## 1.3.1 - 2013-06-02
487
497
  ### Fixed
488
- - Interaction with Rails debugging flag.
489
- - Crash when trying to print lines of code containing the character '%'.
490
- - `basename` and `linetrace` options not working together.
498
+ * Interaction with Rails debugging flag.
499
+ * Crash when trying to print lines of code containing the character '%'.
500
+ * `basename` and `linetrace` options not working together.
491
501
 
492
502
  ## 1.3.0 - 2013-05-25
493
503
  ### Added
494
- - Support colon-delimited include paths in command-line front-end (@ender672).
504
+ * Support colon-delimited include paths in command-line front-end (@ender672).
495
505
 
496
506
  ## 1.2.0 - 2013-05-20
497
507
  ### Fixed
498
- - Ctrl+C during command line editing (works like pry/irb).
508
+ * Ctrl+C during command line editing (works like pry/irb).
499
509
 
500
510
  ### Added
501
- - `pry` command.
511
+ * `pry` command.
502
512
 
503
513
  ## 1.1.1 - 2013-05-07
504
514
  ### Added
505
- - `pry-byebug` compatibility.
515
+ * `pry-byebug` compatibility.
506
516
 
507
517
  ### Changed
508
- - Better help system.
509
- - Code cleanup.
518
+ * Better help system.
519
+ * Code cleanup.
510
520
 
511
521
  ## 1.1.0 - 2013-04-30
512
522
  ### Added
513
- - Post Mortem support.
523
+ * Post Mortem support.
514
524
 
515
525
  ## 1.0.3 - 2013-04-23
516
526
  ### Fixed
517
- - Negative line numbers shown by list command at the beginning of file.
518
- - `backtrace` command segfaulting when trying to show info on some frame args.
527
+ * Negative line numbers shown by list command at the beginning of file.
528
+ * `backtrace` command segfaulting when trying to show info on some frame args.
519
529
  Don't know the reason yet, but the exception is handled now and command does
520
530
  not segfault anymore.
521
531
 
522
532
  ### Changed
523
- - `autoreload` is set by default now.
524
- - Try some thread support (not even close to usable).
533
+ * `autoreload` is set by default now.
534
+ * Try some thread support (not even close to usable).
525
535
 
526
536
  ## 1.0.2 - 2013-04-09
527
537
  ### Fixed
528
- - backtraces messed up when using both `next`/`step` and backtrace navigation
538
+ * backtraces messed up when using both `next`/`step` and backtrace navigation
529
539
  commands.
530
540
 
531
541
  ### Changed
532
- - `autolist` and `autoeval` are default settings now.
542
+ * `autolist` and `autoeval` are default settings now.
533
543
 
534
544
  ## 1.0.1 - 2013-04-06
535
545
  ### Fixed
536
- - Byebug not loading properly.
546
+ * Byebug not loading properly.
537
547
 
538
548
  ## 1.0.0 - 2013-03-29
539
549
  ### Fixed
540
- - Green test suite.
550
+ * Green test suite.
541
551
 
542
552
  ## 0.0.1 - 2013-03-18
543
553
  ### Added
544
- - Initial release.
554
+ * Initial release.
data/README.md CHANGED
@@ -86,6 +86,7 @@ are debugging rails, start the server and once the execution gets to your
86
86
  `condition` | |
87
87
  `continue` | |
88
88
  `delete` | |
89
+ `debug` | |
89
90
  `disable` | | `breakpoints` `display`
90
91
  `display` | |
91
92
  `down` | |
@@ -33,7 +33,7 @@ module Byebug
33
33
  #
34
34
  # Removes a breakpoint
35
35
  #
36
- # @param [integer] breakpoint number
36
+ # @param id [integer] breakpoint number
37
37
  #
38
38
  def self.remove(id)
39
39
  Byebug.breakpoints.reject! { |b| b.id == id }
@@ -8,7 +8,7 @@ module Byebug
8
8
  # Subclass it and name the subclass ending with the word Command to implement
9
9
  # your own custom command.
10
10
  #
11
- # @example
11
+ # @example Define a custom command
12
12
  #
13
13
  # class MyCustomCommand < Command
14
14
  # def self.regexp
@@ -2,6 +2,7 @@ require 'byebug/commands/break'
2
2
  require 'byebug/commands/catch'
3
3
  require 'byebug/commands/condition'
4
4
  require 'byebug/commands/continue'
5
+ require 'byebug/commands/debug'
5
6
  require 'byebug/commands/delete'
6
7
  require 'byebug/commands/disable'
7
8
  require 'byebug/commands/display'
@@ -55,7 +55,7 @@ module Byebug
55
55
  end
56
56
 
57
57
  def add(exception)
58
- if single_thread_eval("#{exception.is_a?(Class)}")
58
+ if warning_eval("#{exception.is_a?(Class)}")
59
59
  errmsg pr('catch.errors.not_class', class: exception)
60
60
  end
61
61
 
@@ -0,0 +1,36 @@
1
+ require 'byebug/command'
2
+ require 'byebug/helpers/eval'
3
+
4
+ module Byebug
5
+ #
6
+ # Spawns a subdebugger and evaluates the given expression
7
+ #
8
+ class DebugCommand < Command
9
+ include Helpers::EvalHelper
10
+
11
+ def self.regexp
12
+ /^\s* debug (?:\s+(\S+))? \s*$/x
13
+ end
14
+
15
+ def self.description
16
+ <<-EOD
17
+ debug <expression>
18
+
19
+ #{short_description}
20
+
21
+ Allows, for example, setting breakpoints on expressions evaluated from
22
+ the debugger's prompt.
23
+ EOD
24
+ end
25
+
26
+ def self.short_description
27
+ 'Spawns a subdebugger'
28
+ end
29
+
30
+ def execute
31
+ return puts(help) unless @match[1]
32
+
33
+ puts safe_inspect(separate_thread_eval(@match[1]))
34
+ end
35
+ end
36
+ end
@@ -155,7 +155,7 @@ module Byebug
155
155
  end
156
156
 
157
157
  #
158
- # @param range [String] A string with an integer range format
158
+ # @param str [String] A string with an integer range format
159
159
  #
160
160
  # @return [Array] The upper & lower bounds of the given range
161
161
  #
@@ -33,7 +33,7 @@ module Byebug
33
33
  end
34
34
 
35
35
  def execute
36
- obj = single_thread_eval(@match.post_match)
36
+ obj = warning_eval(@match.post_match)
37
37
 
38
38
  result =
39
39
  if @match[1]
@@ -30,12 +30,12 @@ module Byebug
30
30
  end
31
31
 
32
32
  def execute
33
- obj = single_thread_eval(str_obj)
33
+ obj = warning_eval(str_obj)
34
34
  unless obj.is_a?(Module)
35
35
  return errmsg(pr('variable.errors.not_module', object: str_obj))
36
36
  end
37
37
 
38
- constants = single_thread_eval("#{str_obj}.constants")
38
+ constants = warning_eval("#{str_obj}.constants")
39
39
  puts prv(constants.sort.map { |c| [c, obj.const_get(c)] }, 'constant')
40
40
  end
41
41
 
@@ -47,7 +47,8 @@ module Byebug
47
47
  #
48
48
  # Gets local variables for the frame.
49
49
  #
50
- # TODO: Use brand new local_variable_{get,set,defined?} for rubies >= 2.1
50
+ # TODO: Use brand new local_variable_get, local_variable_set and
51
+ # local_variable defined for rubies >= 2.1
51
52
  #
52
53
  def locals
53
54
  return [] unless _binding
@@ -5,21 +5,28 @@ module Byebug
5
5
  #
6
6
  module EvalHelper
7
7
  #
8
- # Evaluates +expression+ that might manipulate threads
8
+ # Evaluates an +expression+ in a separate thread.
9
9
  #
10
10
  # @param expression [String] Expression to evaluate
11
11
  #
12
- def thread_safe_eval(expression)
13
- allowing_other_threads { single_thread_eval(expression) }
12
+ def separate_thread_eval(expression)
13
+ allowing_other_threads do
14
+ in_new_thread { warning_eval(expression) }
15
+ end
14
16
  end
15
17
 
16
18
  #
17
- # Evaluates an +expression+ that doesn't deal with threads
19
+ # Evaluates an +expression+ that might use or defer execution to threads
20
+ # other than the current one.
21
+ #
22
+ # @note This is necessary because when in byebug's prompt, every thread is
23
+ # "frozen" so that nothing gets run. So we need to unlock threads prior
24
+ # to evaluation or we will run into a deadlock.
18
25
  #
19
26
  # @param expression [String] Expression to evaluate
20
27
  #
21
- def single_thread_eval(expression)
22
- warning_eval(expression)
28
+ def multiple_thread_eval(expression)
29
+ allowing_other_threads { warning_eval(expression) }
23
30
  end
24
31
 
25
32
  #
@@ -80,12 +87,24 @@ module Byebug
80
87
  # will get blocked by byebug's main thread.
81
88
  #
82
89
  def allowing_other_threads
83
- res = nil
84
90
  Byebug.unlock
85
91
 
86
- Thread.new { res = yield }.join
92
+ res = yield
87
93
 
88
94
  Byebug.lock
95
+
96
+ res
97
+ end
98
+
99
+ #
100
+ # Runs the given block in a new thread, waits for it to finish and
101
+ # returns the new thred's result.
102
+ #
103
+ def in_new_thread
104
+ res = nil
105
+
106
+ Thread.new { res = yield }.join
107
+
89
108
  res
90
109
  end
91
110
 
@@ -51,7 +51,7 @@ module Byebug
51
51
  end
52
52
 
53
53
  #
54
- # @param [Integer] A positive or negative integer
54
+ # @param step [Integer] A positive or negative integer
55
55
  #
56
56
  # @return [Integer] +1 if step is positive / -1 if negative
57
57
  #
@@ -63,7 +63,7 @@ module Byebug
63
63
  # Convert a possibly negative index to a positive index from the start
64
64
  # of the callstack. -1 is the last position in the stack and so on.
65
65
  #
66
- # @param [Integer] Integer to be converted in a proper positive index.
66
+ # @param i [Integer] Integer to be converted in a proper positive index.
67
67
  #
68
68
  def index_from_start(i)
69
69
  i >= 0 ? i : context.stack_size + i
@@ -25,7 +25,7 @@ module Byebug
25
25
  end
26
26
 
27
27
  def var_instance(str)
28
- obj = single_thread_eval(str || 'self')
28
+ obj = warning_eval(str || 'self')
29
29
 
30
30
  var_list(obj.instance_variables, obj.instance_eval { binding })
31
31
  end
@@ -161,7 +161,7 @@ module Byebug
161
161
  command = command_list.match(input)
162
162
  return command.new(self, input).execute if command
163
163
 
164
- puts safe_inspect(thread_safe_eval(input))
164
+ puts safe_inspect(multiple_thread_eval(input))
165
165
  end
166
166
  end
167
167
 
@@ -1,3 +1,5 @@
1
+ require 'byebug/processors/command_processor'
2
+
1
3
  module Byebug
2
4
  #
3
5
  # Processes commands when there's not program running
@@ -1,3 +1,5 @@
1
+ require 'byebug/processors/command_processor'
2
+
1
3
  module Byebug
2
4
  #
3
5
  # Processes commands from a file
@@ -2,5 +2,5 @@
2
2
  # Reopen main module to define the library version
3
3
  #
4
4
  module Byebug
5
- VERSION = '8.1.0'
5
+ VERSION = '8.2.0'
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: byebug
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.1.0
4
+ version: 8.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Rodriguez
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-11-09 00:00:00.000000000 Z
13
+ date: 2015-11-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -67,6 +67,7 @@ files:
67
67
  - lib/byebug/commands/catch.rb
68
68
  - lib/byebug/commands/condition.rb
69
69
  - lib/byebug/commands/continue.rb
70
+ - lib/byebug/commands/debug.rb
70
71
  - lib/byebug/commands/delete.rb
71
72
  - lib/byebug/commands/disable.rb
72
73
  - lib/byebug/commands/disable/breakpoints.rb
@@ -193,3 +194,4 @@ signing_key:
193
194
  specification_version: 4
194
195
  summary: Ruby 2.0 fast debugger - base + CLI
195
196
  test_files: []
197
+ has_rdoc: