trepanning 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. data/ChangeLog +237 -0
  2. data/NEWS +8 -0
  3. data/Rakefile +3 -2
  4. data/app/breakpoint.rb +8 -8
  5. data/app/brkptmgr.rb +86 -85
  6. data/app/client.rb +60 -0
  7. data/app/core.rb-consider +198 -0
  8. data/app/default.rb +17 -7
  9. data/app/disassemble.rb +12 -2
  10. data/app/options.rb +51 -20
  11. data/app/yarv.rb +183 -0
  12. data/bin/trepan +15 -9
  13. data/data/custom_require.rb +44 -0
  14. data/data/irbrc +41 -0
  15. data/data/prelude.rb +38 -0
  16. data/interface/base_intf.rb +10 -4
  17. data/interface/client.rb +79 -0
  18. data/interface/comcodes.rb +18 -0
  19. data/interface/server.rb +142 -0
  20. data/io/base_io.rb +57 -3
  21. data/io/tcpclient.rb +122 -0
  22. data/io/tcpfns.rb +31 -0
  23. data/io/tcpserver.rb +137 -0
  24. data/lib/trepanning.rb +57 -28
  25. data/processor/command/base/cmd.rb +10 -6
  26. data/processor/command/base/subcmd.rb +13 -1
  27. data/processor/command/directory.rb +15 -8
  28. data/processor/command/disassemble.rb +3 -2
  29. data/processor/command/help.rb +71 -19
  30. data/processor/command/info_subcmd/args.rb +2 -3
  31. data/processor/command/info_subcmd/breakpoints.rb +2 -3
  32. data/processor/command/info_subcmd/file.rb +2 -3
  33. data/processor/command/info_subcmd/frame.rb +2 -3
  34. data/processor/command/info_subcmd/iseq.rb +4 -5
  35. data/processor/command/info_subcmd/locals.rb +2 -3
  36. data/processor/command/info_subcmd/program.rb +2 -3
  37. data/processor/command/info_subcmd/registers.rb +2 -3
  38. data/processor/command/info_subcmd/return.rb +2 -3
  39. data/processor/command/info_subcmd/thread.rb +2 -3
  40. data/processor/command/list.rb +10 -6
  41. data/processor/command/reload.rb +1 -1
  42. data/processor/command/reload_subcmd/command.rb +29 -16
  43. data/processor/command/server.rb +70 -0
  44. data/processor/command/set_subcmd/auto.rb +2 -3
  45. data/processor/command/set_subcmd/basename.rb +2 -3
  46. data/processor/command/set_subcmd/debug.rb +2 -3
  47. data/processor/command/set_subcmd/different.rb +2 -3
  48. data/processor/command/set_subcmd/events.rb +2 -3
  49. data/processor/command/set_subcmd/hidelevel.rb +6 -7
  50. data/processor/command/set_subcmd/highlight.rb +32 -0
  51. data/processor/command/set_subcmd/max.rb +2 -3
  52. data/processor/command/set_subcmd/return.rb +2 -3
  53. data/processor/command/set_subcmd/sp.rb +2 -3
  54. data/processor/command/set_subcmd/substitute.rb +2 -3
  55. data/processor/command/set_subcmd/timer.rb +2 -3
  56. data/processor/command/set_subcmd/trace.rb +3 -4
  57. data/processor/command/show_subcmd/alias.rb +3 -3
  58. data/processor/command/show_subcmd/args.rb +2 -3
  59. data/processor/command/show_subcmd/auto.rb +1 -2
  60. data/processor/command/show_subcmd/basename.rb +2 -3
  61. data/processor/command/show_subcmd/debug.rb +1 -2
  62. data/processor/command/show_subcmd/different.rb +2 -1
  63. data/processor/command/show_subcmd/events.rb +2 -2
  64. data/processor/command/show_subcmd/hidelevel.rb +2 -3
  65. data/processor/command/show_subcmd/highlight.rb +23 -0
  66. data/processor/command/show_subcmd/macro.rb +2 -1
  67. data/processor/command/show_subcmd/max.rb +2 -3
  68. data/processor/command/show_subcmd/trace.rb +2 -3
  69. data/processor/command/source.rb +78 -28
  70. data/processor/default.rb +3 -2
  71. data/processor/load_cmds.rb +39 -19
  72. data/processor/location.rb +11 -7
  73. data/processor/main.rb +31 -15
  74. data/processor/mock.rb +22 -7
  75. data/processor/msg.rb +24 -8
  76. data/test/data/fname-with-blank.right +3 -0
  77. data/test/data/quit.right +2 -0
  78. data/test/functional/test-break-long.rb +87 -0
  79. data/test/functional/tmp/b3.rb +5 -0
  80. data/test/functional/tmp/immediate-bug1.rb +9 -0
  81. data/test/integration/helper.rb +14 -11
  82. data/test/integration/test-fname-with-blank.rb +5 -1
  83. data/test/integration/test-quit.rb +6 -2
  84. data/test/unit/cmd-helper.rb +9 -4
  85. data/test/unit/mock-helper.rb +9 -0
  86. data/test/unit/test-app-brkpt.rb +4 -4
  87. data/test/unit/test-app-brkptmgr.rb +2 -2
  88. data/test/unit/test-app-file.rb +0 -1
  89. data/test/unit/test-app-options.rb +26 -5
  90. data/test/unit/test-base-subcmd.rb +0 -1
  91. data/test/unit/test-cmd-alias.rb +0 -1
  92. data/test/unit/test-cmd-break.rb +0 -4
  93. data/test/unit/test-cmd-endisable.rb +1 -3
  94. data/test/unit/test-cmd-help.rb +0 -1
  95. data/test/unit/test-cmd-kill.rb +4 -5
  96. data/test/unit/test-cmd-quit.rb +4 -7
  97. data/test/unit/test-cmd-source.rb +33 -0
  98. data/test/unit/test-cmd-step.rb +0 -2
  99. data/test/unit/test-io-tcp.rb +32 -0
  100. data/test/unit/test-io-tcpclient.rb +53 -0
  101. data/test/unit/test-io-tcpserver.rb +49 -0
  102. data/test/unit/test-proc-main.rb +2 -2
  103. metadata +195 -175
  104. data/processor/command/stepi.rb +0 -63
  105. data/test/functional/tmp/b1.rb +0 -5
  106. data/test/functional/tmp/s1.rb +0 -9
  107. data/test/functional/tmp/t2.rb +0 -6
  108. data/test/integration/try-test-enable.rb +0 -11
@@ -1,63 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
3
- require_relative 'base/cmd'
4
- require_relative '../../app/condition'
5
- class Trepan::Command::StepICommand < Trepan::Command
6
-
7
- unless defined?(HELP)
8
- HELP =
9
- "stepi
10
-
11
- Step by VM instruction(s).
12
-
13
- Examples:
14
- stepi # step 1 instruction
15
- stepi 1 # same as above
16
-
17
- Related and similar is the 'step', 'next' (step over) and 'finish' (step out)
18
- commands. All of these are slower than running to a breakpoint.
19
-
20
- See also the commands:
21
- 'skip', 'jump' (there's no 'hop' yet), 'continue', 'return' and
22
- 'finish' for other ways to progress execution.
23
- "
24
-
25
- CATEGORY = 'running'
26
- NAME = File.basename(__FILE__, '.rb')
27
- NEED_RUNNING = true
28
- SHORT_HELP = 'Step VM instruction(s)'
29
-
30
- end
31
-
32
- include Trepan::Condition
33
- # This method runs the command
34
- def run(args)
35
- opts = {:stop_events => Set.new(%w(insn))}
36
- @proc.core.step_events |= Trace::INSN_EVENT_MASK
37
- condition = nil
38
- if args.size == 1
39
- # Form is: "step" which means "step 1"
40
- step_count = 0
41
- else
42
- count_str = args[1]
43
- int_opts = {
44
- :msg_on_error =>
45
- "The 'step' command argument must eval to an integer. Got: %s" %
46
- count_str,
47
- :min_value => 1
48
- }.merge(opts)
49
- count = @proc.get_an_int(count_str, int_opts)
50
- return unless count
51
- # step 1 is core.step_count = 0 or "stop next event"
52
- step_count = count - 1
53
- end
54
- @proc.step(step_count, opts, condition)
55
- end
56
- end
57
-
58
- if __FILE__ == $0
59
- require_relative '../mock'
60
- name = File.basename(__FILE__, '.rb')
61
- dbgr, cmd = MockDebugger::setup(name)
62
- p cmd.run([name])
63
- end
@@ -1,5 +0,0 @@
1
- ########### b1 ###############
2
- x = 5
3
- y = 6
4
- z = 7
5
- k = 5
@@ -1,9 +0,0 @@
1
- x = 5
2
- def foo1
3
- y = 2
4
- raise Exception
5
- rescue Exception
6
- puts 'hi'
7
- end
8
- foo1()
9
- z = 1
@@ -1,6 +0,0 @@
1
- begin
2
- got_boom = false
3
- x = 4/0
4
- rescue
5
- got_boom = true
6
- end
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'test/unit'
3
- require_relative 'helper'
4
-
5
- class TestEnable < Test::Unit::TestCase
6
- NAME = File.basename(__FILE__, '.rb')[5..-1]
7
-
8
- def test_it
9
- assert_equal(true, run_debugger(NAME, 'gcd.rb'))
10
- end
11
- end