debugger 1.5.0 → 1.6.0

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.
@@ -1,3 +1,10 @@
1
+ ## 1.6.0
2
+ * Make autoeval and autolist true the default
3
+ * Bump ruby_core_source dependency
4
+ * Fix printf bugs
5
+ * Fix printer require issues
6
+ * Fix some warnings
7
+
1
8
  ## 1.5.0
2
9
  * Add support for any output adapters e.g. xml
3
10
  * Bump debugger-linecache dependency
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
data/README.md CHANGED
@@ -43,12 +43,6 @@ from two locations:
43
43
  * ~/.rdebugrc (~/rdebug.ini for windows)
44
44
  * $PWD/.rdebugrc ($PWD/rdebug.ini for windows)
45
45
 
46
- Here's a common configuration (yeah, I should make this the default):
47
-
48
- set autolist
49
- set autoeval
50
- set autoreload
51
-
52
46
  To see debugger's current settings, use the `set` command.
53
47
 
54
48
  ### Using Commands
@@ -98,6 +92,7 @@ tutorial](http://bashdb.sourceforge.net/ruby-debug/rdebug-emacs.html)
98
92
  * See changelog for more
99
93
  * Minor
100
94
  * The gem name matches the module namespace, Debugger, and main required file, debugger.
95
+ * autolist and autoeval enabled by default
101
96
  * ruby-debug-base19 and ruby-debug19 are released as one gem
102
97
  * Rake tasks have been updated
103
98
  * No more $LOAD_PATH manipulation or runtime code outside of lib
@@ -123,6 +118,7 @@ Let's keep this working for the ruby community!
123
118
  debugger commands and more
124
119
  * [debugger-xml](https://github.com/astashov/debugger-xml) - XML interface for debugger, compatible
125
120
  with ruby-debug-ide
121
+ * [vim-ruby-debugger] - Vim plugin that uses debugger
126
122
  * [debugger-pry](https://github.com/pry/debugger-pry) - using pry within debugger
127
123
  * [pry-debugger](https://github.com/nixme/pry-debugger) - using debugger within pry
128
124
  * [ruby-debug-passenger](https://github.com/davejamesmiller/ruby-debug-passenger) - rake task to
@@ -20,7 +20,7 @@ handling, bindings for stack frames among other things.
20
20
  s.extensions << "ext/ruby_debug/extconf.rb"
21
21
  s.executables = ["rdebug"]
22
22
  s.add_dependency "columnize", ">= 0.3.1"
23
- s.add_dependency "debugger-ruby_core_source", '~> 1.2.0'
23
+ s.add_dependency "debugger-ruby_core_source", '~> 1.2.1'
24
24
  s.add_dependency "debugger-linecache", '~> 1.2.0'
25
25
  s.add_development_dependency 'rake', '~> 0.9.2.2'
26
26
  s.add_development_dependency 'rake-compiler', '~> 0.8.0'
@@ -12,8 +12,8 @@ class TestInterface < Debugger::Interface
12
12
  @readline_support = false
13
13
  end
14
14
 
15
- def errmsg(*args)
16
- @error_queue << format(args)
15
+ def errmsg(value)
16
+ @error_queue << value
17
17
  end
18
18
 
19
19
  def read_command(*args)
@@ -25,8 +25,8 @@ class TestInterface < Debugger::Interface
25
25
  result.is_a?(Proc) ? result.call : result
26
26
  end
27
27
 
28
- def print(*args)
29
- @output_queue << format(args)
28
+ def print(value)
29
+ @output_queue << value
30
30
  end
31
31
 
32
32
  def confirm(message)
@@ -58,13 +58,4 @@ class TestInterface < Debugger::Interface
58
58
  ].join("\n")
59
59
  end
60
60
 
61
- private
62
-
63
- def format(args)
64
- if args.size > 1
65
- args.first % args[1..-1]
66
- else
67
- args.first
68
- end
69
- end
70
61
  end
@@ -1,5 +1,5 @@
1
1
  module Debugger
2
2
  # TODO: remove version from C ext
3
3
  send :remove_const, :VERSION if const_defined? :VERSION
4
- VERSION = '1.5.0'
4
+ VERSION = '1.6.0'
5
5
  end
@@ -4,7 +4,7 @@ require 'socket'
4
4
  require 'thread'
5
5
  require 'ruby-debug-base'
6
6
  require 'ruby-debug/processor'
7
- Dir.glob(File.expand_path("../ruby-debug/printers/**/*.rb", __FILE__)).each { |f| require f }
7
+ require 'ruby-debug/printers/plain'
8
8
 
9
9
  module Debugger
10
10
  self.handler = CommandProcessor.new
@@ -181,7 +181,7 @@ module Debugger
181
181
  # TODO: Add optional timeout
182
182
  def debug_eval(str, b = get_binding)
183
183
  begin
184
- val = eval(str, b)
184
+ eval(str, b)
185
185
  rescue StandardError, ScriptError => e
186
186
  text_message = if Command.settings[:stack_trace_on_error]
187
187
  at = eval("caller(1)", b)
@@ -21,7 +21,7 @@ module Debugger
21
21
  $__dbg_interface = nil
22
22
  end
23
23
  end
24
-
24
+
25
25
  class EvalCommand < Command # :nodoc:
26
26
  register_setting_get(:autoeval) do
27
27
  EvalCommand.unknown
@@ -30,11 +30,14 @@ module Debugger
30
30
  EvalCommand.unknown = value
31
31
  end
32
32
 
33
+ # Set default value
34
+ Command.settings[:autoeval] = 1
35
+
33
36
  def match(input)
34
37
  @input = input
35
38
  super
36
39
  end
37
-
40
+
38
41
  def regexp
39
42
  /^\s*(p|e(?:val)?)\s+/
40
43
  end
@@ -69,7 +72,7 @@ module Debugger
69
72
 
70
73
  class PPCommand < Command # :nodoc:
71
74
  self.allow_in_control = true
72
-
75
+
73
76
  def regexp
74
77
  /^\s*pp\s+/
75
78
  end
@@ -80,7 +83,7 @@ module Debugger
80
83
  PP.pp(debug_eval(@match.post_match, b), out)
81
84
  end
82
85
  print out.string
83
- rescue
86
+ rescue
84
87
  out.puts $!.message
85
88
  end
86
89
 
@@ -99,7 +102,7 @@ module Debugger
99
102
 
100
103
  class PutLCommand < Command # :nodoc:
101
104
  self.allow_in_control = true
102
-
105
+
103
106
  def regexp
104
107
  /^\s*putl\s+/
105
108
  end
@@ -110,13 +113,13 @@ module Debugger
110
113
  vals = debug_eval(@match.post_match, b)
111
114
  if vals.is_a?(Array)
112
115
  vals = vals.map{|item| item.to_s}
113
- print "%s\n", columnize(vals, self.class.settings[:width])
116
+ print "#{columnize(vals, self.class.settings[:width])}\n"
114
117
  else
115
118
  PP.pp(vals, out)
116
119
  print out.string
117
120
  end
118
121
  end
119
- rescue
122
+ rescue
120
123
  out.puts $!.message
121
124
  end
122
125
 
@@ -132,12 +135,12 @@ module Debugger
132
135
  end
133
136
  end
134
137
  end
135
-
138
+
136
139
  class PSCommand < Command # :nodoc:
137
140
  self.allow_in_control = true
138
-
141
+
139
142
  include EvalFunctions
140
-
143
+
141
144
  def regexp
142
145
  /^\s*ps\s+/
143
146
  end
@@ -148,13 +151,13 @@ module Debugger
148
151
  vals = debug_eval(@match.post_match, b)
149
152
  if vals.is_a?(Array)
150
153
  vals = vals.map{|item| item.to_s}
151
- print "%s\n", columnize(vals.sort!, self.class.settings[:width])
154
+ print "#{columnize(vals.sort!, self.class.settings[:width])}\n"
152
155
  else
153
156
  PP.pp(vals, out)
154
157
  print out.string
155
158
  end
156
159
  end
157
- rescue
160
+ rescue
158
161
  out.puts $!.message
159
162
  end
160
163
 
@@ -170,5 +173,5 @@ module Debugger
170
173
  end
171
174
  end
172
175
  end
173
-
176
+
174
177
  end
@@ -143,11 +143,9 @@ item. If \'verbose\' is given then the entire stack frame is shown.'],
143
143
  print "Num Enb What\n"
144
144
  brkpts.each do |b|
145
145
  if b.expr.nil?
146
- print "%3d %s at %s:%s\n",
147
- b.id, (b.enabled? ? 'y' : 'n'), b.source, b.pos
146
+ print("%3d %s at %s:%s\n" % [b.id, (b.enabled? ? 'y' : 'n'), b.source, b.pos])
148
147
  else
149
- print "%3d %s at %s:%s if %s\n",
150
- b.id, (b.enabled? ? 'y' : 'n'), b.source, b.pos, b.expr
148
+ print("%3d %s at %s:%s if %s\n" % [b.id, (b.enabled? ? 'y' : 'n'), b.source, b.pos, b.expr])
151
149
  end
152
150
  hits = b.hit_count
153
151
  if hits > 0
@@ -170,8 +168,7 @@ item. If \'verbose\' is given then the entire stack frame is shown.'],
170
168
  print "Num Enb Expression\n"
171
169
  n = 1
172
170
  for d in @state.display
173
- print "%3d: %s %s\n", n, (d[0] ? 'y' : 'n'), d[1] if
174
- d[0] != nil
171
+ print("%3d: %s %s\n" % [n, (d[0] ? 'y' : 'n'), d[1]]) if d[0] != nil
175
172
  n += 1
176
173
  end
177
174
  else
@@ -202,17 +199,17 @@ item. If \'verbose\' is given then the entire stack frame is shown.'],
202
199
  LineCache::cache(file, Command.settings[:reload_source_on_change])
203
200
  end
204
201
 
205
- print "File %s", file
202
+ print("File #{file}")
206
203
  path = LineCache.path(file)
207
204
  if %w(all basic path).member?(subcmd.name) and path != file
208
- print " - %s\n", path
205
+ print(" - #{path}\n")
209
206
  else
210
207
  print "\n"
211
208
  end
212
209
 
213
210
  if %w(all basic lines).member?(subcmd.name)
214
211
  lines = LineCache.size(file)
215
- print "\t %d lines\n", lines if lines
212
+ print("\t #{lines} lines\n") if lines
216
213
  end
217
214
 
218
215
  if %w(all breakpoints).member?(subcmd.name)
@@ -225,10 +222,10 @@ item. If \'verbose\' is given then the entire stack frame is shown.'],
225
222
 
226
223
  if %w(all mtime).member?(subcmd.name)
227
224
  stat = LineCache.stat(file)
228
- print "\t%s\n", stat.mtime if stat
225
+ print("\t#{stat.mtime}\n") if stat
229
226
  end
230
227
  if %w(all sha1).member?(subcmd.name)
231
- print "\t%s\n", LineCache.sha1(file)
228
+ print("\t#{LineCache.sha1(file)}\n")
232
229
  end
233
230
  end
234
231
 
@@ -238,13 +235,13 @@ item. If \'verbose\' is given then the entire stack frame is shown.'],
238
235
  files.uniq.sort.each do |file|
239
236
  stat = LineCache::stat(file)
240
237
  path = LineCache::path(file)
241
- print "File %s", file
238
+ print("File #{file}")
242
239
  if path and path != file
243
- print " - %s\n", path
240
+ print " - #{path}\n"
244
241
  else
245
242
  print "\n"
246
243
  end
247
- print "\t%s\n", stat.mtime if stat
244
+ print "\t#{stat.mtime}\n" if stat
248
245
  end
249
246
  end
250
247
 
@@ -262,7 +259,7 @@ item. If \'verbose\' is given then the entire stack frame is shown.'],
262
259
  errmsg "info line not available here.\n"
263
260
  return
264
261
  end
265
- print "Line %d of \"%s\"\n", @state.line, @state.file
262
+ print "Line #{@state.line} of \"#{@state.file}\"\n"
266
263
  end
267
264
 
268
265
  def info_locals(*args)
@@ -310,7 +307,7 @@ item. If \'verbose\' is given then the entire stack frame is shown.'],
310
307
  when :catchpoint
311
308
  print("It stopped at a catchpoint.\n")
312
309
  else
313
- print "unknown reason: %s\n" % @state.context.stop_reason.to_s
310
+ print "unknown reason: #{@state.context.stop_reason.to_s}\n"
314
311
  end
315
312
  end
316
313
 
@@ -347,7 +344,7 @@ item. If \'verbose\' is given then the entire stack frame is shown.'],
347
344
  def info_threads(*args)
348
345
  ok, verbose = info_thread_preamble(args[0])
349
346
  return unless ok
350
- threads = Debugger.contexts.sort_by{|c| c.thnum}.each do |c|
347
+ Debugger.contexts.sort_by{|c| c.thnum}.each do |c|
351
348
  display_context(c, !verbose)
352
349
  if verbose and not c.ignored?
353
350
  (0...c.stack_size).each do |idx|
@@ -9,6 +9,9 @@ module Debugger
9
9
  ListCommand.always_run = value
10
10
  end
11
11
 
12
+ # Set autolist by default
13
+ Command.settings[:autolist] = 1
14
+
12
15
  def regexp
13
16
  /^\s* l(?:ist)? (?:\s*([-=])|\s+(.+))? $/x
14
17
  end
@@ -29,7 +29,7 @@ module Debugger
29
29
  the "catch" command, and wish to pass the exception on to the
30
30
  code that you're debugging.
31
31
  }
32
- end
32
+ end
33
33
  end
34
34
  end
35
35
  end
@@ -133,7 +133,7 @@ module Debugger
133
133
  private
134
134
 
135
135
  def get_obj(match)
136
- obj = if match[1]
136
+ if match[1]
137
137
  begin
138
138
  ObjectSpace._id2ref(match[1].hex)
139
139
  rescue RangeError
@@ -1,4 +1,4 @@
1
- require_relative 'base'
1
+ require 'ruby-debug/printers/base'
2
2
  module Printers
3
3
  class Plain < Base
4
4
  include Columnize
@@ -177,8 +177,7 @@ module Debugger
177
177
  file = CommandProcessor.canonic_file(file)
178
178
  unless file == @last_file and @last_line == line and
179
179
  Command.settings[:tracing_plus]
180
- print "Tracing(%d):%s:%s %s",
181
- context.thnum, file, line, Debugger.line_at(file, line)
180
+ print("Tracing(%d):%s:%s %s" % [context.thnum, file, line, Debugger.line_at(file, line)])
182
181
  @last_file = file
183
182
  @last_line = line
184
183
  end
@@ -22,13 +22,17 @@ describe "Eval Command" do
22
22
  end
23
23
 
24
24
  describe "autoeval" do
25
- temporary_change_hash_value(Debugger::Command.settings, :autoeval, false)
26
-
27
- it "must eval the expression if no matching command is found" do
28
- enter 'set autoeval', '[5,6,7].inject(&:+)'
25
+ it "must eval the expression if no matching command is found by default" do
26
+ enter '[5,6,7].inject(&:+)'
29
27
  debug_file 'eval'
30
28
  check_output_includes "18"
31
29
  end
30
+
31
+ it "must not eval the expression if no matching command is found if toogled" do
32
+ enter 'set noautoeval', '[5,6,7].inject(&:+)'
33
+ debug_file 'eval'
34
+ check_output_doesnt_include "18"
35
+ end
32
36
  end
33
37
 
34
38
  describe "evaluate with error" do
@@ -55,13 +55,17 @@ describe "List Command" do
55
55
  end
56
56
 
57
57
  describe "autolist" do
58
- temporary_change_hash_value(Debugger::Command.settings, :autolist, 0)
59
-
60
- it "must show the surronding lines even without 'list' command if autolist is enabled" do
61
- enter 'set autolist', 'break 5', 'cont'
58
+ it "must show the surrounding lines even without 'list' command by default" do
59
+ enter 'break 5', 'cont'
62
60
  debug_file 'list'
63
61
  check_output_includes "[4, 6] in #{fullpath('list')}", "4 4", "=> 5 5", "6 6"
64
62
  end
63
+
64
+ it "must not show the surronding lines by default when autolist is toggled" do
65
+ enter 'set noautolist', 'break 5', 'cont'
66
+ debug_file 'list'
67
+ check_output_doesnt_include "[4, 6] in #{fullpath('list')}", "4 4", "=> 5 5", "6 6"
68
+ end
65
69
  end
66
70
 
67
71
  describe "specified lines" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: debugger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-03-14 00:00:00.000000000 Z
14
+ date: 2013-05-15 00:00:00.000000000Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: columnize
@@ -36,7 +36,7 @@ dependencies:
36
36
  requirements:
37
37
  - - ~>
38
38
  - !ruby/object:Gem::Version
39
- version: 1.2.0
39
+ version: 1.2.1
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
@@ -44,7 +44,7 @@ dependencies:
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: 1.2.0
47
+ version: 1.2.1
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: debugger-linecache
50
50
  requirement: !ruby/object:Gem::Requirement
@@ -357,7 +357,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
357
357
  version: 1.3.6
358
358
  requirements: []
359
359
  rubyforge_project:
360
- rubygems_version: 1.8.24
360
+ rubygems_version: 1.8.19
361
361
  signing_key:
362
362
  specification_version: 3
363
363
  summary: Fast Ruby debugger - base + cli