byebug 9.1.0 → 10.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +24 -3
  3. data/CONTRIBUTING.md +39 -18
  4. data/GUIDE.md +16 -17
  5. data/README.md +64 -52
  6. data/exe/byebug +6 -0
  7. data/ext/byebug/breakpoint.c +1 -1
  8. data/ext/byebug/byebug.c +16 -16
  9. data/ext/byebug/byebug.h +40 -26
  10. data/ext/byebug/context.c +26 -26
  11. data/ext/byebug/extconf.rb +7 -5
  12. data/ext/byebug/threads.c +8 -8
  13. data/lib/byebug.rb +3 -1
  14. data/lib/byebug/attacher.rb +17 -3
  15. data/lib/byebug/breakpoint.rb +25 -3
  16. data/lib/byebug/command.rb +20 -14
  17. data/lib/byebug/command_list.rb +3 -1
  18. data/lib/byebug/commands.rb +39 -37
  19. data/lib/byebug/commands/break.rb +33 -15
  20. data/lib/byebug/commands/catch.rb +16 -14
  21. data/lib/byebug/commands/condition.rb +11 -9
  22. data/lib/byebug/commands/continue.rb +9 -7
  23. data/lib/byebug/commands/debug.rb +7 -5
  24. data/lib/byebug/commands/delete.rb +11 -9
  25. data/lib/byebug/commands/disable.rb +8 -6
  26. data/lib/byebug/commands/disable/breakpoints.rb +7 -5
  27. data/lib/byebug/commands/disable/display.rb +7 -5
  28. data/lib/byebug/commands/display.rb +11 -9
  29. data/lib/byebug/commands/down.rb +10 -8
  30. data/lib/byebug/commands/edit.rb +10 -8
  31. data/lib/byebug/commands/enable.rb +8 -6
  32. data/lib/byebug/commands/enable/breakpoints.rb +7 -5
  33. data/lib/byebug/commands/enable/display.rb +7 -5
  34. data/lib/byebug/commands/finish.rb +8 -6
  35. data/lib/byebug/commands/frame.rb +11 -9
  36. data/lib/byebug/commands/help.rb +7 -5
  37. data/lib/byebug/commands/history.rb +7 -5
  38. data/lib/byebug/commands/info.rb +11 -9
  39. data/lib/byebug/commands/info/breakpoints.rb +17 -11
  40. data/lib/byebug/commands/info/display.rb +16 -7
  41. data/lib/byebug/commands/info/file.rb +12 -10
  42. data/lib/byebug/commands/info/line.rb +5 -3
  43. data/lib/byebug/commands/info/program.rb +8 -6
  44. data/lib/byebug/commands/interrupt.rb +8 -4
  45. data/lib/byebug/commands/irb.rb +9 -7
  46. data/lib/byebug/commands/kill.rb +9 -7
  47. data/lib/byebug/commands/list.rb +41 -46
  48. data/lib/byebug/commands/method.rb +10 -8
  49. data/lib/byebug/commands/next.rb +8 -6
  50. data/lib/byebug/commands/pry.rb +10 -8
  51. data/lib/byebug/commands/quit.rb +7 -5
  52. data/lib/byebug/commands/restart.rb +13 -11
  53. data/lib/byebug/commands/save.rb +9 -7
  54. data/lib/byebug/commands/set.rb +12 -10
  55. data/lib/byebug/commands/show.rb +7 -5
  56. data/lib/byebug/commands/source.rb +7 -5
  57. data/lib/byebug/commands/step.rb +8 -6
  58. data/lib/byebug/commands/thread.rb +11 -9
  59. data/lib/byebug/commands/thread/current.rb +6 -4
  60. data/lib/byebug/commands/thread/list.rb +7 -5
  61. data/lib/byebug/commands/thread/resume.rb +7 -5
  62. data/lib/byebug/commands/thread/stop.rb +6 -4
  63. data/lib/byebug/commands/thread/switch.rb +6 -4
  64. data/lib/byebug/commands/tracevar.rb +10 -8
  65. data/lib/byebug/commands/undisplay.rb +10 -8
  66. data/lib/byebug/commands/untracevar.rb +8 -6
  67. data/lib/byebug/commands/up.rb +10 -8
  68. data/lib/byebug/commands/var.rb +12 -10
  69. data/lib/byebug/commands/var/all.rb +7 -5
  70. data/lib/byebug/commands/var/args.rb +6 -4
  71. data/lib/byebug/commands/var/const.rb +9 -7
  72. data/lib/byebug/commands/var/global.rb +5 -3
  73. data/lib/byebug/commands/var/instance.rb +6 -4
  74. data/lib/byebug/commands/var/local.rb +6 -4
  75. data/lib/byebug/commands/where.rb +9 -7
  76. data/lib/byebug/context.rb +7 -5
  77. data/lib/byebug/core.rb +25 -25
  78. data/lib/byebug/errors.rb +4 -2
  79. data/lib/byebug/frame.rb +16 -16
  80. data/lib/byebug/helpers/bin.rb +28 -7
  81. data/lib/byebug/helpers/eval.rb +8 -6
  82. data/lib/byebug/helpers/file.rb +4 -2
  83. data/lib/byebug/helpers/frame.rb +5 -3
  84. data/lib/byebug/helpers/parse.rb +5 -3
  85. data/lib/byebug/helpers/path.rb +7 -5
  86. data/lib/byebug/helpers/reflection.rb +2 -0
  87. data/lib/byebug/helpers/string.rb +4 -2
  88. data/lib/byebug/helpers/thread.rb +10 -8
  89. data/lib/byebug/helpers/toggle.rb +10 -8
  90. data/lib/byebug/helpers/var.rb +8 -6
  91. data/lib/byebug/history.rb +7 -5
  92. data/lib/byebug/interface.rb +13 -11
  93. data/lib/byebug/interfaces/local_interface.rb +4 -4
  94. data/lib/byebug/interfaces/remote_interface.rb +21 -9
  95. data/lib/byebug/interfaces/script_interface.rb +2 -0
  96. data/lib/byebug/interfaces/test_interface.rb +5 -3
  97. data/lib/byebug/option_setter.rb +14 -12
  98. data/lib/byebug/printers/base.rb +6 -6
  99. data/lib/byebug/printers/plain.rb +8 -6
  100. data/lib/byebug/printers/texts/base.yml +3 -3
  101. data/lib/byebug/processors/command_processor.rb +11 -12
  102. data/lib/byebug/processors/control_processor.rb +4 -6
  103. data/lib/byebug/processors/post_mortem_processor.rb +4 -2
  104. data/lib/byebug/processors/script_processor.rb +7 -3
  105. data/lib/byebug/remote.rb +45 -65
  106. data/lib/byebug/remote/client.rb +55 -0
  107. data/lib/byebug/remote/server.rb +47 -0
  108. data/lib/byebug/runner.rb +26 -19
  109. data/lib/byebug/setting.rb +10 -4
  110. data/lib/byebug/settings/autoirb.rb +5 -3
  111. data/lib/byebug/settings/autolist.rb +5 -3
  112. data/lib/byebug/settings/autopry.rb +5 -3
  113. data/lib/byebug/settings/autosave.rb +4 -2
  114. data/lib/byebug/settings/basename.rb +4 -2
  115. data/lib/byebug/settings/callstyle.rb +3 -3
  116. data/lib/byebug/settings/fullpath.rb +4 -2
  117. data/lib/byebug/settings/histfile.rb +5 -3
  118. data/lib/byebug/settings/histsize.rb +4 -2
  119. data/lib/byebug/settings/linetrace.rb +4 -2
  120. data/lib/byebug/settings/listsize.rb +4 -2
  121. data/lib/byebug/settings/post_mortem.rb +4 -2
  122. data/lib/byebug/settings/savefile.rb +4 -2
  123. data/lib/byebug/settings/stack_on_error.rb +4 -2
  124. data/lib/byebug/settings/width.rb +3 -1
  125. data/lib/byebug/source_file_formatter.rb +71 -0
  126. data/lib/byebug/subcommands.rb +6 -4
  127. data/lib/byebug/version.rb +1 -1
  128. metadata +8 -5
  129. data/bin/byebug +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d998c99367586ad5a7f29f3bd5e22b2836f1d7c8
4
- data.tar.gz: 32cf7615ad42d875e78c103e48c9a40dcde502be
2
+ SHA256:
3
+ metadata.gz: d1a9c68e68fbb9969eed83bdb9aeaafeb669f377bceb9ab0b5ec2d0b54c1467a
4
+ data.tar.gz: 817a487ce04be154b49cfb8b56d54fa2c0f9385503de378044f2f8f0a34982ce
5
5
  SHA512:
6
- metadata.gz: 2f5f3f1aec38feaa4a83fd97b9b09313a97ea5dd25daee3e9319d602e7268ca8fa6ade3995c8d8ccd4d68d5369e2f6511a3d8710562bc3204866bbc5ab20452b
7
- data.tar.gz: 570436e9f4263fdc9191c666337e5a726854427932fa995fa4819417414a6160830d27ffa3d0a3acf9c1e23fa4d387ee8d6f0d4e50e4b6b583626443e31b2bd9
6
+ metadata.gz: 22559feb649630e9bccbedea078a964dcb4bbb08302a8e6835168937e338ebe1244c0efcc33fd6b259601d17906c20939f64dca9ed23572cb1470ec5bea6397a
7
+ data.tar.gz: 29a0144c8404d6ef611f7f5b8d1ed22fe986efec0ed6bc20a1bff74b7e0a01904e3a707170e59032072f8cbb9f701db82d8012e7cfd399216472c7f1270bd335
@@ -2,7 +2,28 @@
2
2
 
3
3
  ## Master (Unreleased)
4
4
 
5
- ## 9.1.0 - 2016-08-22
5
+ ## 10.0.0 - 2018-01-26
6
+
7
+ ### Changed
8
+
9
+ * Breaking on methods now stops on the first effective line of a method, not on
10
+ the line containing the `def` keyword.
11
+
12
+ ### Added
13
+
14
+ * Show valid breakpoint locations when invalid location given (#393, @ko1).
15
+ * Ruby 2.5.0 support (#397, @yui-knk).
16
+ * Log host & port when launching byebug's client in remote mode.
17
+ * Some love & tests to remote debugging (#82).
18
+ * `remote_byebug` shortcut to start the most common case for remote debugging (#141).
19
+
20
+ ## Fixed
21
+
22
+ * Properly ignore ruby fullpath executable when passed to byebug script (#419).
23
+ * Remote server crash when interrupting client (#141, #274).
24
+ * Control server thread being able to `interrupt` main thread only a single time. (#239).
25
+
26
+ ## 9.1.0 - 2017-08-22
6
27
 
7
28
  ### Added
8
29
 
@@ -11,7 +32,7 @@
11
32
  ### Fixed
12
33
 
13
34
  * `where` command failing on instance_exec block stack frames.
14
- * `restart` command crashing in certain cases because of a missing `require 'English'` (#321, @akaneko3).
35
+ * `restart` command crashing in certain cases because of a missing `require "English"` (#321, @akaneko3).
15
36
  * `restart` command crashing when debugged script is not executable or has no shebang (#321, @akaneko3).
16
37
 
17
38
  ### Removed
@@ -32,7 +53,7 @@
32
53
 
33
54
  ### Fixed
34
55
 
35
- * Error loading rc file when `ENV['HOME']` is unset.
56
+ * Error loading rc file when `ENV["HOME"]` is unset.
36
57
 
37
58
  ## 9.0.4 - 2016-05-19
38
59
 
@@ -21,37 +21,58 @@ abide by its terms.
21
21
  always have the lastest patch level release installed.
22
22
  * The recommended tool to manage development dependencies is `bundler`. Run
23
23
  `gem install bundler` to install it.
24
- * Running `bundle install` inside a local clone of `byebug` will get development
25
- dependencies installed.
24
+ * Running `bin/bundle install` inside a local clone of `byebug` will get
25
+ development dependencies installed.
26
26
 
27
27
  ## Running the test suite
28
28
 
29
- * Make sure you compile the C-extension using `bundle exec rake compile`.
29
+ * Make sure you compile the C-extension using `bin/rake compile`.
30
30
  Otherwise you won't be able to use `byebug`.
31
- * Run the test suite using the default rake task (`bundle exec rake`). This
32
- task is composed of 2 subtasks: `bundle exec rake compile` &&
33
- `bundle exec rake test`.
31
+ * Run the test suite using the default rake task (`bin/rake`). This task is
32
+ composed of 3 subtasks: `bin/rake compile`, `bin/rake test` & `bin/rake lint`.
34
33
  * If you want to run specific tests, use the provided test runner, like so:
35
- * Specific test files. For example,
36
- `script/minitest_runner.rb test/commands/break_test.rb`
37
- * Specific test classes. For example,
38
- `script/minitest_runner.rb Byebug::BreakAtLinesTestCase`
34
+ * Specific test files. For example, `bin/minitest test/commands/break_test.rb`
35
+ * Specific test classes. For example, `bin/minitest BreakAtLinesTest`
39
36
  * Specific tests. For example,
40
- `script/minitest_runner.rb test_catch_removes_specific_catchpoint`
37
+ `bin/minitest test_catch_removes_specific_catchpoint`
41
38
  * Specific fully qualified tests. For example,
42
- `script/minitest_runner.rb
43
- BreakAtLinesTest#test_setting_breakpoint_sets_correct_fields`
39
+ `bin/minitest BreakAtLinesTest#test_setting_breakpoint_sets_correct_fields`
44
40
  * You can combine any of them and you will get the union of all filters. For
45
- example: `script/minitest_runner.rb Byebug::BreakAtLinesTestCase
41
+ example: `bin/minitest BreakAtLinesTest
46
42
  test_catch_removes_specific_catchpoint`
47
43
 
48
44
  ## Code style
49
45
 
50
- * Byebug uses [overcommit][] to enforce code style. Install the git hooks using
51
- `bundle exec overcommit --install`. They will review your changes before they
52
- are committed, checking they are consistent with the project's code style.
46
+ * Byebug uses [codeclimate][] to enforce code style. You can run codeclimate
47
+ checks locally using the [codeclimate CLI][] with `codeclimate analyze`.
53
48
 
54
- [overcommit]: https://github.com/brigade/overcommit/
49
+ * It also uses some extra style checks that are not available in codeclimate.
50
+ You can run those using `bin/rake lint`. These tasks are:
51
+
52
+ * Linting of c-files using `clang-format`. Configuration is specific to
53
+ clang-format 3.8, you may need some extra work to get that installed on macOS,
54
+ see below.
55
+
56
+ * Checking correct executable bit on repository files.
57
+
58
+ [codeclimate]: https://codeclimate.com/github/deivid-rodriguez/byebug
59
+ [codeclimate CLI]: https://github.com/codeclimate/codeclimate
60
+
61
+ ### Runnning `clang-format` on macOS
62
+
63
+ At the moment byebug uses older `clang-format` version to enforce C codestyle than
64
+ can be found in Homebrew. If you are planning to change some C source here it is
65
+ recommended to use [direnv][] to hook that older version into your shell:
66
+
67
+ * Install [direnv][] as described in their README
68
+ * Install `clang-format@3.8` with `brew install clang-format@3.8`
69
+ * In byebug source code directory do `echo 'export PATH="/usr/local/opt/clang-format@3.8/bin:$PATH"' > .envrc`
70
+ * Allow direnv to use that `.envrc` file with `direnv allow`
71
+
72
+ With that your `$PATH` will be updated to use older `clang-format` every time you `cd`
73
+ into byebug source code folder. It will reverted back when you `cd` out of it as well.
74
+
75
+ [direnv]: https://github.com/direnv/direnv/
55
76
 
56
77
  ## Byebug as a C-extension
57
78
 
data/GUIDE.md CHANGED
@@ -186,7 +186,7 @@ end
186
186
 
187
187
  n_args = $ARGV.length
188
188
 
189
- raise('*** Need number of disks or no parameter') if n_args > 1
189
+ raise("*** Need number of disks or no parameter") if n_args > 1
190
190
 
191
191
  n = 3
192
192
 
@@ -198,7 +198,7 @@ if n_args > 0
198
198
  end
199
199
  end
200
200
 
201
- raise('*** Number of disks should be between 1 and 100') if n < 1 || n > 100
201
+ raise("*** Number of disks should be between 1 and 100") if n < 1 || n > 100
202
202
 
203
203
  hanoi(n, :a, :b, :c)
204
204
  ```
@@ -330,7 +330,7 @@ Now let's see what happens after stepping:
330
330
  11:
331
331
  => 12: n_args = $ARGV.length
332
332
  13:
333
- 14: raise('*** Need number of disks or no parameter') if n_args > 1
333
+ 14: raise("*** Need number of disks or no parameter") if n_args > 1
334
334
  (byebug) private_methods.member?(:hanoi)
335
335
  true
336
336
  (byebug)
@@ -349,7 +349,7 @@ can use the `restart` command here.
349
349
  ```bash
350
350
  (byebug) restart 3
351
351
  Re exec'ing:
352
- /path/to/bin/byebug /path/to/hanoi.rb 3
352
+ /path/to/exe/byebug /path/to/hanoi.rb 3
353
353
 
354
354
  [1, 10] in /path/to/hanoi.rb
355
355
  1: #
@@ -460,7 +460,7 @@ NameError Exception: undefined local variable or method `n_args' for main:Object
460
460
  23: end
461
461
  24: end
462
462
  25:
463
- 26: raise('*** Number of disks should be between 1 and 100') if n < 1 || n > 100
463
+ 26: raise("*** Number of disks should be between 1 and 100") if n < 1 || n > 100
464
464
  27:
465
465
  => 28: hanoi(n, :a, :b, :c)
466
466
  (byebug) n_args
@@ -527,8 +527,8 @@ framework for that. Here's the test code, it should be placed in the same
527
527
  directory as `triangle.rb`.
528
528
 
529
529
  ```ruby
530
- require 'minitest/autorun'
531
- require_relative 'triangle.rb'
530
+ require "minitest/autorun"
531
+ require_relative "triangle.rb"
532
532
 
533
533
  class TestTriangle < Minitest::Test
534
534
  def test_basic
@@ -536,7 +536,7 @@ class TestTriangle < Minitest::Test
536
536
 
537
537
  0.upto(5) { |i| solutions << triangle(i) }
538
538
 
539
- assert_equal([0, 1, 3, 6, 10, 15], solutions, 'First 5 triangle numbers')
539
+ assert_equal([0, 1, 3, 6, 10, 15], solutions, "First 5 triangle numbers")
540
540
  end
541
541
  end
542
542
  ```
@@ -561,7 +561,7 @@ Run options: --seed 31679
561
561
  # Running:
562
562
 
563
563
  [2, 11] in test_triangle.rb
564
- 2: require_relative 'triangle.rb'
564
+ 2: require_relative "triangle.rb"
565
565
  3:
566
566
  4: class TestTriangle < Minitest::Test
567
567
  5: def test_basic
@@ -570,7 +570,7 @@ Run options: --seed 31679
570
570
  8:
571
571
  9: 0.upto(5) { |i| solutions << triangle(i) }
572
572
  10:
573
- 11: assert_equal([0, 1, 3, 6, 10, 15], solutions, 'First 5 triangle numbers')
573
+ 11: assert_equal([0, 1, 3, 6, 10, 15], solutions, "First 5 triangle numbers")
574
574
  (byebug)
575
575
  ```
576
576
 
@@ -740,7 +740,7 @@ _current_ class of the object.
740
740
  Consider the following little Ruby program.
741
741
 
742
742
  ```ruby
743
- 'Yes it does' =~ /
743
+ "Yes it does" =~ /
744
744
  (Yes) \s+
745
745
  it \s+
746
746
  does
@@ -953,8 +953,7 @@ We have started by debugging the `employee` thread. To do that, we switch to
953
953
  that thread using the `thread switch 3` command. The thread number is the one
954
954
  specified by `thread list`, we know this is our worker thread because `thread
955
955
  list` specifies where the thread is defined in the file (and its current
956
- position if the thread is currently running, although this is only available
957
- since Ruby 2.2.1).
956
+ position if the thread is currently running).
958
957
 
959
958
  After that we stopped the main thread and the worker thread, using the command
960
959
  `thread stop`. We do this because we want to focus on the employee thread first
@@ -1312,7 +1311,7 @@ at the same speed as if there were no byebug.
1312
1311
  To enter byebug this way, just drop `byebug` in whichever line you want to start
1313
1312
  debugging at. You also have to require byebug somehow. If using bundler, it will
1314
1313
  take care of that for you, otherwise you can use the ruby `-r` flag or add
1315
- `require 'byebug'` in the line previous to the `byebug` call.
1314
+ `require "byebug"` in the line previous to the `byebug` call.
1316
1315
 
1317
1316
  If speed is crucial, you may want to start and stop this around certain sections
1318
1317
  of code, using `Byebug.start` and `Byebug.stop`. Alternatively, instead of
@@ -1328,7 +1327,7 @@ problem you want to investigate. And since `byebug` is just a method call it's
1328
1327
  possible to enclose it in a conditional expression, for example
1329
1328
 
1330
1329
  ```ruby
1331
- byebug if 'bar' == foo and 20 == iter_count
1330
+ byebug if "bar" == foo and 20 == iter_count
1332
1331
  ```
1333
1332
 
1334
1333
  ### Restarting Byebug
@@ -1355,9 +1354,9 @@ program that you want to debug (In Rails, the
1355
1354
  `config/environments/development.rb` could be a good candidate).
1356
1355
 
1357
1356
  ```ruby
1358
- require 'byebug/core'
1357
+ require "byebug/core"
1359
1358
  Byebug.wait_connection = true
1360
- Byebug.start_server('localhost', <port>)
1359
+ Byebug.start_server("localhost", <port>)
1361
1360
  ```
1362
1361
 
1363
1362
  Once this piece gets executed, you can connect to the remote debugger from your
data/README.md CHANGED
@@ -1,21 +1,18 @@
1
1
  # Byebug
2
2
 
3
3
  [![Version][gem]][gem_url]
4
- [![Quality][gpa]][gpa_url]
4
+ [![Maintainability][mai]][mai_url]
5
5
  [![Coverage][cov]][cov_url]
6
- [![Gratipay][tip]][tip_url]
7
6
  [![Gitter][irc]][irc_url]
8
7
 
9
8
  [gem]: https://img.shields.io/gem/v/byebug.svg
10
- [gpa]: https://img.shields.io/codeclimate/github/deivid-rodriguez/byebug.svg
11
- [cov]: https://img.shields.io/codeclimate/coverage/github/deivid-rodriguez/byebug.svg
12
- [tip]: https://img.shields.io/gittip/byebug.svg
9
+ [mai]: https://api.codeclimate.com/v1/badges/f1a1bec582752c22da80/maintainability
10
+ [cov]: https://api.codeclimate.com/v1/badges/f1a1bec582752c22da80/test_coverage
13
11
  [irc]: https://img.shields.io/badge/IRC%20(gitter)-devs%20%26%20users-brightgreen.svg
14
12
 
15
13
  [gem_url]: https://rubygems.org/gems/byebug
16
- [gpa_url]: https://codeclimate.com/github/deivid-rodriguez/byebug
17
- [cov_url]: https://codeclimate.com/github/deivid-rodriguez/byebug
18
- [tip_url]: https://gratipay.com/byebug
14
+ [mai_url]: https://codeclimate.com/github/deivid-rodriguez/byebug/maintainability
15
+ [cov_url]: https://codeclimate.com/github/deivid-rodriguez/byebug/test_coverage
19
16
  [irc_url]: https://gitter.im/deivid-rodriguez/byebug
20
17
 
21
18
  Byebug is a simple to use, feature rich debugger for Ruby. It uses the
@@ -36,22 +33,23 @@ and offers many of the traditional debugging features such as:
36
33
 
37
34
  ## Build Status
38
35
 
39
- Linux [![Tra][tra]][tra_url]
40
-
36
+ Linux [![Cir][cir]][cir_url]
37
+ macOS [![Tra][tra]][tra_url]
41
38
  Windows [![Vey][vey]][vey_url]
42
39
 
43
- [tra]: https://img.shields.io/travis/deivid-rodriguez/byebug.svg?branch=master
40
+ [cir]: https://circleci.com/gh/deivid-rodriguez/byebug/tree/master.svg?style=svg
41
+ [tra]: https://api.travis-ci.org/deivid-rodriguez/byebug.svg?branch=master
44
42
  [vey]: https://ci.appveyor.com/api/projects/status/github/deivid-rodriguez/byebug?svg=true
45
43
 
44
+ [cir_url]: https://circleci.com/gh/deivid-rodriguez/byebug/tree/master
46
45
  [tra_url]: https://travis-ci.org/deivid-rodriguez/byebug
47
46
  [vey_url]: https://ci.appveyor.com/project/deivid-rodriguez/byebug
48
47
 
49
48
  ## Requirements
50
49
 
51
- * Recommended:
52
- * MRI 2.2.4 or higher.
53
- * MRI 2.3.0 or higher.
54
- * MRI 2.4.0 or higher.
50
+ * Required: MRI 2.2.0 or higher.
51
+
52
+ * Recommended: MRI 2.3.0 or higher.
55
53
 
56
54
  ## Install
57
55
 
@@ -59,6 +57,12 @@ Windows [![Vey][vey]][vey_url]
59
57
  gem install byebug
60
58
  ```
61
59
 
60
+ Or if you use `bundler`,
61
+
62
+ ```shell
63
+ bundle add byebug --group "development, test"
64
+ ```
65
+
62
66
  ## Usage
63
67
 
64
68
  ### From within the Ruby code
@@ -95,43 +99,43 @@ byebug myscript.rb
95
99
 
96
100
  ## Byebug's commands
97
101
 
98
- Command | Aliases | Subcommands
99
- ----------- |:------------ |:-----------
100
- `backtrace` | `bt` `where` |
101
- `break` | |
102
- `catch` | |
103
- `condition` | |
104
- `continue` | |
105
- `delete` | |
106
- `debug` | |
107
- `disable` | | `breakpoints` `display`
108
- `display` | |
109
- `down` | |
110
- `edit` | |
111
- `enable` | | `breakpoints` `display`
112
- `finish` | |
113
- `frame` | |
114
- `help` | |
115
- `history` | |
116
- `info` | | `args` `breakpoints` `catch` `display` `file` `line` `program`
117
- `irb` | |
118
- `kill` | |
119
- `list` | |
120
- `method` | | `instance`
121
- `next` | |
122
- `pry` | |
123
- `quit` | |
124
- `restart` | |
125
- `save` | |
126
- `set` | | `autoirb` `autolist` `autopry` `autosave` `basename` `callstyle` `fullpath` `histfile` `histsize` `linetrace` `listsize` `post_mortem` `savefile` `stack_on_error` `width`
127
- `show` | | `autoirb` `autolist` `autopry` `autosave` `basename` `callstyle` `fullpath` `histfile` `histsize` `linetrace` `listsize` `post_mortem` `savefile` `stack_on_error` `width`
128
- `source` | |
129
- `step` | |
130
- `thread` | | `current` `list` `resume` `stop` `switch`
131
- `tracevar` | |
132
- `undisplay` | |
133
- `up` | |
134
- `var` | | `all` `constant` `global` `instance` `local`
102
+ Command | Aliases | Subcommands
103
+ ------- | ------- | -----------
104
+ `backtrace` | `bt` `where` |
105
+ `break` | |
106
+ `catch` | |
107
+ `condition` | |
108
+ `continue` | |
109
+ `delete` | |
110
+ `debug` | |
111
+ `disable` | | `breakpoints` `display`
112
+ `display` | |
113
+ `down` | |
114
+ `edit` | |
115
+ `enable` | | `breakpoints` `display`
116
+ `finish` | |
117
+ `frame` | |
118
+ `help` | |
119
+ `history` | |
120
+ `info` | | `args` `breakpoints` `catch` `display` `file` `line` `program`
121
+ `irb` | |
122
+ `kill` | |
123
+ `list` | |
124
+ `method` | | `instance`
125
+ `next` | |
126
+ `pry` | |
127
+ `quit` | |
128
+ `restart` | |
129
+ `save` | |
130
+ `set` | | `autoirb` `autolist` `autopry` `autosave` `basename` `callstyle` `fullpath` `histfile` `histsize` `linetrace` `listsize` `post_mortem` `savefile` `stack_on_error` `width`
131
+ `show` | | `autoirb` `autolist` `autopry` `autosave` `basename` `callstyle` `fullpath` `histfile` `histsize` `linetrace` `listsize` `post_mortem` `savefile` `stack_on_error` `width`
132
+ `source` | |
133
+ `step` | |
134
+ `thread` | | `current` `list` `resume` `stop` `switch`
135
+ `tracevar` | |
136
+ `undisplay` | |
137
+ `up` | |
138
+ `var` | | `all` `constant` `global` `instance` `local`
135
139
 
136
140
  ## Semantic Versioning
137
141
 
@@ -160,6 +164,11 @@ started. Proper documentation will be eventually written.
160
164
 
161
165
  See [Getting Started with Development](CONTRIBUTING.md).
162
166
 
167
+ You can also help `byebug` by leaving a small (or big) tip through
168
+ [Liberapay][liberapay.com].
169
+
170
+ [![Support via Liberapay][liberapay-button]][liberapay-donate]
171
+
163
172
  ## Credits
164
173
 
165
174
  Everybody who has ever contributed to this forked and reforked piece of
@@ -179,3 +188,6 @@ software, especially:
179
188
  [minitest-byebug]: https://github.com/kaspth/minitest-byebug
180
189
  [sublime_debugger]: https://github.com/shuky19/sublime_debugger
181
190
  [atom-byebug]: https://github.com/izaera/atom-byebug
191
+ [liberapay.com]: https://liberapay.com
192
+ [liberapay-button]: https://liberapay.com/assets/widgets/donate.svg
193
+ [liberapay-donate]: https://liberapay.com/byebug/donate
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "byebug/runner"
5
+
6
+ Byebug::Runner.new.run
@@ -239,7 +239,7 @@ brkpt_source(VALUE self)
239
239
  }
240
240
 
241
241
  static void
242
- mark_breakpoint(breakpoint_t * breakpoint)
242
+ mark_breakpoint(breakpoint_t *breakpoint)
243
243
  {
244
244
  rb_gc_mark(breakpoint->source);
245
245
  rb_gc_mark(breakpoint->expr);