byebug 9.0.5 → 11.1.3

Sign up to get free protection for your applications and to get access to all the features.
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