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,11 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require 'linecache'
4
4
  require_relative '../base/subcmd'
5
5
  require_relative '../../../app/file'
6
6
 
7
7
  class Trepan::Subcommand::InfoFile < Trepan::Subcommand
8
8
  unless defined?(HELP)
9
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
9
10
  DEFAULT_FILE_ARGS = %w(size sha1)
10
11
 
11
12
  HELP =
@@ -28,9 +29,7 @@ all -- All of the above information.
28
29
  If no sub-options are given #{DEFAULT_FILE_ARGS.join(' ')} are assumed.
29
30
  "
30
31
  MIN_ABBREV = 'fi'.size # Note we have "info frame"
31
- NAME = File.basename(__FILE__, '.rb')
32
32
  NEED_STACK = false
33
- PREFIX = %w(info file)
34
33
  end
35
34
 
36
35
  include Trepanning
@@ -1,14 +1,13 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require_relative '../base/subcmd'
4
4
 
5
5
  class Trepan::Subcommand::InfoFrame < Trepan::Subcommand
6
6
  unless defined?(HELP)
7
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
7
8
  HELP = 'Show all information about the selected frame'
8
9
  MIN_ABBREV = 'fr'.size # Note we have "info file"
9
- NAME = File.basename(__FILE__, '.rb')
10
10
  NEED_STACK = true
11
- PREFIX = %w(info frame)
12
11
  end
13
12
 
14
13
  def run(args)
@@ -1,10 +1,11 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require_relative '../base/subcmd'
4
4
  require 'pp'
5
5
 
6
6
  class Trepan::Subcommand::InfoIseq < Trepan::Subcommand
7
7
  unless defined?(HELP)
8
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
8
9
  HELP =
9
10
  'info iseq [METHOD|.]
10
11
 
@@ -16,9 +17,7 @@ Examples:
16
17
  info iseq require_relative
17
18
  '
18
19
  MIN_ABBREV = 'is'.size
19
- NAME = File.basename(__FILE__, '.rb')
20
20
  NEED_STACK = true
21
- PREFIX = %w(info iseq)
22
21
  SHORT_HELP = 'Information about an instruction sequence'
23
22
  end
24
23
 
@@ -59,9 +58,9 @@ Examples:
59
58
  msg "\nCompile options:"
60
59
  msg iseq.compile_options.pretty_inspect
61
60
  end
62
- if iseq.source
61
+ if iseq.eval_source
63
62
  msg "Source string:"
64
- msg @proc.safe_rep(iseq.source.inspect)
63
+ msg @proc.safe_rep(iseq.eval_source.inspect)
65
64
  end
66
65
  else
67
66
  mess = "Can't find instruction sequence"
@@ -1,17 +1,16 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require 'columnize'
4
4
  require_relative '../base/subcmd'
5
5
  require_relative '../../../app/frame'
6
6
 
7
7
  class Trepan::Subcommand::InfoLocals < Trepan::Subcommand
8
8
  unless defined?(HELP)
9
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
9
10
  HELP = 'Show local variables of the current stack frame'
10
11
  MAX_ARGS = 1
11
12
  MIN_ABBREV = 'lo'.size
12
- NAME = File.basename(__FILE__, '.rb')
13
13
  NEED_STACK = true
14
- PREFIX = %w(info locals)
15
14
  end
16
15
 
17
16
  include Trepan::Frame
@@ -1,14 +1,13 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require_relative '../base/subcmd'
4
4
 
5
5
  class Trepan::Subcommand::InfoProgram < Trepan::Subcommand
6
6
  unless defined?(HELP)
7
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
7
8
  HELP = 'Information about debugged program and its environment'
8
9
  MIN_ABBREV = 'pr'.size
9
- NAME = File.basename(__FILE__, '.rb')
10
10
  NEED_STACK = true
11
- PREFIX = %w(info program)
12
11
  end
13
12
 
14
13
  def run(args)
@@ -1,10 +1,11 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require_relative '../base/subsubcmd'
4
4
  require_relative '../base/subsubmgr'
5
5
 
6
6
  class Trepan::SubSubcommand::InfoRegisters < Trepan::SubSubcommandMgr
7
7
  unless defined?(HELP)
8
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
8
9
  HELP =
9
10
  'List of contents for the registers of the current stack frame.
10
11
  If a register name given, only only that register is show.
@@ -19,9 +20,7 @@ Examples:
19
20
  '
20
21
 
21
22
  MIN_ABBREV = 'reg'.size # Note we have "info return"
22
- NAME = File.basename(__FILE__, '.rb')
23
23
  NEED_STACK = true
24
- PREFIX = %w(info registers)
25
24
  end
26
25
 
27
26
  def run(args)
@@ -1,14 +1,13 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require_relative '../base/subcmd'
4
4
 
5
5
  class Trepan::Subcommand::InfoReturn < Trepan::Subcommand
6
6
  unless defined?(HELP)
7
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
7
8
  HELP = 'Show the value about to be returned'
8
9
  MIN_ABBREV = 'ret'.size # Note we have "info registers"
9
- NAME = File.basename(__FILE__, '.rb')
10
10
  NEED_STACK = true
11
- PREFIX = %w(info return)
12
11
  end
13
12
 
14
13
  def run(args)
@@ -1,11 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require_relative '../base/subcmd'
4
4
  require_relative '../../../app/thread'
5
5
  require_relative '../../../app/frame'
6
6
 
7
7
  class Trepan::Subcommand::InfoThread < Trepan::Subcommand
8
8
  unless defined?(HELP)
9
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
9
10
  HELP =
10
11
  'info thread [THREAD-ARG1 THREAD-ARG2.. ]
11
12
 
@@ -26,9 +27,7 @@ Examples:
26
27
  info thread 92562770 # ifnormation for thread with object id 92562770
27
28
  '
28
29
  MIN_ABBREV = 'thr'.size
29
- NAME = File.basename(__FILE__, '.rb')
30
30
  NEED_STACK = true
31
- PREFIX = %w(info thread)
32
31
  SHORT_HELP = 'Show frame(s) for threads'
33
32
  end
34
33
 
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
1
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
2
2
  # -*- coding: utf-8 -*-
3
3
  require 'linecache'
4
4
  require_relative 'base/cmd'
@@ -22,8 +22,8 @@ previously shown.
22
22
  If the command has a '>' suffix, then line centering is disabled and
23
23
  listing begins at the specificed location.
24
24
 
25
- The number of line to show is controled by the debugger listsize
26
- setting. Use 'set listsize' or 'show listsize' to see or set the
25
+ The number of lines to show is controlled by the debugger "listsize"
26
+ setting. Use 'set max list' or 'show max list' to see or set the
27
27
  value.
28
28
 
29
29
  \"#{NAME} -\" shows lines before a previous listing.
@@ -234,13 +234,17 @@ disabled.
234
234
  end
235
235
 
236
236
  begin
237
+ opts = {
238
+ :reload_on_change => @proc.reload_on_change,
239
+ :output => settings[:highlight]
240
+ }
237
241
  first.upto(last).each do |lineno|
238
- line = LineCache::getline(container[1], lineno,
239
- @proc.reload_on_change).chomp
242
+ line = LineCache::getline(container[1], lineno, opts)
240
243
  unless line
241
244
  msg('[EOF]')
242
245
  break
243
246
  end
247
+ line.chomp!
244
248
  s = '%3d' % lineno
245
249
  s = s + ' ' if s.size < 4
246
250
  s += if breaklist.member?(lineno)
@@ -253,7 +257,7 @@ disabled.
253
257
  end
254
258
  s += (frame && lineno == @proc.frame_line &&
255
259
  container == frame.source_container) ? '->' : a_pad
256
- msg(s + "\t" + line)
260
+ msg(s + "\t" + line, {:unlimited => true})
257
261
  @proc.line_no = lineno
258
262
  end
259
263
  rescue => e
@@ -1,5 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require_relative 'base/submgr'
4
4
 
5
5
  class Trepan::Command::ReloadCommand < Trepan::SubcommandMgr
@@ -1,19 +1,37 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require_relative '../base/subcmd'
4
4
 
5
5
  class Trepan::Subcommand::ReloadCommand < Trepan::Subcommand
6
6
  unless defined?(HELP)
7
- HELP = 'Reload debugger commmands from debugger directories'
7
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
8
+ HELP = <<-HELP
9
+ reload command [file-or-directory ...]
10
+
11
+ Loads or reloads debugger commands. If no parameters are passed all
12
+ commands are reloaded. If a parameters are passed each is expected to
13
+ be a either a Ruby file which implements a series of debugger
14
+ commands by defining Trepan::Command classes, or a directory which contains
15
+ files that implements debugger commands.
16
+ HELP
8
17
  MIN_ABBREV = 'co'.size # Note we have "info file"
9
- NAME = File.basename(__FILE__, '.rb')
10
18
  NEED_STACK = true
11
- PREFIX = %w(reload command)
19
+ SHORT_HELP = 'Reload debugger commmands from debugger directories'
12
20
  end
13
21
 
14
22
  def run(args)
15
- @proc.load_cmds_initialize
16
- msg('Debugger commands reloaded.')
23
+ if args.size == 2
24
+ @proc.load_cmds_initialize
25
+ msg('Debugger commands reloaded.')
26
+ elsif args.size > 2
27
+ args[2..-1].each do |name|
28
+ if @proc.load_debugger_commands(name)
29
+ msg "Debugger command file #{name} loaded."
30
+ else
31
+ errmsg "Can't load file or directory #{name}"
32
+ end
33
+ end
34
+ end
17
35
  end
18
36
 
19
37
  end
@@ -21,14 +39,9 @@ end
21
39
  if __FILE__ == $0
22
40
  # Demo it.
23
41
  require_relative '../../mock'
24
- require_relative '../../subcmd'
25
- name = File.basename(__FILE__, '.rb')
26
-
27
- # FIXME: DRY the below code
28
- dbgr, cmd = MockDebugger::setup('reload')
29
- subcommand = Trepan::Subcommand::ReloadCommand.new(cmd)
30
- testcmdMgr = Trepan::Subcmd.new(subcommand)
31
-
32
- name = File.basename(__FILE__, '.rb')
33
- subcommand.summary_help(name)
42
+ cmd = MockDebugger::sub_setup(Trepan::Subcommand::ReloadCommand, false)
43
+ cmd.run(cmd.prefix)
44
+ dir = File.dirname(__FILE__)
45
+ cmd.run(cmd.prefix + [File.join(%W(#{dir} .. list.rb))])
46
+ cmd.run(cmd.prefix + [File.join(%W(#{dir} nonexistent-command.rb))])
34
47
  end
@@ -0,0 +1,70 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright (C) 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
+ require 'optparse'
4
+ require_relative 'base/cmd'
5
+ require_relative '../../app/default'
6
+ require_relative '../../interface/server' # server interface (remote debugging)
7
+ class Trepan::Command::ServerCommand < Trepan::Command
8
+
9
+ unless defined?(HELP)
10
+ CATEGORY = 'support'
11
+ DEFAULT_OPTIONS = {
12
+ :host => Trepan::DEFAULT_SETTINGS[:host],
13
+ :port => Trepan::DEFAULT_SETTINGS[:port]
14
+ }
15
+ MAX_ARGS = 4 # Need at most this many
16
+ NAME = File.basename(__FILE__, '.rb')
17
+ HELP = <<-HELP
18
+ #{NAME} [{--port|-p} NUM] [{--host|-h} HOST-OR-IP]
19
+
20
+ Put session into server mode which allows an out-of-process or remote
21
+ connection to the debugged program. --port and --host can be supplied
22
+ to specify the port number to use and the host name for TCP
23
+ connections. If neither is given, the default host (#{Trepan::DEFAULT_SETTINGS[:host]})
24
+ and the default port (#{Trepan::DEFAULT_SETTINGS[:port]}) are used.
25
+
26
+ Examples:
27
+ #{NAME} # Accept remote connections using defaults
28
+ #{NAME} --port 123 # Accept remote connections on port 123
29
+ #{NAME} --host my.host.net --port 2048
30
+ #{NAME} -h my.host.net -p 2048 # same as above
31
+ HELP
32
+
33
+ SHORT_HELP = 'Go into out-of-process debugging (server) mode'
34
+
35
+ end
36
+
37
+ def parse_options(options, args) # nodoc
38
+ parser = OptionParser.new do |opts|
39
+ opts.on("-h", "--host NAME", String,
40
+ "Host or IP used in TCP connections for --server or --client. " +
41
+ "Default is #{DEFAULT_SETTINGS[:host].inspect}.") do
42
+ |name_or_ip|
43
+ options[:host] = name_or_ip
44
+ end
45
+ opts.on("-p", "--port NUMBER", Integer,
46
+ "Port number used in TCP connections for --server or --client. " +
47
+ "Default is #{DEFAULT_SETTINGS[:port]}.") do
48
+ |num|
49
+ options[:port] = num
50
+ end
51
+ end
52
+ parser.parse(args)
53
+ return options
54
+ end
55
+
56
+ # This method runs the command
57
+ def run(args) # :nodoc
58
+ options = parse_options(DEFAULT_OPTIONS.dup, args[1..-1])
59
+ msg("starting debugger in out-of-process mode on host #{options[:host].inspect}, " +
60
+ "port: #{options[:port]}")
61
+ @proc.dbgr.intf << Trepan::ServerInterface.new(nil, nil, options)
62
+ end
63
+ end
64
+
65
+ if __FILE__ == $0
66
+ require_relative '../mock'
67
+ dbgr, cmd = MockDebugger::setup
68
+ # cmd.run([cmd.name])
69
+ # cmd.run([cmd.name, '--server'])
70
+ end
@@ -1,13 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require_relative '../base/subsubcmd'
4
4
  require_relative '../base/subsubmgr'
5
5
 
6
6
  class Trepan::SubSubcommand::SetAuto < Trepan::SubSubcommandMgr
7
7
  unless defined?(HELP)
8
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
8
9
  HELP = 'Set controls for things with some sort of "automatic" default behavior'
9
- NAME = File.basename(__FILE__, '.rb')
10
- PREFIX = %w(set auto)
11
10
  end
12
11
  end
13
12
 
@@ -1,14 +1,13 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require_relative '../base/subcmd'
4
4
 
5
5
  class Trepan::Subcommand::SetBasename < Trepan::SetBoolSubcommand
6
6
  unless defined?(HELP)
7
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
7
8
  HELP = "Set to show only file basename in showing file names"
8
9
  IN_LIST = true
9
10
  MIN_ABBREV = 'ba'.size
10
- NAME = File.basename(__FILE__, '.rb')
11
- PREFIX = %w(set basename)
12
11
  end
13
12
 
14
13
  end
@@ -1,13 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require_relative '../base/subsubcmd'
4
4
  require_relative '../base/subsubmgr'
5
5
 
6
6
  class Trepan::SubSubcommand::SetDebug < Trepan::SubSubcommandMgr
7
7
  unless defined?(HELP)
8
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
8
9
  HELP = 'Set internal debugger settings'
9
- NAME = File.basename(__FILE__, '.rb')
10
- PREFIX = %w(set debug)
11
10
  end
12
11
  end
13
12
 
@@ -1,9 +1,10 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require_relative '../base/subcmd'
4
4
 
5
5
  class Trepan::Subcommand::SetDifferent < Trepan::SetBoolSubcommand
6
6
  unless defined?(HELP)
7
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
7
8
  HELP = "
8
9
  set different [on|off|nostack]
9
10
 
@@ -32,8 +33,6 @@ override this setting."
32
33
 
33
34
  IN_LIST = true
34
35
  MIN_ABBREV = 'dif'.size
35
- NAME = File.basename(__FILE__, '.rb')
36
- PREFIX = %w(set different)
37
36
  SHORT_HELP = "Set to make sure 'next/step' move to a new position."
38
37
  end
39
38
 
@@ -1,11 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
- # Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
3
3
  require 'trace'
4
4
  require 'columnize'
5
5
  require_relative '../base/subcmd'
6
6
 
7
7
  class Trepan::Subcommand::SetEvents < Trepan::Subcommand
8
8
  unless defined?(HELP)
9
+ Trepanning::Subcommand.set_name_prefix(__FILE__, self)
9
10
  HELP = "set events {event-name[,] ...}
10
11
 
11
12
  Set trace events that the debugger will stop on
@@ -21,8 +22,6 @@ Examples:
21
22
  set ev call, c_call, return, c_return, c_return, insn
22
23
  "
23
24
  MIN_ABBREV = 'ev'.size
24
- NAME = File.basename(__FILE__, '.rb')
25
- PREFIX = %w(set events)
26
25
  SHORT_HELP = 'Set trace events we may stop on.'
27
26
  end
28
27