byebug 9.0.5 → 11.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +399 -264
  3. data/CONTRIBUTING.md +12 -19
  4. data/GUIDE.md +40 -26
  5. data/LICENSE +18 -18
  6. data/README.md +103 -74
  7. data/exe/byebug +6 -0
  8. data/ext/byebug/breakpoint.c +2 -2
  9. data/ext/byebug/byebug.c +26 -31
  10. data/ext/byebug/byebug.h +44 -28
  11. data/ext/byebug/context.c +45 -32
  12. data/ext/byebug/extconf.rb +7 -5
  13. data/ext/byebug/locker.c +4 -4
  14. data/ext/byebug/threads.c +12 -12
  15. data/lib/byebug/attacher.rb +18 -4
  16. data/lib/byebug/breakpoint.rb +26 -6
  17. data/lib/byebug/command.rb +20 -14
  18. data/lib/byebug/command_list.rb +3 -1
  19. data/lib/byebug/commands/break.rb +36 -22
  20. data/lib/byebug/commands/catch.rb +16 -18
  21. data/lib/byebug/commands/condition.rb +11 -11
  22. data/lib/byebug/commands/continue.rb +32 -12
  23. data/lib/byebug/commands/debug.rb +7 -5
  24. data/lib/byebug/commands/delete.rb +13 -11
  25. data/lib/byebug/commands/disable/breakpoints.rb +7 -5
  26. data/lib/byebug/commands/disable/display.rb +7 -5
  27. data/lib/byebug/commands/disable.rb +8 -6
  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 +11 -8
  31. data/lib/byebug/commands/enable/breakpoints.rb +7 -5
  32. data/lib/byebug/commands/enable/display.rb +7 -5
  33. data/lib/byebug/commands/enable.rb +8 -6
  34. data/lib/byebug/commands/finish.rb +9 -7
  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/breakpoints.rb +18 -14
  39. data/lib/byebug/commands/info/display.rb +16 -9
  40. data/lib/byebug/commands/info/file.rb +13 -14
  41. data/lib/byebug/commands/info/line.rb +5 -3
  42. data/lib/byebug/commands/info/program.rb +8 -6
  43. data/lib/byebug/commands/info.rb +11 -9
  44. data/lib/byebug/commands/interrupt.rb +8 -4
  45. data/lib/byebug/commands/irb.rb +13 -12
  46. data/lib/byebug/commands/kill.rb +11 -11
  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 -10
  51. data/lib/byebug/commands/quit.rb +10 -8
  52. data/lib/byebug/commands/restart.rb +30 -11
  53. data/lib/byebug/commands/save.rb +10 -8
  54. data/lib/byebug/commands/set.rb +13 -11
  55. data/lib/byebug/commands/show.rb +7 -5
  56. data/lib/byebug/commands/skip.rb +85 -0
  57. data/lib/byebug/commands/source.rb +7 -7
  58. data/lib/byebug/commands/step.rb +8 -6
  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 -7
  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/thread.rb +11 -9
  65. data/lib/byebug/commands/tracevar.rb +10 -11
  66. data/lib/byebug/commands/undisplay.rb +12 -11
  67. data/lib/byebug/commands/untracevar.rb +8 -6
  68. data/lib/byebug/commands/up.rb +10 -8
  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 -9
  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/var.rb +12 -10
  76. data/lib/byebug/commands/where.rb +9 -7
  77. data/lib/byebug/commands.rb +40 -37
  78. data/lib/byebug/context.rb +7 -5
  79. data/lib/byebug/core.rb +26 -25
  80. data/lib/byebug/errors.rb +4 -2
  81. data/lib/byebug/frame.rb +19 -22
  82. data/lib/byebug/helpers/bin.rb +47 -0
  83. data/lib/byebug/helpers/eval.rb +15 -13
  84. data/lib/byebug/helpers/file.rb +6 -4
  85. data/lib/byebug/helpers/frame.rb +7 -5
  86. data/lib/byebug/helpers/parse.rb +5 -5
  87. data/lib/byebug/helpers/path.rb +9 -11
  88. data/lib/byebug/helpers/reflection.rb +2 -0
  89. data/lib/byebug/helpers/string.rb +11 -2
  90. data/lib/byebug/helpers/thread.rb +10 -8
  91. data/lib/byebug/helpers/toggle.rb +28 -27
  92. data/lib/byebug/helpers/var.rb +9 -7
  93. data/lib/byebug/history.rb +20 -11
  94. data/lib/byebug/interface.rb +13 -11
  95. data/lib/byebug/interfaces/local_interface.rb +25 -7
  96. data/lib/byebug/interfaces/remote_interface.rb +21 -9
  97. data/lib/byebug/interfaces/script_interface.rb +4 -1
  98. data/lib/byebug/interfaces/test_interface.rb +5 -3
  99. data/lib/byebug/option_setter.rb +14 -12
  100. data/lib/byebug/printers/base.rb +10 -10
  101. data/lib/byebug/printers/plain.rb +9 -8
  102. data/lib/byebug/printers/texts/base.yml +7 -3
  103. data/lib/byebug/printers/texts/plain.yml +1 -1
  104. data/lib/byebug/processors/command_processor.rb +11 -12
  105. data/lib/byebug/processors/control_processor.rb +4 -6
  106. data/lib/byebug/processors/post_mortem_processor.rb +4 -2
  107. data/lib/byebug/processors/script_processor.rb +7 -3
  108. data/lib/byebug/remote/client.rb +57 -0
  109. data/lib/byebug/remote/server.rb +47 -0
  110. data/lib/byebug/remote.rb +46 -66
  111. data/lib/byebug/runner.rb +43 -49
  112. data/lib/byebug/setting.rb +11 -5
  113. data/lib/byebug/settings/autoirb.rb +7 -5
  114. data/lib/byebug/settings/autolist.rb +7 -5
  115. data/lib/byebug/settings/autopry.rb +7 -5
  116. data/lib/byebug/settings/autosave.rb +4 -2
  117. data/lib/byebug/settings/basename.rb +4 -2
  118. data/lib/byebug/settings/callstyle.rb +4 -3
  119. data/lib/byebug/settings/fullpath.rb +4 -2
  120. data/lib/byebug/settings/histfile.rb +5 -3
  121. data/lib/byebug/settings/histsize.rb +4 -2
  122. data/lib/byebug/settings/linetrace.rb +6 -4
  123. data/lib/byebug/settings/listsize.rb +4 -2
  124. data/lib/byebug/settings/post_mortem.rb +6 -4
  125. data/lib/byebug/settings/savefile.rb +4 -2
  126. data/lib/byebug/settings/stack_on_error.rb +4 -2
  127. data/lib/byebug/settings/width.rb +3 -1
  128. data/lib/byebug/source_file_formatter.rb +71 -0
  129. data/lib/byebug/subcommands.rb +6 -4
  130. data/lib/byebug/version.rb +2 -1
  131. data/lib/byebug.rb +3 -1
  132. metadata +22 -20
  133. data/bin/byebug +0 -7
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "helpers/file"
4
+ require_relative "setting"
5
+
6
+ module Byebug
7
+ #
8
+ # Formats specific line ranges in a source file
9
+ #
10
+ class SourceFileFormatter
11
+ include Helpers::FileHelper
12
+
13
+ attr_reader :file, :annotator
14
+
15
+ def initialize(file, annotator)
16
+ @file = file
17
+ @annotator = annotator
18
+ end
19
+
20
+ def lines(min, max)
21
+ File.foreach(file).with_index.map do |line, lineno|
22
+ next unless (min..max).cover?(lineno + 1)
23
+
24
+ format(
25
+ "%<annotation>s %<lineno>#{max.to_s.size}d: %<source>s",
26
+ annotation: annotator.call(lineno + 1),
27
+ lineno: lineno + 1,
28
+ source: line
29
+ )
30
+ end
31
+ end
32
+
33
+ def lines_around(center)
34
+ lines(*range_around(center))
35
+ end
36
+
37
+ def range_around(center)
38
+ range_from(center - size / 2)
39
+ end
40
+
41
+ def range_from(min)
42
+ first = amend_initial(min)
43
+
44
+ [first, first + size - 1]
45
+ end
46
+
47
+ def amend_initial(line)
48
+ amend(line, max_initial_line)
49
+ end
50
+
51
+ def amend_final(line)
52
+ amend(line, max_line)
53
+ end
54
+
55
+ def max_initial_line
56
+ max_line - size + 1
57
+ end
58
+
59
+ def max_line
60
+ @max_line ||= n_lines(file)
61
+ end
62
+
63
+ def size
64
+ [Setting[:listsize], max_line].min
65
+ end
66
+
67
+ def amend(line, ceiling)
68
+ [ceiling, [1, line].max].min
69
+ end
70
+ end
71
+ end
@@ -1,7 +1,9 @@
1
- require 'forwardable'
1
+ # frozen_string_literal: true
2
2
 
3
- require 'byebug/helpers/reflection'
4
- require 'byebug/command_list'
3
+ require "forwardable"
4
+
5
+ require_relative "helpers/reflection"
6
+ require_relative "command_list"
5
7
 
6
8
  module Byebug
7
9
  #
@@ -13,7 +15,7 @@ module Byebug
13
15
  end
14
16
 
15
17
  extend Forwardable
16
- def_delegators :'self.class', :subcommand_list
18
+ def_delegators "self.class", :subcommand_list
17
19
 
18
20
  #
19
21
  # Delegates to subcommands or prints help if no subcommand specified.
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  #
3
4
  # Reopen main module to define the library version
4
5
  #
5
6
  module Byebug
6
- VERSION = '9.0.5'.freeze
7
+ VERSION = "11.1.3"
7
8
  end
data/lib/byebug.rb CHANGED
@@ -1 +1,3 @@
1
- require 'byebug/attacher'
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "byebug/attacher"
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: byebug
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.5
4
+ version: 11.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Rodriguez
8
8
  - Kent Sibilev
9
9
  - Mark Moseley
10
10
  autorequire:
11
- bindir: bin
11
+ bindir: exe
12
12
  cert_chain: []
13
- date: 2016-05-28 00:00:00.000000000 Z
13
+ date: 2020-04-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -18,22 +18,21 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '1.7'
21
+ version: '2.0'
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: '1.7'
28
+ version: '2.0'
29
29
  description: |-
30
- Byebug is a Ruby 2 debugger. It's implemented using the
31
- Ruby 2 TracePoint C API for execution control and the Debug Inspector C API
32
- for call stack navigation. The core component provides support that
33
- front-ends can build on. It provides breakpoint handling and bindings for
34
- stack frames among other things and it comes with an easy to use command
35
- line interface.
36
- email: deivid.rodriguez@mail.com
30
+ Byebug is a Ruby debugger. It's implemented using the
31
+ TracePoint C API for execution control and the Debug Inspector C API for
32
+ call stack navigation. The core component provides support that front-ends
33
+ can build on. It provides breakpoint handling and bindings for stack frames
34
+ among other things and it comes with an easy to use command line interface.
35
+ email: deivid.rodriguez@riseup.net
37
36
  executables:
38
37
  - byebug
39
38
  extensions:
@@ -49,7 +48,7 @@ files:
49
48
  - GUIDE.md
50
49
  - LICENSE
51
50
  - README.md
52
- - bin/byebug
51
+ - exe/byebug
53
52
  - ext/byebug/breakpoint.c
54
53
  - ext/byebug/byebug.c
55
54
  - ext/byebug/byebug.h
@@ -100,6 +99,7 @@ files:
100
99
  - lib/byebug/commands/save.rb
101
100
  - lib/byebug/commands/set.rb
102
101
  - lib/byebug/commands/show.rb
102
+ - lib/byebug/commands/skip.rb
103
103
  - lib/byebug/commands/source.rb
104
104
  - lib/byebug/commands/step.rb
105
105
  - lib/byebug/commands/thread.rb
@@ -124,6 +124,7 @@ files:
124
124
  - lib/byebug/core.rb
125
125
  - lib/byebug/errors.rb
126
126
  - lib/byebug/frame.rb
127
+ - lib/byebug/helpers/bin.rb
127
128
  - lib/byebug/helpers/eval.rb
128
129
  - lib/byebug/helpers/file.rb
129
130
  - lib/byebug/helpers/frame.rb
@@ -150,6 +151,8 @@ files:
150
151
  - lib/byebug/processors/post_mortem_processor.rb
151
152
  - lib/byebug/processors/script_processor.rb
152
153
  - lib/byebug/remote.rb
154
+ - lib/byebug/remote/client.rb
155
+ - lib/byebug/remote/server.rb
153
156
  - lib/byebug/runner.rb
154
157
  - lib/byebug/setting.rb
155
158
  - lib/byebug/settings/autoirb.rb
@@ -167,11 +170,12 @@ files:
167
170
  - lib/byebug/settings/savefile.rb
168
171
  - lib/byebug/settings/stack_on_error.rb
169
172
  - lib/byebug/settings/width.rb
173
+ - lib/byebug/source_file_formatter.rb
170
174
  - lib/byebug/subcommands.rb
171
175
  - lib/byebug/version.rb
172
- homepage: http://github.com/deivid-rodriguez/byebug
176
+ homepage: https://github.com/deivid-rodriguez/byebug
173
177
  licenses:
174
- - BSD
178
+ - BSD-2-Clause
175
179
  metadata: {}
176
180
  post_install_message:
177
181
  rdoc_options: []
@@ -181,17 +185,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
181
185
  requirements:
182
186
  - - ">="
183
187
  - !ruby/object:Gem::Version
184
- version: 2.0.0
188
+ version: 2.4.0
185
189
  required_rubygems_version: !ruby/object:Gem::Requirement
186
190
  requirements:
187
191
  - - ">="
188
192
  - !ruby/object:Gem::Version
189
193
  version: '0'
190
194
  requirements: []
191
- rubyforge_project:
192
- rubygems_version: 2.5.1
195
+ rubygems_version: 3.2.0.pre1
193
196
  signing_key:
194
197
  specification_version: 4
195
- summary: Ruby 2.0 fast debugger - base + CLI
198
+ summary: Ruby fast debugger - base + CLI
196
199
  test_files: []
197
- has_rdoc:
data/bin/byebug DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- $LOAD_PATH.unshift(File.dirname(File.realpath(__FILE__)) + '/../lib')
4
-
5
- require 'byebug/runner'
6
-
7
- Byebug::Runner.new.run