trepanning 0.0.9 → 0.1.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.
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