Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

DRY finish code and make it work. Add META's.

  • Loading branch information...
commit 5de7742daafe316b89bdeb9213155166f8a7cbdd 1 parent 14d4b17
Rocky Bernstein authored
View
1  MANIFEST
@@ -160,7 +160,6 @@ t/10test-db-brkpt.t
t/10test-intf-script.t
t/10test-intf-user.t
t/10test-io-stringarray.t
-t/10test-io-tcppack.pm
t/10test-io-tcppack.t
t/10test-linecache.t
t/10test-load.t
View
502 META.json
@@ -0,0 +1,502 @@
+{
+ "abstract" : "Modular Perl Debugger (akin to Ruby \"Trepanning\" Debuggers).",
+ "author" : [
+ "Rocky Bernstein <rocky@cpan.org>"
+ ],
+ "dynamic_config" : 1,
+ "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112621",
+ "license" : [
+ "open_source"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "Devel-Trepan",
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "String::Diff" : 0
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "Module::Build" : "0.38"
+ }
+ },
+ "runtime" : {
+ "requires" : {
+ "Array::Columnize" : "v0.3.5",
+ "Data::Dumper::Perltidy" : 0,
+ "Digest::SHA1" : "2.13",
+ "ExtUtils::PkgConfig" : "1.03",
+ "Psh" : "v1.8.0",
+ "Syntax::Highlight::Perl::Improved" : 0,
+ "Test::More" : 0,
+ "perl" : "5.010",
+ "version" : 0
+ }
+ }
+ },
+ "provides" : {
+ "DB::LineCache" : {
+ "file" : "lib/Devel/Trepan/DB/LineCache.pm",
+ "version" : 0
+ },
+ "DBBreak" : {
+ "file" : "lib/Devel/Trepan/DB/Breakpoint.pm",
+ "version" : 0
+ },
+ "DBDisplay" : {
+ "file" : "lib/Devel/Trepan/DB/Display.pm",
+ "version" : 0
+ },
+ "Devel::Trepan" : {
+ "file" : "lib/Devel/Trepan.pm",
+ "version" : "v0.1.1"
+ },
+ "Devel::Trepan::BrkptMgr" : {
+ "file" : "lib/Devel/Trepan/BrkptMgr.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Action" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Action.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Alias" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Alias.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Backtrace" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Backtrace.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Break" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Break.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Condition" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Condition.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Continue" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Continue.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Delete" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Delete.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Disable" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Disable.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Display" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Display.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Down" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Down.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Edit" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Edit.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Enable" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Enable.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Eval" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Eval.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Finish" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Finish.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Frame" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Frame.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Help" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Help.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Info" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Info.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Info::Breakpoints" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Info_Subcmd/Breakpoints.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Info::Files" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Info_Subcmd/Files.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Info::Frame" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Info_Subcmd/Frame.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Info::Macros" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Info_Subcmd/Macros.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Info::Program" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Info_Subcmd/Program.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Info::Return" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Info_Subcmd/Return.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Kill" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Kill.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::List" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/List.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Macro" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Macro.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Next" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Next.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Quit" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Quit.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Restart" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Restart.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Abbrev" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Abbrev.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Auto" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Auto.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Auto::Eval" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Auto_Subcmd/Eval.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Auto::List" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Auto_Subcmd/List.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Basename" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Basename.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Confirm" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Confirm.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Different" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Different.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::EvalDisplay" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/EvalDisplay.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Highlight" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Highlight.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Max" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Max.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Max::List" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Max_Subcmd/List.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Max::Stack" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Max_Subcmd/Stack.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Max::String" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Max_Subcmd/String.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Max::Width" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Max_Subcmd/Width.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Return" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Return.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Timer" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Timer.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Trace" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Trace.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Set::Trace::Print" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Trace_Subcmd/Print.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::SetBoolSubcmd" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Core.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::SetBoolSubsubcmd" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Subsubcmd.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Shell" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Shell.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Abbrev" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Abbrev.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Aliases" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Aliases.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Auto" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Auto.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Auto::Eval" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Auto_Subcmd/Eval.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Auto::List" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Auto_Subcmd/List.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Basename" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Basename.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Confirm" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Confirm.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Different" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Different.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::EvalDisplay" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/EvalDisplay.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Highlight" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Highlight.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Max" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Max.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Max::List" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Max_Subcmd/List.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Max::Stack" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Max_Subcmd/Stack.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Max::String" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Max_Subcmd/String.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Max::Width" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Max_Subcmd/Width.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Timer" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Timer.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Trace" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Trace.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Trace::Print" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Trace_Subcmd/Print.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Show::Version" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Version.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::ShowBoolSubcmd" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Core.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::ShowBoolSubsubcmd" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Subsubcmd.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::ShowIntSubcmd" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Core.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::ShowIntSubsubcmd" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Subsubcmd.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Source" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Source.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Step" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Step.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Subcmd" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Core.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::SubcmdMgr" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Subcmd/SubMgr.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Subsubcmd" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Subsubcmd.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::SubsubcmdMgr" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Subcmd/SubsubMgr.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::TBreak" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/TBreak.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Unalias" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Unalias.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Undisplay" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Undisplay.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Command::Up" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Command/Up.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Hook" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Hook.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Mock" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Mock.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::CmdProcessor::Virtual" : {
+ "file" : "lib/Devel/Trepan/CmdProcessor/Virtual.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::Complete" : {
+ "file" : "lib/Devel/Trepan/Complete.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::Condition" : {
+ "file" : "lib/Devel/Trepan/Condition.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::Core" : {
+ "file" : "lib/Devel/Trepan/Core.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::DB::Colors" : {
+ "file" : "lib/Devel/Trepan/DB/Colors.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::DisplayMgr" : {
+ "file" : "lib/Devel/Trepan/DB/Display.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::IO::Input" : {
+ "file" : "lib/Devel/Trepan/IO/Input.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::IO::InputBase" : {
+ "file" : "lib/Devel/Trepan/IO.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::IO::NullOutput" : {
+ "file" : "lib/Devel/Trepan/IO/NullOutput.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::IO::Output" : {
+ "file" : "lib/Devel/Trepan/IO/Output.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::IO::OutputBase" : {
+ "file" : "lib/Devel/Trepan/IO.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::IO::StringArrayInput" : {
+ "file" : "lib/Devel/Trepan/IO/StringArray.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::IO::StringArrayOutput" : {
+ "file" : "lib/Devel/Trepan/IO/StringArray.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::Interface" : {
+ "file" : "lib/Devel/Trepan/Interface.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::Interface::Script" : {
+ "file" : "lib/Devel/Trepan/Interface/Script.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::Interface::User" : {
+ "file" : "lib/Devel/Trepan/Interface/User.pm",
+ "version" : 0
+ },
+ "Devel::Trepan::Options" : {
+ "file" : "lib/Devel/Trepan/Options.pm",
+ "version" : "0.10"
+ },
+ "Devel::Trepan::Util" : {
+ "file" : "lib/Devel/Trepan/Util.pm",
+ "version" : 0
+ },
+ "TrepanPosition" : {
+ "file" : "lib/Devel/Trepan/Position.pm",
+ "version" : 0
+ }
+ },
+ "release_status" : "stable",
+ "resources" : {
+ "license" : [
+ "http://opensource.org/licenses/gpl-license.php"
+ ]
+ },
+ "version" : "v0.1.1"
+}
View
368 META.yml
@@ -0,0 +1,368 @@
+---
+abstract: "Modular Perl Debugger (akin to Ruby \"Trepanning\" Debuggers)."
+author:
+ - 'Rocky Bernstein <rocky@cpan.org>'
+build_requires:
+ String::Diff: 0
+configure_requires:
+ Module::Build: 0.38
+dynamic_config: 1
+generated_by: 'Module::Build version 0.38, CPAN::Meta::Converter version 2.112621'
+license: open_source
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+name: Devel-Trepan
+provides:
+ DB::LineCache:
+ file: lib/Devel/Trepan/DB/LineCache.pm
+ version: 0
+ DBBreak:
+ file: lib/Devel/Trepan/DB/Breakpoint.pm
+ version: 0
+ DBDisplay:
+ file: lib/Devel/Trepan/DB/Display.pm
+ version: 0
+ Devel::Trepan:
+ file: lib/Devel/Trepan.pm
+ version: v0.1.1
+ Devel::Trepan::BrkptMgr:
+ file: lib/Devel/Trepan/BrkptMgr.pm
+ version: 0
+ Devel::Trepan::CmdProcessor:
+ file: lib/Devel/Trepan/CmdProcessor.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command:
+ file: lib/Devel/Trepan/CmdProcessor/Command.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Action:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Action.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Alias:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Alias.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Backtrace:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Backtrace.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Break:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Break.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Condition:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Condition.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Continue:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Continue.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Delete:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Delete.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Disable:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Disable.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Display:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Display.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Down:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Down.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Edit:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Edit.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Enable:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Enable.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Eval:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Eval.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Finish:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Finish.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Frame:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Frame.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Help:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Help.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Info:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Info.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Info::Breakpoints:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Info_Subcmd/Breakpoints.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Info::Files:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Info_Subcmd/Files.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Info::Frame:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Info_Subcmd/Frame.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Info::Macros:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Info_Subcmd/Macros.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Info::Program:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Info_Subcmd/Program.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Info::Return:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Info_Subcmd/Return.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Kill:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Kill.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::List:
+ file: lib/Devel/Trepan/CmdProcessor/Command/List.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Macro:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Macro.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Next:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Next.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Quit:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Quit.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Restart:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Restart.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Abbrev:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Abbrev.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Auto:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Auto.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Auto::Eval:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Auto_Subcmd/Eval.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Auto::List:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Auto_Subcmd/List.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Basename:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Basename.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Confirm:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Confirm.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Different:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Different.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::EvalDisplay:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/EvalDisplay.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Highlight:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Highlight.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Max:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Max.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Max::List:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Max_Subcmd/List.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Max::Stack:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Max_Subcmd/Stack.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Max::String:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Max_Subcmd/String.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Max::Width:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Max_Subcmd/Width.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Return:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Return.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Timer:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Timer.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Trace:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Trace.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Set::Trace::Print:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Set_Subcmd/Trace_Subcmd/Print.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::SetBoolSubcmd:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Core.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::SetBoolSubsubcmd:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Subsubcmd.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Shell:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Shell.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Abbrev:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Abbrev.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Aliases:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Aliases.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Auto:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Auto.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Auto::Eval:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Auto_Subcmd/Eval.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Auto::List:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Auto_Subcmd/List.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Basename:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Basename.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Confirm:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Confirm.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Different:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Different.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::EvalDisplay:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/EvalDisplay.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Highlight:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Highlight.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Max:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Max.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Max::List:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Max_Subcmd/List.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Max::Stack:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Max_Subcmd/Stack.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Max::String:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Max_Subcmd/String.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Max::Width:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Max_Subcmd/Width.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Timer:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Timer.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Trace:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Trace.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Trace::Print:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Trace_Subcmd/Print.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Show::Version:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Show_Subcmd/Version.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::ShowBoolSubcmd:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Core.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::ShowBoolSubsubcmd:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Subsubcmd.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::ShowIntSubcmd:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Core.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::ShowIntSubsubcmd:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Subsubcmd.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Source:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Source.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Step:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Step.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Subcmd:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Core.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::SubcmdMgr:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Subcmd/SubMgr.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Subsubcmd:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Subcmd/Subsubcmd.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::SubsubcmdMgr:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Subcmd/SubsubMgr.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::TBreak:
+ file: lib/Devel/Trepan/CmdProcessor/Command/TBreak.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Unalias:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Unalias.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Undisplay:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Undisplay.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Command::Up:
+ file: lib/Devel/Trepan/CmdProcessor/Command/Up.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Hook:
+ file: lib/Devel/Trepan/CmdProcessor/Hook.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Mock:
+ file: lib/Devel/Trepan/CmdProcessor/Mock.pm
+ version: 0
+ Devel::Trepan::CmdProcessor::Virtual:
+ file: lib/Devel/Trepan/CmdProcessor/Virtual.pm
+ version: 0
+ Devel::Trepan::Complete:
+ file: lib/Devel/Trepan/Complete.pm
+ version: 0
+ Devel::Trepan::Condition:
+ file: lib/Devel/Trepan/Condition.pm
+ version: 0
+ Devel::Trepan::Core:
+ file: lib/Devel/Trepan/Core.pm
+ version: 0
+ Devel::Trepan::DB::Colors:
+ file: lib/Devel/Trepan/DB/Colors.pm
+ version: 0
+ Devel::Trepan::DisplayMgr:
+ file: lib/Devel/Trepan/DB/Display.pm
+ version: 0
+ Devel::Trepan::IO::Input:
+ file: lib/Devel/Trepan/IO/Input.pm
+ version: 0
+ Devel::Trepan::IO::InputBase:
+ file: lib/Devel/Trepan/IO.pm
+ version: 0
+ Devel::Trepan::IO::NullOutput:
+ file: lib/Devel/Trepan/IO/NullOutput.pm
+ version: 0
+ Devel::Trepan::IO::Output:
+ file: lib/Devel/Trepan/IO/Output.pm
+ version: 0
+ Devel::Trepan::IO::OutputBase:
+ file: lib/Devel/Trepan/IO.pm
+ version: 0
+ Devel::Trepan::IO::StringArrayInput:
+ file: lib/Devel/Trepan/IO/StringArray.pm
+ version: 0
+ Devel::Trepan::IO::StringArrayOutput:
+ file: lib/Devel/Trepan/IO/StringArray.pm
+ version: 0
+ Devel::Trepan::Interface:
+ file: lib/Devel/Trepan/Interface.pm
+ version: 0
+ Devel::Trepan::Interface::Script:
+ file: lib/Devel/Trepan/Interface/Script.pm
+ version: 0
+ Devel::Trepan::Interface::User:
+ file: lib/Devel/Trepan/Interface/User.pm
+ version: 0
+ Devel::Trepan::Options:
+ file: lib/Devel/Trepan/Options.pm
+ version: 0.10
+ Devel::Trepan::Util:
+ file: lib/Devel/Trepan/Util.pm
+ version: 0
+ TrepanPosition:
+ file: lib/Devel/Trepan/Position.pm
+ version: 0
+requires:
+ Array::Columnize: v0.3.5
+ Data::Dumper::Perltidy: 0
+ Digest::SHA1: 2.13
+ ExtUtils::PkgConfig: 1.03
+ Psh: v1.8.0
+ Syntax::Highlight::Perl::Improved: 0
+ Test::More: 0
+ perl: 5.010
+ version: 0
+resources:
+ license: http://opensource.org/licenses/gpl-license.php
+version: v0.1.1
View
2  lib/Devel/Trepan/CmdProcessor.pm
@@ -342,8 +342,6 @@ sub process_commands($$$;$)
# }
}
$self->{cmdloop_posthooks}->run;
- $DB::single = $self->{DB_single};
- $DB::running = $self->{DB_running};
}
# run current_command, a string. @last_command is set after the
View
4 lib/Devel/Trepan/CmdProcessor/Command/Finish.pm
@@ -47,9 +47,9 @@ sub run($$) {
my ($self, $args) = @_;
my $proc = $self->{proc};
- my ($opts, $level_count) = ({}, 0);
+ my ($opts, $level_count) = ({}, 1);
if (scalar @$args != 1) {
- # Form is not "finish" which means "finish 0"
+ # Form is not "finish" which means "finish 1"
my $count_str = $args->[1];
$opts = {
msg_on_error =>
View
2  lib/Devel/Trepan/CmdProcessor/Location.pm
@@ -146,7 +146,7 @@ sub format_location($;$$$)
$self->{line_no} = $self->{frame}{line};
my $loc = $self->source_location_info;
- my $suffix = $event eq 'return' ? " $DB::_[0]" : '';
+ my $suffix = ($event eq 'return' && defined($DB::_[0])) ? " $DB::_[0]" : '';
"${ev} (${loc})$suffix"
}
View
6 lib/Devel/Trepan/CmdProcessor/Running.pm
@@ -105,8 +105,7 @@ sub next($$)
my ($self, $opts) = @_;
$self->{different_pos} = $opts->{different_pos};
$self->{leave_cmd_loop} = 1;
- $self->{DB_running} = 1;
- $self->{DB_single} = 2;
+ $self->{dbgr}->next;
}
sub step($$)
@@ -114,8 +113,7 @@ sub step($$)
my ($self, $opts) = @_;
$self->{different_pos} = $opts->{different_pos};
$self->{leave_cmd_loop} = 1;
- $self->{DB_running} = 1;
- $self->{DB_single} = 1;
+ $self->{dbgr}->step;
}
sub running_initialize($)
View
67 lib/Devel/Trepan/DB.pm
@@ -44,7 +44,8 @@ BEGIN {
# these are hardcoded in perl source (some are magical)
$DB::sub = ''; # name of current subroutine
- $DB::single = 0; # single-step flag (set it to 1 to enable stops in BEGIN/use)
+ $DB::single = 0; # single-step flags. See constants at the
+ # top of DB/Sub.pm
$DB::signal = 0; # signal flag (will cause a stop at the next line)
$DB::stop = 0; # value of last breakpoint condition evaluation
@@ -132,7 +133,7 @@ sub DB {
return unless $ready && !$in_debugger;
local $in_debugger = 1;
- ## print "+++ in DB\n";
+ # print "+++ in DB single: ${DB::single}\n";
@DB::_ = @_;
&save;
@@ -233,8 +234,10 @@ sub DB {
$event ||= 'return';
} elsif ($DB::trace ) {
$event ||= 'trace';
- } elsif ($DB::single) {
+ } elsif ($DB::single & (SINGLE_STEPPING_EVENT | NEXT_STEPPING_EVENT)) {
$event ||= 'line';
+ } elsif ($DB::single & DEEP_RECURSION_EVENT) {
+ $event ||= 'recurse overflow';
} else {
$event = 'unknown';
}
@@ -424,21 +427,21 @@ sub done {
}
sub _clientname {
- my $name = shift;
- "$name" =~ /^(.+)=[A-Z]+\(.+\)$/;
- return $1;
+ my $name = shift;
+ "$name" =~ /^(.+)=[A-Z]+\(.+\)$/;
+ return $1;
}
sub next {
- my $s = shift;
- $DB::single = 2;
- $running = 1;
+ my $s = shift;
+ $DB::single = NEXT_STEPPING_EVENT;
+ $DB::running = 1;
}
sub step {
my $s = shift;
- $DB::single = 1;
- $running = 1;
+ $DB::single = SINGLE_STEPPING_EVENT;
+ $DB::running = 1;
}
# cont
@@ -467,27 +470,29 @@ sub cont {
# stop before finishing the current subroutine
sub finish($;$$) {
- my $s = shift;
- # how many levels to get to DB sub?
- my $count = scalar @_ >= 1 ? shift : 1;
- my $scan_for_DB_sub = scalar @_ >= 1 ? shift : 1;
-
- if ($scan_for_DB_sub) {
- my $i = 0;
- while (my ($pkg, $file, $line, $fn) = caller($i++)) {
- if ('DB::DB' eq $fn or ('DB' eq $pkg && 'DB' eq $fn)) {
- $i -= 3;
- last;
- }
- }
- $count += $i;
- }
+ my $s = shift;
+ # how many levels to get to DB sub?
+ my $count = scalar @_ >= 1 ? shift : 1;
+ my $scan_for_DB_sub = scalar @_ >= 1 ? shift : 1;
+
+ if ($scan_for_DB_sub) {
+ my $i = 0;
+ while (my ($pkg, $file, $line, $fn) = caller($i++)) {
+ if ('DB::DB' eq $fn or ('DB' eq $pkg && 'DB' eq $fn)) {
+ # FIXME: This is hoaky. 4 is somehow how far off
+ # @stack is from caller.
+ $i -= 4;
+ last;
+ }
+ }
+ $count += $i;
+ }
- my $index = $#stack-$count;
- $index = 0 if $index < 0;
- $stack[$index] |= (SINGLE_STEPPING_EVENT | RETURN_EVENT);
- $DB::single = 1;
- $running = 1;
+ my $index = $#stack-$count;
+ $index = 0 if $index < 0;
+ $stack[$index] = RETURN_EVENT;
+ # $DB::single = RETURN_EVENT;
+ $DB::running = 1;
}
sub return_value($)
View
1  lib/Devel/Trepan/DB/Sub.pm
@@ -7,6 +7,7 @@ no warnings 'once';
use English qw( -no_match_vars );
use constant SINGLE_STEPPING_EVENT => 1;
+use constant NEXT_STEPPING_EVENT => 2;
use constant DEEP_RECURSION_EVENT => 4;
use constant RETURN_EVENT => 32;
View
4 t/20test-fin.t
@@ -4,4 +4,6 @@ use rlib '.';
use Helper;
my $test_prog = File::Spec->catfile(dirname(__FILE__), qw(.. lib Devel Trepan IO TCPPack.pm));
use Test::More 'no_plan';
-Helper::run_debugger("$test_prog", 'fin.cmd')
+Helper::run_debugger("$test_prog", 'fin.cmd');
+$test_prog = File::Spec->catfile(dirname(__FILE__), qw(.. example gcd.pl));
+Helper::run_debugger("$test_prog 3 5", 'fin2.cmd')
View
11 t/data/fin2.cmd
@@ -0,0 +1,11 @@
+# See that we can change return value ("set return") properly
+c gcd
+set return 5
+fin
+info return
+set return 10
+continue
+
+
+
+
View
14 t/data/fin2.right
@@ -0,0 +1,14 @@
+-- (gcd.pl:18)
+die sprintf "Need two integer arguments, got %d", scalar(@ARGV) unless
+x1 (gcd.pl:9)
+ my ($a, $b) = @_;
+*** We are not stopped at a return
+<- (gcd.pl:21) main::gcd
+printf "The GCD of %d and %d is %d\n", $a, $b, gcd($a, $b);
+Return array value for main::gcd is:
+$VAR1 = 1;
+
+Return array value set to:
+$VAR1 = 10;
+
+The GCD of 3 and 5 is 10
Please sign in to comment.
Something went wrong with that request. Please try again.