rb8-trepanning 0.1.3

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 (274) hide show
  1. data/.gitignore +3 -0
  2. data/CHANGES +34 -0
  3. data/ChangeLog +875 -0
  4. data/README.textile +59 -0
  5. data/Rakefile +215 -0
  6. data/app/.gitignore +1 -0
  7. data/app/cmd_parse.kpeg +241 -0
  8. data/app/cmd_parse.rb +212 -0
  9. data/app/cmd_parser.rb +1948 -0
  10. data/app/complete.rb +79 -0
  11. data/app/default.rb +90 -0
  12. data/app/display.rb +148 -0
  13. data/app/eventbuffer.rb +147 -0
  14. data/app/frame.rb +166 -0
  15. data/app/irb.rb +114 -0
  16. data/app/options.rb +200 -0
  17. data/app/run.rb +74 -0
  18. data/app/util.rb +65 -0
  19. data/bin/.gitignore +1 -0
  20. data/bin/trepan8 +115 -0
  21. data/data/.gitignore +1 -0
  22. data/data/irbrc +41 -0
  23. data/interface/.gitignore +1 -0
  24. data/interface/base_intf.rb +109 -0
  25. data/interface/client.rb +82 -0
  26. data/interface/comcodes.rb +20 -0
  27. data/interface/script.rb +110 -0
  28. data/interface/server.rb +147 -0
  29. data/interface/user.rb +165 -0
  30. data/io/base_io.rb +148 -0
  31. data/io/input.rb +158 -0
  32. data/io/null_output.rb +46 -0
  33. data/io/string_array.rb +156 -0
  34. data/io/tcpclient.rb +129 -0
  35. data/io/tcpfns.rb +33 -0
  36. data/io/tcpserver.rb +141 -0
  37. data/lib/debugger.rb +8 -0
  38. data/lib/trepanning.rb +283 -0
  39. data/processor/.gitignore +1 -0
  40. data/processor/command-ruby-debug/breakpoints.rb +155 -0
  41. data/processor/command-ruby-debug/catchpoint.rb +55 -0
  42. data/processor/command-ruby-debug/condition.rb +49 -0
  43. data/processor/command-ruby-debug/control.rb +31 -0
  44. data/processor/command-ruby-debug/display.rb +120 -0
  45. data/processor/command-ruby-debug/enable.rb +202 -0
  46. data/processor/command-ruby-debug/frame.rb +199 -0
  47. data/processor/command-ruby-debug/help.rb +63 -0
  48. data/processor/command-ruby-debug/info.rb +359 -0
  49. data/processor/command-ruby-debug/method.rb +84 -0
  50. data/processor/command-ruby-debug/reload.rb +40 -0
  51. data/processor/command-ruby-debug/save.rb +90 -0
  52. data/processor/command-ruby-debug/set.rb +237 -0
  53. data/processor/command-ruby-debug/show.rb +251 -0
  54. data/processor/command-ruby-debug/source.rb +36 -0
  55. data/processor/command-ruby-debug/threads.rb +189 -0
  56. data/processor/command-ruby-debug/trace.rb +57 -0
  57. data/processor/command-ruby-debug/variables.rb +199 -0
  58. data/processor/command.rb +270 -0
  59. data/processor/command/.gitignore +1 -0
  60. data/processor/command/alias.rb +54 -0
  61. data/processor/command/backtrace.rb +123 -0
  62. data/processor/command/base/cmd.rb +177 -0
  63. data/processor/command/base/subcmd.rb +230 -0
  64. data/processor/command/base/submgr.rb +188 -0
  65. data/processor/command/base/subsubcmd.rb +128 -0
  66. data/processor/command/base/subsubmgr.rb +199 -0
  67. data/processor/command/break.rb +114 -0
  68. data/processor/command/catch.rb +71 -0
  69. data/processor/command/complete.rb +39 -0
  70. data/processor/command/continue.rb +57 -0
  71. data/processor/command/directory.rb +50 -0
  72. data/processor/command/disable.rb +85 -0
  73. data/processor/command/display.rb +78 -0
  74. data/processor/command/down.rb +54 -0
  75. data/processor/command/edit.rb +79 -0
  76. data/processor/command/enable.rb +48 -0
  77. data/processor/command/eval.rb +90 -0
  78. data/processor/command/exit.rb +66 -0
  79. data/processor/command/finish.rb +59 -0
  80. data/processor/command/frame.rb +97 -0
  81. data/processor/command/help.rb +230 -0
  82. data/processor/command/help/.gitignore +1 -0
  83. data/processor/command/help/README +10 -0
  84. data/processor/command/help/command.txt +58 -0
  85. data/processor/command/help/examples.txt +16 -0
  86. data/processor/command/help/filename.txt +40 -0
  87. data/processor/command/help/location.txt +37 -0
  88. data/processor/command/help/suffixes.txt +17 -0
  89. data/processor/command/info.rb +28 -0
  90. data/processor/command/info_subcmd/.gitignore +1 -0
  91. data/processor/command/info_subcmd/args.rb +39 -0
  92. data/processor/command/info_subcmd/breakpoints.rb +80 -0
  93. data/processor/command/info_subcmd/catch.rb +36 -0
  94. data/processor/command/info_subcmd/files.rb +39 -0
  95. data/processor/command/info_subcmd/globals.rb +64 -0
  96. data/processor/command/info_subcmd/line.rb +30 -0
  97. data/processor/command/info_subcmd/locals.rb +69 -0
  98. data/processor/command/info_subcmd/macro.rb +62 -0
  99. data/processor/command/info_subcmd/program.rb +51 -0
  100. data/processor/command/info_subcmd/ruby.rb +57 -0
  101. data/processor/command/info_subcmd/source.rb +74 -0
  102. data/processor/command/info_subcmd/stack.rb +25 -0
  103. data/processor/command/info_subcmd/threads.rb +75 -0
  104. data/processor/command/kill.rb +78 -0
  105. data/processor/command/list.rb +117 -0
  106. data/processor/command/macro.rb +68 -0
  107. data/processor/command/next.rb +79 -0
  108. data/processor/command/parsetree.rb +56 -0
  109. data/processor/command/pp.rb +40 -0
  110. data/processor/command/pr.rb +37 -0
  111. data/processor/command/ps.rb +40 -0
  112. data/processor/command/restart.rb +86 -0
  113. data/processor/command/save.rb +58 -0
  114. data/processor/command/set.rb +47 -0
  115. data/processor/command/set_subcmd/.gitignore +1 -0
  116. data/processor/command/set_subcmd/abbrev.rb +25 -0
  117. data/processor/command/set_subcmd/auto.rb +27 -0
  118. data/processor/command/set_subcmd/auto_subcmd/.gitignore +1 -0
  119. data/processor/command/set_subcmd/auto_subcmd/eval.rb +53 -0
  120. data/processor/command/set_subcmd/auto_subcmd/irb.rb +33 -0
  121. data/processor/command/set_subcmd/auto_subcmd/list.rb +33 -0
  122. data/processor/command/set_subcmd/basename.rb +25 -0
  123. data/processor/command/set_subcmd/callstyle.rb +46 -0
  124. data/processor/command/set_subcmd/confirm.rb +24 -0
  125. data/processor/command/set_subcmd/debug.rb +47 -0
  126. data/processor/command/set_subcmd/different.rb +61 -0
  127. data/processor/command/set_subcmd/highlight.rb +43 -0
  128. data/processor/command/set_subcmd/max.rb +26 -0
  129. data/processor/command/set_subcmd/max_subcmd/list.rb +49 -0
  130. data/processor/command/set_subcmd/max_subcmd/stack.rb +50 -0
  131. data/processor/command/set_subcmd/max_subcmd/string.rb +76 -0
  132. data/processor/command/set_subcmd/max_subcmd/width.rb +49 -0
  133. data/processor/command/set_subcmd/reload.rb +42 -0
  134. data/processor/command/set_subcmd/timer.rb +58 -0
  135. data/processor/command/set_subcmd/trace.rb +37 -0
  136. data/processor/command/set_subcmd/trace_subcmd/buffer.rb +42 -0
  137. data/processor/command/set_subcmd/trace_subcmd/print.rb +41 -0
  138. data/processor/command/shell.rb +139 -0
  139. data/processor/command/show.rb +39 -0
  140. data/processor/command/show_subcmd/.gitignore +1 -0
  141. data/processor/command/show_subcmd/abbrev.rb +20 -0
  142. data/processor/command/show_subcmd/alias.rb +46 -0
  143. data/processor/command/show_subcmd/args.rb +34 -0
  144. data/processor/command/show_subcmd/auto.rb +28 -0
  145. data/processor/command/show_subcmd/auto_subcmd/eval.rb +27 -0
  146. data/processor/command/show_subcmd/auto_subcmd/irb.rb +23 -0
  147. data/processor/command/show_subcmd/auto_subcmd/list.rb +22 -0
  148. data/processor/command/show_subcmd/basename.rb +20 -0
  149. data/processor/command/show_subcmd/callstyle.rb +22 -0
  150. data/processor/command/show_subcmd/confirm.rb +18 -0
  151. data/processor/command/show_subcmd/debug.rb +26 -0
  152. data/processor/command/show_subcmd/debug_subcmd/dbgr.rb +21 -0
  153. data/processor/command/show_subcmd/debug_subcmd/skip.rb +22 -0
  154. data/processor/command/show_subcmd/debug_subcmd/step.rb +22 -0
  155. data/processor/command/show_subcmd/different.rb +26 -0
  156. data/processor/command/show_subcmd/directories.rb +22 -0
  157. data/processor/command/show_subcmd/highlight.rb +24 -0
  158. data/processor/command/show_subcmd/max.rb +27 -0
  159. data/processor/command/show_subcmd/max_subcmd/list.rb +38 -0
  160. data/processor/command/show_subcmd/max_subcmd/stack.rb +36 -0
  161. data/processor/command/show_subcmd/max_subcmd/string.rb +42 -0
  162. data/processor/command/show_subcmd/max_subcmd/width.rb +37 -0
  163. data/processor/command/show_subcmd/reload.rb +18 -0
  164. data/processor/command/show_subcmd/timer.rb +18 -0
  165. data/processor/command/show_subcmd/trace.rb +29 -0
  166. data/processor/command/show_subcmd/trace_subcmd/buffer.rb +65 -0
  167. data/processor/command/show_subcmd/trace_subcmd/print.rb +23 -0
  168. data/processor/command/show_subcmd/version.rb +23 -0
  169. data/processor/command/source.rb +134 -0
  170. data/processor/command/step.rb +81 -0
  171. data/processor/command/tbreak.rb +19 -0
  172. data/processor/command/unalias.rb +44 -0
  173. data/processor/command/undisplay.rb +59 -0
  174. data/processor/command/up.rb +72 -0
  175. data/processor/default.rb +56 -0
  176. data/processor/display.rb +17 -0
  177. data/processor/eval.rb +113 -0
  178. data/processor/eventbuf.rb +105 -0
  179. data/processor/frame.rb +172 -0
  180. data/processor/help.rb +92 -0
  181. data/processor/helper.rb +76 -0
  182. data/processor/hook.rb +134 -0
  183. data/processor/load_cmds.rb +258 -0
  184. data/processor/location.rb +174 -0
  185. data/processor/main.rb +455 -0
  186. data/processor/mock.rb +136 -0
  187. data/processor/msg.rb +61 -0
  188. data/processor/processor.rb +674 -0
  189. data/processor/running.rb +168 -0
  190. data/processor/stepping.rb +18 -0
  191. data/processor/subcmd.rb +161 -0
  192. data/processor/validate.rb +355 -0
  193. data/processor/virtual.rb +34 -0
  194. data/test/data/.gitignore +1 -0
  195. data/test/data/break_bad.cmd +19 -0
  196. data/test/data/break_bad.right +29 -0
  197. data/test/data/break_loop_bug.cmd +5 -0
  198. data/test/data/break_loop_bug.right +15 -0
  199. data/test/data/dollar-0.right +2 -0
  200. data/test/data/dollar-0a.right +2 -0
  201. data/test/data/dollar-0b.right +2 -0
  202. data/test/data/edit.cmd +14 -0
  203. data/test/data/edit.right +24 -0
  204. data/test/data/file-with-space.cmd +6 -0
  205. data/test/data/file-with-space.right +4 -0
  206. data/test/data/printvar.cmd +17 -0
  207. data/test/data/printvar.right +31 -0
  208. data/test/data/raise.cmd +11 -0
  209. data/test/data/raise.right +19 -0
  210. data/test/data/source.cmd +5 -0
  211. data/test/data/source.right +18 -0
  212. data/test/data/stepping-1.9.right +50 -0
  213. data/test/data/stepping.cmd +21 -0
  214. data/test/data/stepping.right +48 -0
  215. data/test/data/trepan8-save.1 +6 -0
  216. data/test/example/bp_loop_issue.rb +3 -0
  217. data/test/example/break-bug.rb +7 -0
  218. data/test/example/brkpt-class-bug.rb +8 -0
  219. data/test/example/classes.rb +11 -0
  220. data/test/example/dollar-0.rb +5 -0
  221. data/test/example/except-bug1.rb +4 -0
  222. data/test/example/except-bug2.rb +7 -0
  223. data/test/example/file with space.rb +1 -0
  224. data/test/example/gcd.rb +18 -0
  225. data/test/example/info-var-bug.rb +47 -0
  226. data/test/example/info-var-bug2.rb +2 -0
  227. data/test/example/null.rb +1 -0
  228. data/test/example/pm-bug.rb +3 -0
  229. data/test/example/pm.rb +11 -0
  230. data/test/example/raise.rb +3 -0
  231. data/test/integration/.gitignore +4 -0
  232. data/test/integration/config.yaml +8 -0
  233. data/test/integration/helper.rb +154 -0
  234. data/test/integration/test-break_bad.rb +26 -0
  235. data/test/integration/test-dollar-0.rb +31 -0
  236. data/test/integration/test-edit.rb +17 -0
  237. data/test/integration/test-file-with-space.rb +26 -0
  238. data/test/integration/test-printvar.rb +17 -0
  239. data/test/integration/test-raise.rb +21 -0
  240. data/test/integration/test-source.rb +16 -0
  241. data/test/integration/test-stepping.rb +24 -0
  242. data/test/unit/.gitignore +1 -0
  243. data/test/unit/cmd-helper.rb +52 -0
  244. data/test/unit/mock-helper.rb +12 -0
  245. data/test/unit/test-app-cmd_parse.rb +97 -0
  246. data/test/unit/test-app-cmd_parser.rb +23 -0
  247. data/test/unit/test-app-complete.rb +39 -0
  248. data/test/unit/test-app-frame.rb +32 -0
  249. data/test/unit/test-app-options.rb +92 -0
  250. data/test/unit/test-app-run.rb +14 -0
  251. data/test/unit/test-app-util.rb +44 -0
  252. data/test/unit/test-base-cmd.rb +45 -0
  253. data/test/unit/test-base-subcmd.rb +57 -0
  254. data/test/unit/test-base-submgr.rb +23 -0
  255. data/test/unit/test-base-subsubcmd.rb +17 -0
  256. data/test/unit/test-cmd-alias.rb +48 -0
  257. data/test/unit/test-cmd-exit.rb +27 -0
  258. data/test/unit/test-cmd-help.rb +104 -0
  259. data/test/unit/test-cmd-kill.rb +46 -0
  260. data/test/unit/test-cmd-source.rb +34 -0
  261. data/test/unit/test-completion.rb +42 -0
  262. data/test/unit/test-intf-user.rb +46 -0
  263. data/test/unit/test-io-input.rb +27 -0
  264. data/test/unit/test-io-tcp.rb +33 -0
  265. data/test/unit/test-io-tcpclient.rb +54 -0
  266. data/test/unit/test-io-tcpfns.rb +17 -0
  267. data/test/unit/test-io-tcpserver.rb +50 -0
  268. data/test/unit/test-proc-eval.rb +36 -0
  269. data/test/unit/test-proc-hook.rb +30 -0
  270. data/test/unit/test-proc-load_cmds.rb +50 -0
  271. data/test/unit/test-proc-location.rb +79 -0
  272. data/test/unit/test-subcmd-help.rb +44 -0
  273. data/trepan8.gemspec +52 -0
  274. metadata +391 -0
@@ -0,0 +1,26 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../base/subsubcmd'
5
+ require_relative '../base/subsubmgr'
6
+
7
+ class Trepan::SubSubcommand::ShowDebug < Trepan::SubSubcommandMgr
8
+ unless defined?(HELP)
9
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
10
+ HELP = 'Show internal debugger settings.'
11
+ end
12
+ end
13
+
14
+ if __FILE__ == $0
15
+ require_relative '../../mock'
16
+ dbgr, cmd = MockDebugger::setup('show')
17
+ # show_cmd = cmds['show']
18
+ # command = Trepan::SubSubcommand::ShowDebug.new(dbgr.core.processor,
19
+ # show_cmd)
20
+ # name = File.basename(__FILE__, '.rb')
21
+ # cmd_args = ['show', name]
22
+ # show_cmd.instance_variable_set('@last_args', cmd_args)
23
+ # # require_relative '../../../lib/trepanning'
24
+ # # Trepan.debug(:set_restart => true)
25
+ # command.run(cmd_args)
26
+ end
@@ -0,0 +1,21 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../../base/subsubcmd'
5
+
6
+ class Trepan::SubSubcommand::ShowDebugDbgr < Trepan::ShowBoolSubSubcommand
7
+ unless defined?(HELP)
8
+ HELP = "Show debugging the debugger"
9
+ NAME = File.basename(__FILE__, '.rb')
10
+ PREFIX = %W(show debug #{NAME})
11
+ end
12
+
13
+ end
14
+
15
+ if __FILE__ == $0
16
+ # Demo it.
17
+ require_relative '../../../mock'
18
+ require_relative '../debug'
19
+ cmd = MockDebugger::subsub_setup(Trepan::SubSubcommand::ShowDebug,
20
+ Trepan::SubSubcommand::ShowDebugDbgr)
21
+ end
@@ -0,0 +1,22 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../../base/subsubcmd'
5
+
6
+ class Trepan::SubSubcommand::ShowDebugSkip < Trepan::ShowBoolSubSubcommand
7
+ unless defined?(HELP)
8
+ HELP = 'Show debugging of statement skip logic'
9
+ MIN_ABBREV = 'st'.size
10
+ NAME = File.basename(__FILE__, '.rb')
11
+ PREFIX = %W(show debug #{NAME})
12
+ end
13
+
14
+ end
15
+
16
+ if __FILE__ == $0
17
+ # Demo it.
18
+ require_relative '../../../mock'
19
+ require_relative '../debug'
20
+ cmd = MockDebugger::subsub_setup(Trepan::SubSubcommand::ShowDebug,
21
+ Trepan::SubSubcommand::ShowDebugSkip)
22
+ end
@@ -0,0 +1,22 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../../base/subsubcmd'
5
+
6
+ class Trepan::SubSubcommand::ShowDebugStep < Trepan::ShowBoolSubSubcommand
7
+ unless defined?(HELP)
8
+ HELP = 'Show debugging of statement step logic'
9
+ MIN_ABBREV = 'st'.size
10
+ NAME = File.basename(__FILE__, '.rb')
11
+ PREFIX = %W(show debug #{NAME})
12
+ end
13
+
14
+ end
15
+
16
+ if __FILE__ == $0
17
+ # Demo it.
18
+ require_relative '../../../mock'
19
+ require_relative '../debug'
20
+ cmd = MockDebugger::subsub_setup(Trepan::SubSubcommand::ShowDebug,
21
+ Trepan::SubSubcommand::ShowDebugStep)
22
+ end
@@ -0,0 +1,26 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../base/subcmd'
5
+
6
+ class Trepan::Subcommand::ShowDifferent < Trepan::ShowBoolSubcommand
7
+ unless defined?(HELP)
8
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
9
+ HELP = "Show status of 'set different'"
10
+ MIN_ABBREV = 'dif'.size
11
+ end
12
+
13
+ def run(args)
14
+ if 'nostack' == @proc.settings[:different]
15
+ msg "%s is nostack." % HELP[5..-1].capitalize
16
+ else
17
+ super
18
+ end
19
+ end
20
+ end
21
+
22
+ if __FILE__ == $0
23
+ # Demo it.
24
+ require_relative '../../mock'
25
+ cmd = MockDebugger::sub_setup(Trepan::Subcommand::ShowDifferent)
26
+ end
@@ -0,0 +1,22 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../base/subcmd'
5
+
6
+ class Trepan::Subcommand::ShowDirectories < Trepan::Subcommand
7
+ unless defined?(HELP)
8
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
9
+ HELP = "Show current search path for finding source files"
10
+ MIN_ABBREV = 'dir'.size
11
+ end
12
+
13
+ def run(args)
14
+ msg "Source directories searched: #{settings[:directory]}"
15
+ end
16
+ end
17
+
18
+ if __FILE__ == $0
19
+ # Demo it.
20
+ require_relative '../../mock'
21
+ cmd = MockDebugger::sub_setup(Trepan::Subcommand::ShowDirectories)
22
+ end
@@ -0,0 +1,24 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../base/subsubcmd'
5
+ require_relative '../base/subsubmgr'
6
+
7
+ class Trepan::Subcommand::ShowHighlight < Trepan::ShowBoolSubcommand
8
+ unless defined?(HELP)
9
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
10
+ HELP = 'Show whether we use terminal highlighting'
11
+ end
12
+
13
+ def run(args)
14
+ val = :term == @proc.settings[:highlight]
15
+ onoff = show_onoff(val)
16
+ msg("%s is %s." % [@name, onoff])
17
+ end
18
+ end
19
+
20
+ if __FILE__ == $0
21
+ require_relative '../../mock'
22
+ cmd = MockDebugger::sub_setup(Trepan::Subcommand::ShowHighlight, false)
23
+ cmd.run(cmd.prefix)
24
+ end
@@ -0,0 +1,27 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../base/subsubcmd'
5
+ require_relative '../base/subsubmgr'
6
+
7
+ class Trepan::SubSubcommand::ShowMax < Trepan::SubSubcommandMgr
8
+ unless defined?(HELP)
9
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
10
+ HELP = 'Show "maximum length" settings'
11
+ end
12
+
13
+ def run(args)
14
+ super
15
+ end
16
+ end
17
+
18
+ if __FILE__ == $0
19
+ require_relative '../../mock'
20
+ cmd_ary = Trepan::SubSubcommand::ShowMax::PREFIX
21
+ dbgr, parent_cmd = MockDebugger::setup(cmd_ary[0], false)
22
+ cmd = Trepan::SubSubcommand::ShowMax.new(dbgr.processor,
23
+ parent_cmd)
24
+ cmd_name = cmd_ary.join('')
25
+ prefix_run = cmd_ary[1..-1]
26
+ cmd.run(prefix_run)
27
+ end
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../../base/subsubcmd'
5
+
6
+ class Trepan::SubSubcommand::ShowMaxList < Trepan::ShowIntSubSubcommand
7
+ unless defined?(HELP)
8
+ HELP = 'Show the number of source file lines to list'
9
+ MIN_ABBREV = 'lis'.size
10
+ NAME = File.basename(__FILE__, '.rb')
11
+ PREFIX = %w(show max list)
12
+ end
13
+
14
+ end
15
+
16
+ if __FILE__ == $0
17
+ # Demo it.
18
+ require_relative '../../../mock'
19
+
20
+ # FIXME: DRY the below code
21
+ cmd_ary = Trepan::SubSubcommand::ShowMaxList::PREFIX
22
+ dbgr, parent_cmd = MockDebugger::setup(cmd_ary[0], false)
23
+ cmd = Trepan::SubSubcommand::ShowMax.new(dbgr.processor,
24
+ parent_cmd)
25
+ cmd_name = cmd_ary.join('')
26
+ subcmd = Trepan::SubSubcommand::ShowMaxList.new(parent_cmd.proc,
27
+ cmd,
28
+ cmd.name)
29
+ prefix_run = cmd_ary[1..-1]
30
+ subcmd.run(prefix_run)
31
+
32
+ # require_relative '../../../../lib/trepanning'
33
+ # dbgr = Trepan.new(:set_restart => true)
34
+ # dbgr.debugger
35
+ puts subcmd.summary_help(cmd.name)
36
+ puts
37
+ puts '-' * 20
38
+ end
@@ -0,0 +1,36 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../../base/subsubcmd'
5
+
6
+ class Trepan::SubSubcommand::ShowMaxStack < Trepan::ShowIntSubSubcommand
7
+ unless defined?(HELP)
8
+ HELP = 'Show the number of backtrace lines the debugger will show'
9
+ MIN_ABBREV = 'sta'.size
10
+ NAME = File.basename(__FILE__, '.rb')
11
+ PREFIX = %w(show max stack)
12
+ end
13
+
14
+ end
15
+
16
+ if __FILE__ == $0
17
+ # Demo it.
18
+ require_relative '../../../mock'
19
+
20
+ # FIXME: DRY the below code
21
+ dbgr, show_cmd = MockDebugger::setup('show')
22
+ testcmdMgr = Trepan::Subcmd.new(show_cmd)
23
+ # max_cmd = Trepan::SubSubcommand::ShowMax.new(dbgr.core.processor,
24
+ # show_cmd)
25
+
26
+ # cmd_name = Trepan::SubSubcommand::ShowMaxStack::PREFIX.join('')
27
+ # maxx_cmd = Trepan::SubSubcommand::ShowMaxStack.new(show_cmd.proc,
28
+ # max_cmd,
29
+ # cmd_name)
30
+ # # require_relative '../../../../lib/trepanning'
31
+ # # dbgr = Trepan.new(:set_restart => true)
32
+ # # dbgr.debugger
33
+ puts max_cmd.summary_help(maxx_cmd)
34
+ puts
35
+ # maxx_cmd.run([])
36
+ end
@@ -0,0 +1,42 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../../base/subsubcmd'
5
+
6
+ class Trepan::SubSubcommand::ShowMaxString < Trepan::ShowIntSubSubcommand
7
+ unless defined?(HELP)
8
+ HELP = 'Show the number of characters in a string before truncating.
9
+
10
+ Sometimes the string representation of an object is very long. This
11
+ setting limits how much of the string representation you want to
12
+ see. However if the string has an embedded newline then we will assume
13
+ the output is intended to be formated as.'
14
+ MIN_ABBREV = 'st'.size
15
+ NAME = File.basename(__FILE__, '.rb')
16
+ PREFIX = %w(show max string)
17
+ end
18
+
19
+ end
20
+
21
+ if __FILE__ == $0
22
+ # Demo it.
23
+ require_relative '../../../mock'
24
+
25
+ # FIXME: DRY the below code
26
+ dbgr, show_cmd = MockDebugger::setup('show')
27
+ testcmdMgr = Trepan::Subcmd.new(show_cmd)
28
+ # max_cmd = Trepan::SubSubcommand::ShowMax.new(dbgr.core.processor,
29
+ # show_cmd)
30
+
31
+ # cmd_name = Trepan::SubSubcommand::ShowMaxString::PREFIX.join('')
32
+ # maxx_cmd = Trepan::SubSubcommand::ShowMaxString.new(show_cmd.proc,
33
+ # max_cmd,
34
+ # cmd_name)
35
+
36
+ # # require_relative '../../../../lib/trepanning'
37
+ # # dbgr = Trepan.new(:set_restart => true)
38
+ # # dbgr.debugger
39
+ puts max_cmd.summary_help(maxx_cmd)
40
+ puts
41
+ maxx_cmd.run([])
42
+ end
@@ -0,0 +1,37 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../../base/subsubcmd'
5
+
6
+ class Trepan::SubSubcommand::ShowMaxWidth < Trepan::ShowIntSubSubcommand
7
+ unless defined?(HELP)
8
+ HELP = 'Show the number of characters the debugger thinks are in a line.'
9
+ MIN_ABBREV = 'wid'.size
10
+ NAME = File.basename(__FILE__, '.rb')
11
+ PREFIX = %w(show max width)
12
+ end
13
+
14
+ end
15
+
16
+ if __FILE__ == $0
17
+ # Demo it.
18
+ require_relative '../../../mock'
19
+
20
+ # FIXME: DRY the below code
21
+ dbgr, show_cmd = MockDebugger::setup('show')
22
+ testcmdMgr = Trepan::Subcmd.new(show_cmd)
23
+ # max_cmd = Trepan::SubSubcommand::ShowMax.new(dbgr.core.processor,
24
+ # show_cmd)
25
+ # cmd_name = Trepan::SubSubcommand::ShowMaxWidth::PREFIX.join('')
26
+ # maxx_cmd = Trepan::SubSubcommand::ShowMaxWidth.new(show_cmd.proc,
27
+ # max_cmd,
28
+ # cmd_name)
29
+
30
+ name = File.basename(__FILE__, '.rb')
31
+ # require_relative '../../../../lib/trepanning'
32
+ # dbgr = Trepan.new(:set_restart => true)
33
+ # dbgr.debugger
34
+ # puts max_cmd.summary_help(maxx_cmd)
35
+ # puts
36
+ # maxx_cmd.run([])
37
+ end
@@ -0,0 +1,18 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../base/subcmd'
5
+
6
+ class Trepan::Subcommand::ShowReload < Trepan::ShowBoolSubcommand
7
+ unless defined?(SHORT_HELP)
8
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
9
+ HELP = "Show whether to reread source text when it changes"
10
+ MIN_ABBREV = 're'.size
11
+ end
12
+ end
13
+
14
+ if __FILE__ == $0
15
+ # Demo it.
16
+ require_relative '../../mock'
17
+ cmd = MockDebugger::sub_setup(Trepan::Subcommand::ShowReload, false)
18
+ end
@@ -0,0 +1,18 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../base/subcmd'
5
+
6
+ class Trepan::Subcommand::ShowTimer < Trepan::ShowBoolSubcommand
7
+ unless defined?(HELP)
8
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
9
+ HELP = "Show status of the timing hook"
10
+ MIN_ABBREV = 'ti'.size
11
+ end
12
+ end
13
+
14
+ if __FILE__ == $0
15
+ # Demo it.
16
+ require_relative '../../mock'
17
+ cmd = MockDebugger::sub_setup(Trepan::Subcommand::ShowTimer)
18
+ end
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../base/subsubcmd'
5
+ require_relative '../base/subsubmgr'
6
+
7
+ class Trepan::SubSubcommand::ShowTrace < Trepan::SubSubcommandMgr
8
+
9
+ unless defined?(HELP)
10
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
11
+ HELP = "Show event tracing printing"
12
+ MIN_ABBREV = 'tr'.size
13
+ SHORT_HELP = HELP
14
+ end
15
+ end
16
+
17
+ if __FILE__ == $0
18
+ # Demo it.
19
+ require_relative '../../mock'
20
+ dbgr = MockDebugger::MockDebugger.new
21
+ cmds = dbgr.core.processor.commands
22
+ show_cmd = cmds['show']
23
+ command = Trepan::SubSubcommand::ShowTrace.new(dbgr.core.processor,
24
+ show_cmd)
25
+
26
+ name = File.basename(__FILE__, '.rb')
27
+ cmd_args = ['show', name]
28
+ command.run(cmd_args)
29
+ end
@@ -0,0 +1,65 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'rubygems'; require 'require_relative'
4
+ require_relative '../../base/subsubcmd'
5
+
6
+ class Trepan::SubSubcommand::ShowTraceBuffer < Trepan::ShowBoolSubSubcommand
7
+ unless defined?(HELP)
8
+ Trepanning::SubSubcommand.set_name_prefix(__FILE__, self)
9
+ HELP = <<-EOH
10
+ #{CMD} [NUM]
11
+
12
+ Show the events recorded in the event buffer. If NUM is a negative
13
+ number, events run starting from that many debugger stops back. If NUM
14
+ is a positive number, we print starting from that (adjusted) position
15
+ in the event buffer with Since the event buffer may be a ring, its
16
+ zero being the first position. (Since the event buffer may be a ring
17
+ the earliest position recorded may move around.)
18
+ EOH
19
+ MIN_ABBREV = 'b'.size
20
+ SHORT_HELP = "Show tracing buffer"
21
+ end
22
+
23
+ def parse_show_buffer_args(args)
24
+ marksize = @proc.eventbuf.size
25
+ opts = {
26
+ :max_value => @proc.eventbuf.size,
27
+ :min_value => - marksize,
28
+ :msg_on_error =>
29
+ 'Positive or negative number expected, got %s.' % args[0]
30
+ }
31
+ num = @proc.get_an_int(args[0], opts)
32
+ return nil, nil unless num
33
+ num = marksize + num if num < 0
34
+ first = @proc.eventbuf.zero_pos + num
35
+ return first, nil
36
+ end
37
+
38
+ def run(args)
39
+ if args.size > 1
40
+ if @proc.eventbuf.size == 0
41
+ msg 'no events recorded.'
42
+ errmsg 'event buffer tracing is off. ' +
43
+ 'use "set trace buffer on" to turn on.' unless
44
+ settings[:tracebuffer]
45
+ return
46
+ end
47
+ first, last = parse_show_buffer_args(args[1..-1])
48
+
49
+ return unless first
50
+ @proc.eventbuf_print(first, last, settings[:maxwidth])
51
+ else
52
+ super
53
+ end
54
+ end
55
+
56
+ end
57
+
58
+ if __FILE__ == $0
59
+ # Demo it.
60
+ require_relative '../../../mock'
61
+ require_relative '../../../subcmd'
62
+ require_relative '../trace'
63
+ cmd = MockDebugger::subsub_setup(Trepan::SubSubcommand::ShowTrace,
64
+ Trepan::SubSubcommand::ShowTraceBuffer)
65
+ end