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.
- data/ChangeLog +237 -0
- data/NEWS +8 -0
- data/Rakefile +3 -2
- data/app/breakpoint.rb +8 -8
- data/app/brkptmgr.rb +86 -85
- data/app/client.rb +60 -0
- data/app/core.rb-consider +198 -0
- data/app/default.rb +17 -7
- data/app/disassemble.rb +12 -2
- data/app/options.rb +51 -20
- data/app/yarv.rb +183 -0
- data/bin/trepan +15 -9
- data/data/custom_require.rb +44 -0
- data/data/irbrc +41 -0
- data/data/prelude.rb +38 -0
- data/interface/base_intf.rb +10 -4
- data/interface/client.rb +79 -0
- data/interface/comcodes.rb +18 -0
- data/interface/server.rb +142 -0
- data/io/base_io.rb +57 -3
- data/io/tcpclient.rb +122 -0
- data/io/tcpfns.rb +31 -0
- data/io/tcpserver.rb +137 -0
- data/lib/trepanning.rb +57 -28
- data/processor/command/base/cmd.rb +10 -6
- data/processor/command/base/subcmd.rb +13 -1
- data/processor/command/directory.rb +15 -8
- data/processor/command/disassemble.rb +3 -2
- data/processor/command/help.rb +71 -19
- data/processor/command/info_subcmd/args.rb +2 -3
- data/processor/command/info_subcmd/breakpoints.rb +2 -3
- data/processor/command/info_subcmd/file.rb +2 -3
- data/processor/command/info_subcmd/frame.rb +2 -3
- data/processor/command/info_subcmd/iseq.rb +4 -5
- data/processor/command/info_subcmd/locals.rb +2 -3
- data/processor/command/info_subcmd/program.rb +2 -3
- data/processor/command/info_subcmd/registers.rb +2 -3
- data/processor/command/info_subcmd/return.rb +2 -3
- data/processor/command/info_subcmd/thread.rb +2 -3
- data/processor/command/list.rb +10 -6
- data/processor/command/reload.rb +1 -1
- data/processor/command/reload_subcmd/command.rb +29 -16
- data/processor/command/server.rb +70 -0
- data/processor/command/set_subcmd/auto.rb +2 -3
- data/processor/command/set_subcmd/basename.rb +2 -3
- data/processor/command/set_subcmd/debug.rb +2 -3
- data/processor/command/set_subcmd/different.rb +2 -3
- data/processor/command/set_subcmd/events.rb +2 -3
- data/processor/command/set_subcmd/hidelevel.rb +6 -7
- data/processor/command/set_subcmd/highlight.rb +32 -0
- data/processor/command/set_subcmd/max.rb +2 -3
- data/processor/command/set_subcmd/return.rb +2 -3
- data/processor/command/set_subcmd/sp.rb +2 -3
- data/processor/command/set_subcmd/substitute.rb +2 -3
- data/processor/command/set_subcmd/timer.rb +2 -3
- data/processor/command/set_subcmd/trace.rb +3 -4
- data/processor/command/show_subcmd/alias.rb +3 -3
- data/processor/command/show_subcmd/args.rb +2 -3
- data/processor/command/show_subcmd/auto.rb +1 -2
- data/processor/command/show_subcmd/basename.rb +2 -3
- data/processor/command/show_subcmd/debug.rb +1 -2
- data/processor/command/show_subcmd/different.rb +2 -1
- data/processor/command/show_subcmd/events.rb +2 -2
- data/processor/command/show_subcmd/hidelevel.rb +2 -3
- data/processor/command/show_subcmd/highlight.rb +23 -0
- data/processor/command/show_subcmd/macro.rb +2 -1
- data/processor/command/show_subcmd/max.rb +2 -3
- data/processor/command/show_subcmd/trace.rb +2 -3
- data/processor/command/source.rb +78 -28
- data/processor/default.rb +3 -2
- data/processor/load_cmds.rb +39 -19
- data/processor/location.rb +11 -7
- data/processor/main.rb +31 -15
- data/processor/mock.rb +22 -7
- data/processor/msg.rb +24 -8
- data/test/data/fname-with-blank.right +3 -0
- data/test/data/quit.right +2 -0
- data/test/functional/test-break-long.rb +87 -0
- data/test/functional/tmp/b3.rb +5 -0
- data/test/functional/tmp/immediate-bug1.rb +9 -0
- data/test/integration/helper.rb +14 -11
- data/test/integration/test-fname-with-blank.rb +5 -1
- data/test/integration/test-quit.rb +6 -2
- data/test/unit/cmd-helper.rb +9 -4
- data/test/unit/mock-helper.rb +9 -0
- data/test/unit/test-app-brkpt.rb +4 -4
- data/test/unit/test-app-brkptmgr.rb +2 -2
- data/test/unit/test-app-file.rb +0 -1
- data/test/unit/test-app-options.rb +26 -5
- data/test/unit/test-base-subcmd.rb +0 -1
- data/test/unit/test-cmd-alias.rb +0 -1
- data/test/unit/test-cmd-break.rb +0 -4
- data/test/unit/test-cmd-endisable.rb +1 -3
- data/test/unit/test-cmd-help.rb +0 -1
- data/test/unit/test-cmd-kill.rb +4 -5
- data/test/unit/test-cmd-quit.rb +4 -7
- data/test/unit/test-cmd-source.rb +33 -0
- data/test/unit/test-cmd-step.rb +0 -2
- data/test/unit/test-io-tcp.rb +32 -0
- data/test/unit/test-io-tcpclient.rb +53 -0
- data/test/unit/test-io-tcpserver.rb +49 -0
- data/test/unit/test-proc-main.rb +2 -2
- metadata +195 -175
- data/processor/command/stepi.rb +0 -63
- data/test/functional/tmp/b1.rb +0 -5
- data/test/functional/tmp/s1.rb +0 -9
- data/test/functional/tmp/t2.rb +0 -6
- 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_relative '../base/subcmd'
|
4
4
|
|
5
5
|
class Trepan::Subcommand::SetHidelevel < Trepan::Subcommand
|
6
6
|
unless defined?(HELP)
|
7
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
7
8
|
HELP = "
|
8
|
-
|
9
|
+
#{PREFIX.join(' ')} [NUM]
|
9
10
|
|
10
11
|
Hide this many stack frames from the bottom (or least-recent) frame.
|
11
12
|
|
@@ -21,19 +22,17 @@ would be otherwise be, empty then we show all entries, or take NUM to
|
|
21
22
|
be 0.
|
22
23
|
|
23
24
|
Examples:
|
24
|
-
|
25
|
-
|
25
|
+
#{PREFIX.join(' ')} # Use the default value and hide 'uninteresting' ones
|
26
|
+
#{PREFIX.join(' ')} 0 # Show all stack entries, even from loading the program
|
26
27
|
# or initial stack entries the debugger created to
|
27
28
|
# debug the program.
|
28
|
-
|
29
|
+
#{PREFIX.join(' ')} 1 # Hide only the bottom-most or least-recent stack frame.
|
29
30
|
|
30
31
|
See also 'backtrace' and 'show hidelevel'.
|
31
32
|
."
|
32
33
|
|
33
34
|
IN_LIST = true
|
34
35
|
MIN_ABBREV = 'hide'.size
|
35
|
-
NAME = File.basename(__FILE__, '.rb')
|
36
|
-
PREFIX = %W(set #{NAME})
|
37
36
|
SHORT_HELP = "Set the number of bottom frames to hide."
|
38
37
|
end
|
39
38
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Copyright (C) 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
|
3
|
+
require_relative '../base/subcmd'
|
4
|
+
|
5
|
+
class Trepan::Subcommand::SetHighlight < Trepan::SetBoolSubcommand
|
6
|
+
unless defined?(HELP)
|
7
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
8
|
+
HELP = 'Set whether we use highlight highlighting'
|
9
|
+
IN_LIST = true
|
10
|
+
MIN_ABBREV = 'ba'.size
|
11
|
+
end
|
12
|
+
def run(args)
|
13
|
+
if args.size == 3 && 'reset' == args[2]
|
14
|
+
LineCache::clear_file_format_cache
|
15
|
+
else
|
16
|
+
super
|
17
|
+
@proc.settings[:highlight] = :term if @proc.settings[:highlight]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
if __FILE__ == $0
|
24
|
+
# Demo it.
|
25
|
+
$0 = __FILE__ + 'notagain' # So we don't run this again
|
26
|
+
require_relative '../../mock'
|
27
|
+
cmd = MockDebugger::sub_setup(Trepan::Subcommand::SetHighlight, false)
|
28
|
+
cmd.run(cmd.prefix + ['off'])
|
29
|
+
cmd.run(cmd.prefix + ['ofn'])
|
30
|
+
cmd.run(cmd.prefix)
|
31
|
+
puts cmd.save_command
|
32
|
+
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::SetMax < Trepan::SubSubcommandMgr
|
7
7
|
unless defined?(HELP)
|
8
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
8
9
|
HELP = 'Set maximum length for things which may have unbounded size'
|
9
|
-
NAME = File.basename(__FILE__, '.rb')
|
10
|
-
PREFIX = %w(set max)
|
11
10
|
end
|
12
11
|
|
13
12
|
# def run(args)
|
@@ -1,15 +1,14 @@
|
|
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/frame'
|
5
5
|
|
6
6
|
class Trepan::Subcommand::SetReturn < Trepan::Subcommand
|
7
7
|
unless defined?(HELP)
|
8
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
8
9
|
HELP = 'Set the value that will be returned in the current method'
|
9
10
|
IN_LIST = true
|
10
11
|
MIN_ABBREV = 'ret'.size
|
11
|
-
NAME = File.basename(__FILE__, '.rb')
|
12
|
-
PREFIX = %w(set return)
|
13
12
|
end
|
14
13
|
|
15
14
|
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::SetSp < Trepan::Subcommand
|
6
6
|
unless defined?(HELP)
|
7
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
7
8
|
HELP = 'Set a stack pointer register'
|
8
9
|
IN_LIST = true
|
9
10
|
MIN_ABBREV = 'sp'.size
|
10
|
-
NAME = File.basename(__FILE__, '.rb')
|
11
|
-
PREFIX = %w(set sp)
|
12
11
|
end
|
13
12
|
|
14
13
|
def run(args)
|
@@ -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::SetSubstitute < Trepan::SubSubcommandMgr
|
7
7
|
unless defined?(HELP)
|
8
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
8
9
|
HELP = 'Set instruction sequence-to-filename mapping'
|
9
|
-
NAME = File.basename(__FILE__, '.rb')
|
10
|
-
PREFIX = %w(set substitute)
|
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/subsubcmd'
|
4
4
|
|
5
5
|
class Trepan::Subcommand::SetTimer < Trepan::SetBoolSubcommand
|
6
6
|
unless defined?(HELP)
|
7
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
7
8
|
HELP = "set timer [on|off|0|1]
|
8
9
|
|
9
10
|
Tracks and shows elapsed time between debugger events.
|
@@ -26,8 +27,6 @@ See also: 'set events', 'set trace buffer', 'step', and 'break'.
|
|
26
27
|
"
|
27
28
|
|
28
29
|
MIN_ABBREV = 'ti'.size
|
29
|
-
NAME = File.basename(__FILE__, '.rb')
|
30
|
-
PREFIX = %w(set timer)
|
31
30
|
SHORT_HELP = "Set to show elapsed time between debugger events"
|
32
31
|
end
|
33
32
|
|
@@ -1,22 +1,21 @@
|
|
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::SetTrace < Trepan::SubSubcommandMgr
|
7
7
|
unless defined?(HELP)
|
8
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
8
9
|
HELP = "Set tracing of various sorts.
|
9
10
|
|
10
11
|
The types of tracing include global variables, events from the trace
|
11
12
|
buffer, or printing those events.
|
12
13
|
|
13
|
-
See 'help
|
14
|
+
See 'help #{PREFIX.join(' ')} *' for a list of subcommands or 'help set trace
|
14
15
|
<name>' for help on a particular trace subcommand."
|
15
16
|
|
16
17
|
IN_LIST = true
|
17
18
|
MIN_ABBREV = 'tr'.size
|
18
|
-
NAME = File.basename(__FILE__, '.rb')
|
19
|
-
PREFIX = %w(set trace)
|
20
19
|
SHORT_HELP = 'Set tracing of various sorts.'
|
21
20
|
end
|
22
21
|
|
@@ -1,16 +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_relative '../base/subcmd'
|
4
4
|
|
5
5
|
class Trepan::Subcommand::ShowAlias < Trepan::Subcommand
|
6
6
|
unless defined?(HELP)
|
7
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
7
8
|
HELP = "show alias [NAME1 NAME2 ...]
|
8
9
|
|
9
10
|
If aliases names are given, show their definition. If left blank, show
|
10
11
|
all alias names"
|
11
12
|
|
12
13
|
MIN_ABBREV = 'al'.size
|
13
|
-
NAME = File.basename(__FILE__, '.rb')
|
14
14
|
SHORT_HELP = "Show defined aliases"
|
15
15
|
end
|
16
16
|
|
@@ -26,7 +26,7 @@ all alias names"
|
|
26
26
|
elsif @proc.aliases.empty?
|
27
27
|
msg "No aliases defined."
|
28
28
|
else
|
29
|
-
|
29
|
+
section "List of aliases names currently defined:"
|
30
30
|
msg columnize_commands(@proc.aliases.keys.sort)
|
31
31
|
end
|
32
32
|
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/subcmd'
|
4
4
|
|
5
5
|
class Trepan::Subcommand::ShowArgs < Trepan::Subcommand
|
6
6
|
unless defined?(HELP)
|
7
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
7
8
|
HELP = 'Show argument list to give program when it is restarted'
|
8
9
|
MIN_ABBREV = 'ar'.size
|
9
|
-
NAME = File.basename(__FILE__, '.rb')
|
10
|
-
PREFIX = %W(show #{NAME})
|
11
10
|
end
|
12
11
|
|
13
12
|
def run(args)
|
@@ -5,9 +5,8 @@ require_relative '../base/subsubmgr'
|
|
5
5
|
|
6
6
|
class Trepan::SubSubcommand::ShowAuto < Trepan::SubSubcommandMgr
|
7
7
|
unless defined?(HELP)
|
8
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
8
9
|
HELP = 'Show settings which some sort of "automatic" default behavior'
|
9
|
-
NAME = File.basename(__FILE__, '.rb')
|
10
|
-
PREFIX = %W(show #{NAME})
|
11
10
|
MIN_ABBREV = 'au'.size
|
12
11
|
end
|
13
12
|
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/subcmd'
|
4
4
|
|
5
5
|
class Trepan::Subcommand::ShowBasename < Trepan::ShowBoolSubcommand
|
6
6
|
unless defined?(HELP)
|
7
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
7
8
|
HELP = "Show only file basename in showing file names"
|
8
9
|
MIN_ABBREV = 'ba'.size
|
9
|
-
NAME = File.basename(__FILE__, '.rb')
|
10
|
-
PREFIX = %W(show #{NAME})
|
11
10
|
end
|
12
11
|
|
13
12
|
end
|
@@ -5,9 +5,8 @@ require_relative '../base/subsubmgr'
|
|
5
5
|
|
6
6
|
class Trepan::SubSubcommand::ShowDebug < Trepan::SubSubcommandMgr
|
7
7
|
unless defined?(HELP)
|
8
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
8
9
|
HELP = 'Show internal debugger settings.'
|
9
|
-
NAME = File.basename(__FILE__, '.rb')
|
10
|
-
PREFIX = %W(show #{NAME})
|
11
10
|
MIN_ABBREV = 'de'.size
|
12
11
|
end
|
13
12
|
end
|
@@ -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::ShowDifferent < Trepan::ShowBoolSubcommand
|
6
6
|
unless defined?(HELP)
|
7
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
7
8
|
HELP = "Show status of 'set different'"
|
8
9
|
MIN_ABBREV = 'dif'.size
|
9
10
|
end
|
@@ -1,12 +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
|
|
5
5
|
class Trepan::Subcommand::ShowEvents < Trepan::Subcommand
|
6
6
|
unless defined?(HELP)
|
7
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
7
8
|
HELP = 'Show trace events we may stop on.'
|
8
9
|
MIN_ABBREV = 'ev'.size
|
9
|
-
NAME = File.basename(__FILE__, '.rb')
|
10
10
|
end
|
11
11
|
|
12
12
|
# FIXME: this really should be a subcommand of "set trace"
|
@@ -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
|
|
5
5
|
class Trepan::Subcommand::ShowHidelevel < Trepan::ShowIntSubcommand
|
6
6
|
unless defined?(HELP)
|
7
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
7
8
|
HELP = 'Show the number of stack levels to hide'
|
8
9
|
MIN_ABBREV = 'hide'.size
|
9
|
-
NAME = File.basename(__FILE__, '.rb')
|
10
|
-
PREFIX = %w(show hidelevel)
|
11
10
|
end
|
12
11
|
def run(args)
|
13
12
|
if @proc.settings[:hidelevel]
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Copyright (C) 2011 Rocky Bernstein <rockyb@rubyforge.net>
|
3
|
+
require_relative '../base/subsubcmd'
|
4
|
+
require_relative '../base/subsubmgr'
|
5
|
+
|
6
|
+
class Trepan::Subcommand::ShowHighlight < Trepan::ShowBoolSubcommand
|
7
|
+
unless defined?(HELP)
|
8
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
9
|
+
HELP = 'Show whether we use highlight highlighting'
|
10
|
+
end
|
11
|
+
|
12
|
+
def run(args)
|
13
|
+
val = :term == @proc.settings[:highlight]
|
14
|
+
onoff = show_onoff(val)
|
15
|
+
msg("%s is %s." % [@name, onoff])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
if __FILE__ == $0
|
20
|
+
require_relative '../../mock'
|
21
|
+
cmd = MockDebugger::sub_setup(Trepan::Subcommand::ShowHighlight, false)
|
22
|
+
cmd.run(cmd.prefix)
|
23
|
+
end
|
@@ -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::ShowMacro < Trepan::Subcommand
|
6
6
|
unless defined?(HELP)
|
7
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
7
8
|
HELP = "Show defined macros"
|
8
9
|
MIN_ABBREV = 'ma'.size
|
9
10
|
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::ShowMax < Trepan::SubSubcommandMgr
|
7
7
|
unless defined?(HELP)
|
8
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
8
9
|
HELP = 'Show "maximum length" settings'
|
9
|
-
NAME = File.basename(__FILE__, '.rb')
|
10
|
-
PREFIX = %W(show #{NAME})
|
11
10
|
MIN_ABBREV = NAME.size
|
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/subsubcmd'
|
4
4
|
require_relative '../base/subsubmgr'
|
5
5
|
|
6
6
|
class Trepan::SubSubcommand::ShowTrace < Trepan::SubSubcommandMgr
|
7
7
|
|
8
8
|
unless defined?(HELP)
|
9
|
+
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
9
10
|
HELP = "Show event tracing printing"
|
10
|
-
NAME = File.basename(__FILE__, '.rb')
|
11
|
-
PREFIX = %W(show #{NAME})
|
12
11
|
MIN_ABBREV = 'tr'.size
|
13
12
|
SHORT_HELP = HELP
|
14
13
|
end
|
data/processor/command/source.rb
CHANGED
@@ -1,54 +1,95 @@
|
|
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
|
+
require 'optparse'
|
3
4
|
|
4
5
|
# Our local modules
|
5
6
|
require_relative 'base/cmd'
|
6
7
|
require_relative '../../interface/script'
|
7
|
-
|
8
|
+
require_relative '../../io/null_output'
|
9
|
+
require_relative '../../app/default'
|
8
10
|
|
9
11
|
class Trepan::Command::SourceCommand < Trepan::Command
|
12
|
+
include Trepanning
|
10
13
|
unless defined?(HELP)
|
11
|
-
NAME
|
14
|
+
NAME = File.basename(__FILE__, '.rb')
|
12
15
|
HELP = <<-HELP
|
13
|
-
#{NAME} [
|
16
|
+
#{NAME} [options] FILE
|
17
|
+
|
18
|
+
options:
|
19
|
+
-q | --quiet | --no-quiet
|
20
|
+
-c | --continue | --no-continue
|
21
|
+
-Y | --yes | -N | --no
|
22
|
+
-v | --verbose | --no-verbose
|
14
23
|
|
15
24
|
Read debugger commands from a file named FILE. Optional -v switch
|
16
|
-
|
17
|
-
|
18
|
-
|
25
|
+
causes each command in FILE to be echoed as it is executed. Option -Y
|
26
|
+
sets the default value in any confirmation command to be 'yes' and -N
|
27
|
+
sets the default value to 'no'.
|
28
|
+
|
29
|
+
Option -q will turn off any debugger output that normally occurs in the
|
30
|
+
running of the program.
|
19
31
|
|
20
|
-
Note that the command startup file
|
32
|
+
Note that the command startup file #{Trepan::CMD_INITFILE_BASE} is read automatically
|
21
33
|
via a #{NAME} command the debugger is started.
|
22
34
|
|
23
35
|
An error in any command terminates execution of the command file
|
24
|
-
unless option -c is given.
|
36
|
+
unless option -c or --continue is given.
|
25
37
|
HELP
|
26
38
|
CATEGORY = 'support'
|
27
39
|
MIN_ARGS = 1 # Need at least this many
|
28
40
|
MAX_ARGS = nil
|
29
41
|
SHORT_HELP = 'Read and run debugger commands from a file'
|
42
|
+
|
43
|
+
DEFAULT_OPTIONS = {
|
44
|
+
:abort_on_error => false,
|
45
|
+
:confirm_val => false,
|
46
|
+
:quiet => false,
|
47
|
+
:verbose => false
|
48
|
+
}
|
49
|
+
|
30
50
|
end
|
31
51
|
|
32
|
-
def
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
52
|
+
def parse_options(options, args) # :nodoc
|
53
|
+
seen_yes_no = false
|
54
|
+
parser = OptionParser.new do |opts|
|
55
|
+
opts.on("-c", "--[no-]continue",
|
56
|
+
"Continue in the face of errors") do
|
57
|
+
|v|
|
58
|
+
options[:abort_on_error] = !v
|
59
|
+
end
|
60
|
+
opts.on("-v",
|
61
|
+
"--[no-]verbose", "echo each command as it is executed") do
|
62
|
+
|v|
|
63
|
+
options[:verbose] = v
|
64
|
+
end
|
65
|
+
opts.on("-N", "--no", "Use 'no' in any confirmation prompts") do
|
66
|
+
|v|
|
67
|
+
if seen_yes_no
|
68
|
+
msg("Yes/No option already seen. This option (no) ignored.")
|
69
|
+
end
|
70
|
+
options[:confirm_val] = false
|
71
|
+
end
|
72
|
+
opts.on("-q", "--[no-]quiet", "Silence debugger output") do
|
73
|
+
|v|
|
74
|
+
options[:quiet] = v
|
75
|
+
end
|
76
|
+
opts.on("-Y", "--yes", "Use 'yes' in any confirmation prompts") do
|
77
|
+
|v|
|
78
|
+
if seen_yes_no
|
79
|
+
msg("Yes/No option already seen. This option, --yes, ignored.")
|
80
|
+
end
|
81
|
+
options[:confirm_val] = true
|
82
|
+
seen_yes_no = true
|
50
83
|
end
|
51
84
|
end
|
85
|
+
parser.parse(args)
|
86
|
+
return options
|
87
|
+
end
|
88
|
+
|
89
|
+
def run(args)
|
90
|
+
options = parse_options(DEFAULT_OPTIONS.dup, args[1..-2])
|
91
|
+
intf = @proc.dbgr.intf
|
92
|
+
output = options[:quiet] ? Trepan::OutputNull.new(nil) : intf[-1].output
|
52
93
|
|
53
94
|
filename = args[-1]
|
54
95
|
|
@@ -59,7 +100,7 @@ unless option -c is given.
|
|
59
100
|
end
|
60
101
|
|
61
102
|
# Push a new debugger interface.
|
62
|
-
script_intf = Trepan::ScriptInterface.new(expanded_file, output,
|
103
|
+
script_intf = Trepan::ScriptInterface.new(expanded_file, output, options)
|
63
104
|
intf << script_intf
|
64
105
|
return false
|
65
106
|
end
|
@@ -69,6 +110,15 @@ end
|
|
69
110
|
if __FILE__ == $0
|
70
111
|
require_relative '../mock'
|
71
112
|
dbgr, cmd = MockDebugger::setup
|
113
|
+
%w(--quiet -q --no-quiet --continue --no-continue -c -v --verbose
|
114
|
+
--no-verbose).each do |opt|
|
115
|
+
puts "parsing #{opt}"
|
116
|
+
options =
|
117
|
+
cmd.parse_options(Trepan::Command::SourceCommand::DEFAULT_OPTIONS.dup,
|
118
|
+
opt)
|
119
|
+
p options
|
120
|
+
end
|
121
|
+
|
72
122
|
if ARGV.size >= 1
|
73
123
|
puts "running... #{cmd.name} #{ARGV}"
|
74
124
|
cmd.run([cmd.name, *ARGV])
|