Sha256: 9749e43d9ad713d8ca40a4ca54584a47527a5729194f480fab89761bba76e96d

Contents?: true

Size: 1.12 KB

Versions: 4

Compression:

Stored size: 1.12 KB

Contents

# -*- coding: utf-8 -*-
# Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
require_relative '../base/subcmd'

class Trepan::Subcommand::InfoReturn < Trepan::Subcommand
  unless defined?(HELP)
    HELP         = 'Show the value about to be returned'
    MIN_ABBREV   = 'ret'.size # Note we have "info registers"
    NAME         = File.basename(__FILE__, '.rb')
    NEED_STACK   = true
    PREFIX       = %w(info return)
  end

  def run(args)
    event = @proc.event
    if %w(return c-return).member?(event)
      ret_val = Trepan::Frame.value_returned(@proc.frame, event)
      msg('Return value: %s' % ret_val.inspect)
    else
      errmsg('You need to be in a return event to do this. Event is %s' % 
             event)
    end
  end

end

if __FILE__ == $0
  # Demo it.
  require_relative '../../mock'
  require_relative '../../subcmd'
  name = File.basename(__FILE__, '.rb')

  # FIXME: DRY the below code
  dbgr, cmd = MockDebugger::setup('info')
  subcommand = Trepan::Subcommand::InfoReturn.new(cmd)
  testcmdMgr = Trepan::Subcmd.new(subcommand)

  name = File.basename(__FILE__, '.rb')
  subcommand.summary_help(name)
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
trepanning-0.0.9 processor/command/info_subcmd/return.rb
trepanning-0.0.8 processor/command/info_subcmd/return.rb
trepanning-0.0.6 processor/command/info_subcmd/return.rb
trepanning-0.0.4 processor/command/info_subcmd/return.rb