debugger-xml 0.4.1 → 0.5.0.pre1

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: cebaa20ffd3b101f664fcd35281ffeddb8fa86b0
4
- data.tar.gz: 4b3b9bbba796f254cd3ea1ea4d8db98bf002446e
3
+ metadata.gz: 7fb05bd1841ff5eb3055402d1df6f8b5d3fd7ae9
4
+ data.tar.gz: c09ec46079b00b063ff9d87dea83041f707f88ff
5
5
  SHA512:
6
- metadata.gz: 709fd8fb708b8b688c05bb8efffa370d3feb4bd2580e2cf579f14a60eff29ba8a9ace5928435644353a4b4b5b2d4119d8717b86c5dd51a9a7e0fdbbcfdca7706
7
- data.tar.gz: 44ea307d4362ce973142093c8babf824ddf3bf27f2c8ff5c645058b8e72d5b0302beaf895581eaa7b4ab621cccf095a970601911f975e203e44d1c529424cd2a
6
+ metadata.gz: c87886821d745b2af27faf0d5194ae41c5b3f27f82b01632d7ea1c2f49348500319d20e46009c01d5146003b510b3f11c17bcb68f7c432a3245716bdd02cccf0
7
+ data.tar.gz: 1755a9bd9bc4259ea2dea7ece26abcf2a1ad738f8a917c900fee02429ff87bd8f339b1b2788f2c055328132aa67be7c0862ca766951bf4d449880b45239fe064
data/.gitignore CHANGED
@@ -18,3 +18,6 @@ tmp
18
18
 
19
19
  .rvmrc
20
20
  vendor/bundle
21
+ .idea
22
+ .ruby-gemset
23
+ .ruby-version
@@ -3,8 +3,22 @@
3
3
  $LOAD_PATH.unshift(File.expand_path('../../lib', __FILE__))
4
4
  require 'optparse'
5
5
  require 'ostruct'
6
- require 'debugger'
7
- require 'debugger/xml'
6
+
7
+ DEBUGGER_TYPE = if RUBY_VERSION < "2.0"
8
+ require 'debugger'
9
+ :debugger
10
+ else
11
+ require 'byebug'
12
+ :byebug
13
+ end
14
+ require 'debugger_xml'
15
+ if DEBUGGER_TYPE == :debugger
16
+ PROXY_CLASS = DebuggerXml::DebuggerProxy
17
+ PRINTER_CLASS = Printers::Xml
18
+ else
19
+ PROXY_CLASS = DebuggerXml::ByebugProxy
20
+ PRINTER_CLASS = Byebug::Printers::Xml
21
+ end
8
22
 
9
23
  $stdout.sync = true
10
24
 
@@ -12,28 +26,30 @@ class RdebugIde
12
26
 
13
27
  def initialize
14
28
  check_argv!
15
- @proxy = DebuggerXml::DebuggerProxy.new
29
+ @proxy = PROXY_CLASS.new
16
30
  @proxy.set_argv(ARGV.clone)
31
+ # todo: we need to parse args first, need to make in more elegant way
32
+ options
17
33
  @proxy.set_rdebug_script(rdebug_path)
18
34
  @proxy.set_prog_script(ARGV.shift)
19
35
  if options.int_handler
20
36
  install_interruption_handler
21
37
  end
22
38
  @proxy.tracing = options.tracing
23
- @proxy.printer = Printers::Xml.new
39
+ @proxy.printer = PRINTER_CLASS.new
24
40
  @proxy.wait_connection = true
25
41
  DebuggerXml.wait_for_start = options.wait_for_start
26
- Debugger::Xml.logger = if options.debug_mode
27
- Debugger::Xml::Ide::Logger.new
42
+ DebuggerXml.logger = if options.debug_mode
43
+ DebuggerXml::Ide::Logger.new
28
44
  else
29
- Debugger::Xml::FakeLogger.new
45
+ DebuggerXml::FakeLogger.new
30
46
  end
31
47
  init_multi_process_debug(options) if options.dispatcher_port
32
48
  end
33
49
 
34
50
  def run
35
- Debugger.start_remote_ide(options.host, options.port)
36
- bt = Debugger.debug_load(Debugger::PROG_SCRIPT, false, false)
51
+ DebuggerXml.start_remote_ide(@proxy, options.host, options.port)
52
+ bt = @proxy.debug_load
37
53
  if bt
38
54
  print bt.backtrace.map{|l| "\t#{l}"}.join("\n"), "\n"
39
55
  print "Uncaught exception: #{bt}\n"
@@ -86,8 +102,8 @@ class RdebugIde
86
102
  )
87
103
  opts = OptionParser.new do |opts|
88
104
  opts.banner = %{
89
- Using rdebug-ide
90
- Usage: rdebug-ide is supposed to be called from RDT, NetBeans, RubyMine or
105
+ Using rdebug-xml
106
+ Usage: rdebug-xml is supposed to be called from RDT, NetBeans, RubyMine or
91
107
  vim-ruby-debugger. The command line interface to 'debugger' is rdebug.
92
108
  }.gsub(/^\s*/, '')
93
109
  opts.separator ""
@@ -18,11 +18,8 @@ Gem::Specification.new do |gem|
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ["lib"]
20
20
 
21
- if RUBY_VERSION < "2.0"
22
- gem.add_dependency 'debugger'
23
- else
24
- gem.add_dependency 'byebug'
25
- end
21
+ gem.extensions << 'ext/mkrf_conf.rb'
22
+
26
23
  gem.add_dependency 'builder', '>= 2.0.0'
27
24
  gem.add_development_dependency 'rake', '~> 0.9.2.2'
28
25
  gem.add_development_dependency 'minitest', '~> 2.12.1'
@@ -0,0 +1,32 @@
1
+ require 'rubygems/dependency_installer'
2
+
3
+ def already_installed(dep)
4
+ !Gem::DependencyInstaller.new(:domain => :local).find_gems_with_sources(dep).empty? ||
5
+ !Gem::DependencyInstaller.new(:domain => :local,:prerelease => true).find_gems_with_sources(dep).empty?
6
+ end
7
+
8
+ if RUBY_VERSION < '2.0'
9
+ dep = Gem::Dependency.new('debugger', '> 0')
10
+ else
11
+ dep = Gem::Dependency.new('byebug', '> 0')
12
+ end
13
+
14
+ begin
15
+ puts "Installing debugging gem"
16
+ inst = Gem::DependencyInstaller.new :prerelease => dep.prerelease?
17
+ inst.install dep
18
+ rescue
19
+ begin
20
+ inst = Gem::DependencyInstaller.new(:prerelease => true)
21
+ inst.install dep
22
+ rescue Exception => e
23
+ puts e
24
+ puts e.backtrace.join "\n "
25
+ exit(1)
26
+ end
27
+ end unless dep.nil? || already_installed(dep)
28
+
29
+ # create dummy rakefile to indicate success
30
+ f = File.open(File.join(File.dirname(__FILE__), "Rakefile"), "w")
31
+ f.write("task :default\n")
32
+ f.close
@@ -0,0 +1,5 @@
1
+ module Byebug
2
+ class EvalCommand < Command
3
+ self.allow_in_control = false
4
+ end
5
+ end
@@ -0,0 +1,27 @@
1
+ module Byebug
2
+ class VarCommand < Command
3
+ class IdeCommand < Command
4
+ include Helpers::VarHelper
5
+
6
+ def regexp
7
+ /^\s* ide \s*$/x
8
+ end
9
+
10
+ def execute
11
+ var_ide
12
+ end
13
+
14
+ def short_description
15
+ 'Shows set of variables for IDE usage'
16
+ end
17
+
18
+ def description
19
+ <<-EOD
20
+ v[ar] ide
21
+
22
+ #{short_description}
23
+ EOD
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,42 @@
1
+ module Byebug
2
+ class VarCommand < Command
3
+ class InspectCommand < Command
4
+ include Helpers::VarHelper
5
+
6
+ # reference inspection results in order to save them from the GC
7
+ @@references = []
8
+ def self.reference_result(result)
9
+ @@references << result
10
+ end
11
+ def self.clear_references
12
+ @@references = []
13
+ end
14
+
15
+ def regexp
16
+ /^\s* inspect (?:\s+ (.+))?\s*$/x
17
+ end
18
+
19
+ def execute
20
+ var_inspect(@match[1])
21
+ end
22
+
23
+ def var_inspect(obj_ref)
24
+ obj = bb_eval(obj_ref)
25
+ VarCommand::InspectCommand.reference_result(obj)
26
+ print prv({eval_result: obj}, 'local')
27
+ end
28
+
29
+ def short_description
30
+ 'Inspects a given object (supposed to be used only from ide).'
31
+ end
32
+
33
+ def description
34
+ <<-EOD
35
+ v[ar] inspect [object ref/expression]
36
+
37
+ #{short_description}
38
+ EOD
39
+ end
40
+ end
41
+ end
42
+ end
@@ -1,29 +1,32 @@
1
1
  module Byebug
2
2
  class Context
3
3
  class << self
4
- IGNORED_XML_FILES = Dir.glob(File.expand_path('../../../**/*', __FILE__))
5
4
 
6
5
  def stack_size(byebug_frames = false)
7
6
  backtrace = Thread.current.backtrace_locations(0)
8
7
  return 0 unless backtrace
9
8
 
10
9
  unless byebug_frames
11
- backtrace = backtrace.select { |l| !ignored(l.path) }
10
+ backtrace = backtrace.select { |l| !ignored_file?(l.path) }
12
11
  end
13
12
  backtrace.size
14
13
  end
14
+ end
15
15
 
16
- def ignored_with_xml(path)
17
- result = ignored_without_xml(path) ||
18
- IGNORED_XML_FILES.include?(path) ||
19
- !!path.match(/^\(eval\)/) ||
20
- !!path.match(/rdebug-vim$/) ||
21
- !!path.match(/rdebug-ide$/)
22
- result
23
- end
16
+ IGNORED_XML_FILES = Dir.glob(File.expand_path('../../../**/*', __FILE__))
24
17
 
25
- alias_method :ignored_without_xml, :ignored
26
- alias_method :ignored, :ignored_with_xml
18
+ def ignored_file_with_xml(path)
19
+ result = ignored_file_without_xml(path) ||
20
+ IGNORED_XML_FILES.include?(path) ||
21
+ !!path.match(/^\(eval\)/) ||
22
+ !!path.match(/rdebug-vim$/) ||
23
+ !!path.match(/rdebug-ide$/) ||
24
+ !!path.match(/rdebug-xml$/)
25
+ result
27
26
  end
27
+
28
+ alias_method :ignored_file_without_xml, :ignored_file?
29
+ alias_method :ignored_file?, :ignored_file_with_xml
30
+
28
31
  end
29
32
  end
@@ -0,0 +1,40 @@
1
+ module Byebug
2
+ module Helpers
3
+ module VarHelper # :nodoc:
4
+ def var_instance_with_xml(*args)
5
+ if Byebug.printer.type == "xml"
6
+ DebuggerXml.logger.puts("match: #{@match}")
7
+ DebuggerXml.logger.puts("THE OBJ: #{get_obj(@match).inspect}")
8
+ print Byebug.printer.print_instance_variables(get_obj(@match))
9
+ else
10
+ var_instance_without_xml(*args)
11
+ end
12
+ end
13
+
14
+ alias_method :var_instance_without_xml, :var_instance
15
+ alias_method :var_instance, :var_instance_with_xml
16
+
17
+ def var_ide(*_)
18
+ locals = []
19
+ _self = @state.context.frame_self(@state.frame)
20
+ locals << ['self', _self] unless _self.to_s == "main"
21
+ locals += @state.context.frame_locals(@state.frame).sort.map { |key, value| [key, value] }
22
+ print prv(locals, 'instance')
23
+ end
24
+
25
+ def get_obj(match)
26
+ if match[2]
27
+ begin
28
+ DebuggerXml.logger.puts("Getting object space: #{match[2].hex}")
29
+ ObjectSpace._id2ref(match[2].hex)
30
+ rescue RangeError
31
+ errmsg "Unknown object id : %s" % match[2]
32
+ nil
33
+ end
34
+ else
35
+ bb_warning_eval(match.post_match.empty? ? 'self' : match.post_match)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -2,6 +2,13 @@ general:
2
2
  errors:
3
3
  unsupported: "Unsupported command '{cmd}'"
4
4
 
5
+ break:
6
+ created:
7
+ tag: breakpointAdded
8
+ attributes:
9
+ "no": "{id}"
10
+ location: "{file}:{line}"
11
+
5
12
  breakpoints:
6
13
  set_breakpoint_to_line:
7
14
  tag: breakpointAdded
@@ -58,7 +65,7 @@ frame:
58
65
  tag: frame
59
66
  attributes:
60
67
  "no": "{pos}"
61
- file: "{file}"
68
+ file: "{full_path}"
62
69
  line: "{line}"
63
70
  current: "{mark}"
64
71
 
@@ -0,0 +1,9 @@
1
+ module Byebug
2
+ class RegularXmlState < RegularState
3
+
4
+ def frame_mark(pos)
5
+ (frame == pos).to_s
6
+ end
7
+
8
+ end
9
+ end
@@ -17,7 +17,7 @@ module DebuggerXml
17
17
  proxy.start
18
18
  @control_thread = proxy.debug_thread_class.new do
19
19
  server = TCPServer.new(host, port)
20
- $stderr.printf "Fast Debugger (debugger-xml #{VERSION}) listens on #{host}:#{port}\n"
20
+ $stderr.printf "Fast Debugger (debugger-xml #{VERSION}, #{proxy.gem_info}) listens on #{host}:#{port}\n"
21
21
  while (session = server.accept)
22
22
  dispatcher = ENV['IDE_PROCESS_DISPATCHER']
23
23
  if dispatcher && !dispatcher.include?(":")
@@ -25,7 +25,7 @@ module DebuggerXml
25
25
  end
26
26
  interface = DebuggerXml::Ide::Interface.new(session)
27
27
  processor = DebuggerXml::Ide::ControlCommandProcessor.new(interface, proxy)
28
- debugger_class.handler = DebuggerXml::Ide::Processor.new(interface, proxy)
28
+ proxy.handler = DebuggerXml::Ide::Processor.new(interface, proxy)
29
29
  processor.process_commands
30
30
  end
31
31
  end
@@ -1,108 +1,116 @@
1
- module DebuggerXml
2
- class ByebugProxy
3
- def start
4
- ::Byebug.start
5
- end
1
+ if Object.const_defined?("Byebug")
2
+ module DebuggerXml
3
+ class ByebugProxy
4
+ include Byebug::Helpers::FileHelper
6
5
 
7
- def handler
8
- ::Byebug.handler
9
- end
6
+ def start
7
+ ::Byebug::Setting[:autolist] = false
8
+ ::Byebug.start
9
+ end
10
10
 
11
- def handler=(value)
12
- ::Byebug.handler = value
13
- end
11
+ def handler
12
+ ::Byebug.handler
13
+ end
14
14
 
15
- def control_commands(interface)
16
- control_command_classes = commands.select(&:allow_in_control)
17
- state = ::Byebug::ControlCommandProcessor::State.new(interface, control_command_classes)
18
- control_command_classes.map { |cmd| cmd.new(state) }
19
- end
15
+ def handler=(value)
16
+ ::Byebug.handler = value
17
+ end
20
18
 
21
- def build_command_processor_state(interface)
22
- ::Byebug::CommandProcessor::State.new(commands, handler.context, [], handler.file, interface, handler.line)
23
- end
19
+ def control_commands(interface)
20
+ control_command_classes = commands.select(&:allow_in_control)
21
+ state = ::Byebug::ControlState.new(interface)
22
+ control_command_classes.map { |cmd| cmd.new(state) }
23
+ end
24
24
 
25
- def commands
26
- ::Byebug::Command.commands
27
- end
25
+ def build_command_processor_state(interface)
26
+ ::Byebug::RegularXmlState.new(handler.context, [], handler.file, interface, handler.line)
27
+ end
28
28
 
29
- def event_commands(state)
30
- event_command_classes.map { |cls| cls.new(state) }
31
- end
29
+ def commands
30
+ ::Byebug::commands
31
+ end
32
32
 
33
- def print(*args)
34
- printer.print(*args)
35
- end
33
+ def event_commands(state)
34
+ event_command_classes.map { |cls| cls.new(state) }
35
+ end
36
36
 
37
- def canonic_file(file)
38
- ::Byebug::CommandProcessor.canonic_file(file)
39
- end
37
+ def print(*args)
38
+ printer.print(*args)
39
+ end
40
40
 
41
- def line_at(file, line)
42
- end
41
+ def canonic_file(file)
42
+ normalize(file)
43
+ end
43
44
 
44
- def breakpoints
45
- ::Byebug.breakpoints
46
- end
45
+ def line_at(file, line)
46
+ end
47
47
 
48
- def debug_thread?(context)
49
- context && context.thread.is_a?(debug_thread_class)
50
- end
48
+ def breakpoints
49
+ ::Byebug.breakpoints
50
+ end
51
51
 
52
- def debug_thread_class
53
- ::Byebug::DebugThread
54
- end
52
+ def debug_thread?(context)
53
+ context && context.thread.is_a?(debug_thread_class)
54
+ end
55
55
 
56
- def current_context
57
- ::Byebug.current_context
58
- end
56
+ def debug_thread_class
57
+ ::Byebug::DebugThread
58
+ end
59
59
 
60
- def set_rdebug_script(file)
61
- ::Byebug.const_set("RDEBUG_SCRIPT", file)
62
- end
60
+ def current_context
61
+ ::Byebug.current_context
62
+ end
63
63
 
64
- def set_prog_script(file)
65
- ::Byebug.const_set("PROG_SCRIPT", file)
66
- end
64
+ def set_rdebug_script(file)
65
+ ::Byebug.const_set("RDEBUG_SCRIPT", file)
66
+ end
67
67
 
68
- def set_argv(argv)
69
- ::Byebug.const_set("ARGV", argv)
70
- end
68
+ def set_prog_script(file)
69
+ ::Byebug.const_set("PROG_SCRIPT", file)
70
+ end
71
71
 
72
- def interrupt_last
73
- ::Byebug.interrupt_last
74
- end
72
+ def set_argv(argv)
73
+ ::Byebug.const_set("ARGV", argv)
74
+ end
75
75
 
76
- def tracing=(value)
77
- ::Byebug.tracing = value
78
- end
76
+ def interrupt_last
77
+ ::Byebug.interrupt_last
78
+ end
79
79
 
80
- def wait_connection=(value)
81
- ::Byebug.wait_connection = value
82
- end
80
+ def tracing=(value)
81
+ ::Byebug.tracing = value
82
+ end
83
83
 
84
- def printer=(value)
85
- ::Byebug.printer = value
86
- end
84
+ def wait_connection=(value)
85
+ ::Byebug.wait_connection = value
86
+ end
87
87
 
88
- def debug_load
89
- ::Byebug.debug_load(::Byebug::PROG_SCRIPT, false)
90
- end
88
+ def printer=(value)
89
+ ::Byebug.printer = value
90
+ end
91
91
 
92
- def inspect_command_class
93
- ::Byebug::InspectCommand
94
- end
92
+ def debug_load
93
+ ::Byebug.debug_load(::Byebug::PROG_SCRIPT, false)
94
+ end
95
95
 
96
- private
96
+ def clear_references
97
+ ::Byebug::VarCommand::InspectCommand.clear_references
98
+ end
97
99
 
98
- def event_command_classes
99
- commands
100
- end
100
+ def gem_info
101
+ "byebug #{::Byebug::VERSION}"
102
+ end
101
103
 
102
- def printer
103
- ::Byebug.printer
104
- end
104
+ private
105
+
106
+ def event_command_classes
107
+ commands
108
+ end
105
109
 
110
+ def printer
111
+ ::Byebug.printer
112
+ end
113
+
114
+ end
106
115
  end
107
116
  end
108
-
@@ -97,8 +97,12 @@ module DebuggerXml
97
97
  ::Debugger.debug_load(::Debugger::PROG_SCRIPT, false, false)
98
98
  end
99
99
 
100
- def inspect_command_class
101
- ::Debugger::InspectCommand
100
+ def clear_references
101
+ ::Debugger::InspectCommand.clear_references
102
+ end
103
+
104
+ def gem_info
105
+ "debugger #{::Debugger::VERSION}"
102
106
  end
103
107
 
104
108
  private
@@ -69,6 +69,14 @@ module DebuggerXml
69
69
  print(*args)
70
70
  end
71
71
 
72
+ private
73
+
74
+ def escape_input(args)
75
+ new_args = args.dup
76
+ new_args.first.gsub!("%", "%%") if args.first.is_a?(String)
77
+ new_args
78
+ end
79
+
72
80
  end
73
81
  end
74
82
  end
@@ -107,7 +107,7 @@ module DebuggerXml
107
107
  @file = nil
108
108
  @context = nil
109
109
  @last_breakpoint = nil
110
- @proxy.inspect_command_class.clear_references
110
+ @proxy.clear_references
111
111
  end
112
112
 
113
113
  def stop_thread
@@ -58,11 +58,11 @@ module DebuggerXml
58
58
  Debugger.tracing = options.tracing
59
59
  Debugger.wait_for_start = options.wait_for_start
60
60
  Debugger.wait_connection = true
61
- Debugger.printer = Printers::Xml.new
61
+ Debugger.printer = PRINTER_CLASS.new
62
62
  DebuggerXml.logger = if options.debug_mode
63
- Debugger::Xml::Ide::Logger.new
63
+ DebuggerXml::Ide::Logger.new
64
64
  else
65
- Debugger::Xml::FakeLogger.new
65
+ DebuggerXml::FakeLogger.new
66
66
  end
67
67
  DebuggerXml.start_remote_ide(options.host, options.port)
68
68
  end
@@ -1,3 +1,3 @@
1
1
  module DebuggerXml
2
- VERSION = "0.4.1"
2
+ VERSION = "0.5.0.pre1"
3
3
  end
@@ -9,14 +9,12 @@ module DebuggerXml
9
9
  @mutex = Mutex.new
10
10
  end
11
11
 
12
- private
13
-
14
- def process_command(*args)
15
- @mutex.synchronize do
16
- super(*args)
17
- @interface.send_response
18
- end
12
+ def process_command(*args)
13
+ @mutex.synchronize do
14
+ super(*args)
15
+ @interface.send_response
19
16
  end
17
+ end
20
18
 
21
19
  end
22
20
  end
@@ -13,7 +13,7 @@ module DebuggerXml
13
13
  escaped_args = escape_input(args)
14
14
  value = escaped_args.first % escaped_args[1..-1]
15
15
  DebuggerXml.logger.puts("Going to print: #{value}")
16
- @output << sprintf(value)
16
+ @output << value
17
17
  end
18
18
 
19
19
  def send_response
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: debugger-xml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Astashov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-11 00:00:00.000000000 Z
11
+ date: 2015-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: byebug
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: builder
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -84,9 +70,10 @@ description: XML interface for debugger
84
70
  email:
85
71
  - anton.astashov@gmail.com
86
72
  executables:
87
- - rdebug-ide
88
73
  - rdebug-vim
89
- extensions: []
74
+ - rdebug-xml
75
+ extensions:
76
+ - ext/mkrf_conf.rb
90
77
  extra_rdoc_files: []
91
78
  files:
92
79
  - ".gitignore"
@@ -95,21 +82,23 @@ files:
95
82
  - LICENSE.txt
96
83
  - README.md
97
84
  - Rakefile
98
- - bin/rdebug-ide
99
85
  - bin/rdebug-vim
86
+ - bin/rdebug-xml
100
87
  - debugger-xml.gemspec
101
- - lib/byebug/commands/frame.rb
88
+ - ext/mkrf_conf.rb
89
+ - lib/byebug/commands/eval.rb
102
90
  - lib/byebug/commands/help.rb
103
91
  - lib/byebug/commands/info.rb
104
- - lib/byebug/commands/inspect.rb
105
92
  - lib/byebug/commands/kill.rb
106
93
  - lib/byebug/commands/start.rb
107
- - lib/byebug/commands/threads.rb
108
94
  - lib/byebug/commands/trace.rb
109
- - lib/byebug/commands/variables.rb
95
+ - lib/byebug/commands/var/ide.rb
96
+ - lib/byebug/commands/var/inspect.rb
110
97
  - lib/byebug/context_xml.rb
98
+ - lib/byebug/helpers/vars.rb
111
99
  - lib/byebug/printers/texts/xml.yml
112
100
  - lib/byebug/printers/xml.rb
101
+ - lib/byebug/states/regular_xml_state.rb
113
102
  - lib/debugger/command_processor.rb
114
103
  - lib/debugger/commands/edit.rb
115
104
  - lib/debugger/commands/frame.rb
@@ -210,12 +199,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
210
199
  version: '0'
211
200
  required_rubygems_version: !ruby/object:Gem::Requirement
212
201
  requirements:
213
- - - ">="
202
+ - - ">"
214
203
  - !ruby/object:Gem::Version
215
- version: '0'
204
+ version: 1.3.1
216
205
  requirements: []
217
206
  rubyforge_project:
218
- rubygems_version: 2.2.2
207
+ rubygems_version: 2.4.6
219
208
  signing_key:
220
209
  specification_version: 4
221
210
  summary: Implements XML interface for the 'debugger' gem, compatible with ruby-debug-ide
@@ -1,16 +0,0 @@
1
- module Byebug
2
- module FrameFunctions
3
-
4
- # Mark should be 'true' or 'false', as a String
5
- def get_pr_arguments_with_xml(pos, mark = nil)
6
- mark = (pos == @state.frame_pos).to_s
7
- res = get_pr_arguments_without_xml(pos, mark)
8
- res[:file] = File.expand_path(res[:file])
9
- res
10
- end
11
-
12
- alias_method :get_pr_arguments_without_xml, :get_pr_arguments
13
- alias_method :get_pr_arguments, :get_pr_arguments_with_xml
14
-
15
- end
16
- end
@@ -1,30 +0,0 @@
1
- module Byebug
2
- class InspectCommand < Command
3
- # reference inspection results in order to save them from the GC
4
- @@references = []
5
- def self.reference_result(result)
6
- @@references << result
7
- end
8
- def self.clear_references
9
- @@references = []
10
- end
11
-
12
- def regexp
13
- /^\s*v(?:ar)?\s+inspect\s+/
14
- end
15
-
16
- def execute
17
- run_with_binding do |binding|
18
- obj = debug_eval(@match.post_match, binding)
19
- InspectCommand.reference_result(obj)
20
- print prv({eval_result: obj}, "local")
21
- end
22
- end
23
-
24
- def help
25
- %{
26
- v[ar] instpect <object>\tinpect a given object (supposed to be used only from ide)
27
- }
28
- end
29
- end
30
- end
@@ -1,10 +0,0 @@
1
- module Byebug
2
- module ThreadFunctions # :nodoc:
3
- def thread_arguments_with_pid(context, should_show_top_frame = true)
4
- thread_arguments_without_pid(context, should_show_top_frame).merge(pid: Process.pid)
5
- end
6
-
7
- alias_method :thread_arguments_without_pid, :thread_arguments
8
- alias_method :thread_arguments, :thread_arguments_with_pid
9
- end
10
- end
@@ -1,54 +0,0 @@
1
- module Byebug
2
- module VarFunctions # :nodoc:
3
-
4
- def var_global
5
- var_list(global_variables.reject { |v| [:$=, :$KCODE, :$-K, :$FILENAME].include?(v) })
6
- end
7
-
8
- end
9
- class VarInstanceCommand < Command
10
-
11
- def execute_with_xml(*args)
12
- if Byebug.printer.type == "xml"
13
- DebuggerXml.logger.puts("match: #{@match}")
14
- DebuggerXml.logger.puts("THE OBJ: #{get_obj(@match).inspect}")
15
- print Byebug.printer.print_instance_variables(get_obj(@match))
16
- else
17
- execute_without_xml(*args)
18
- end
19
- end
20
-
21
- alias_method :execute_without_xml, :execute
22
- alias_method :execute, :execute_with_xml
23
-
24
- private
25
-
26
- def get_obj(match)
27
- if match[1]
28
- begin
29
- DebuggerXml.logger.puts("Getting object space")
30
- ObjectSpace._id2ref(match[1].hex)
31
- rescue RangeError
32
- errmsg "Unknown object id : %s" % match[1]
33
- nil
34
- end
35
- else
36
- bb_warning_eval(match.post_match.empty? ? 'self' : match.post_match)
37
- end
38
- end
39
- end
40
-
41
- class VarIdeCommand < Command
42
- def regexp
43
- /^\s*v(?:ar)?\s+ide\s*$/
44
- end
45
-
46
- def execute
47
- locals = []
48
- _self = @state.context.frame_self(@state.frame_pos)
49
- locals << ['self', _self] unless _self.to_s == "main"
50
- locals += @state.context.frame_locals(@state.frame_pos).sort.map { |key, value| [key, value] }
51
- print prv(locals, 'instance')
52
- end
53
- end
54
- end