Sha256: 03f757a2618ed66994507453c4134492f62fd9ec5bd9d428423a646f654a37a7

Contents?: true

Size: 1.45 KB

Versions: 6770

Compression:

Stored size: 1.45 KB

Contents

# frozen_string_literal: true

require "pathname"
require_relative "../command"
require_relative "../helpers/frame"
require_relative "../helpers/parse"

module Byebug
  #
  # Move to specific frames in the backtrace.
  #
  class FrameCommand < Command
    include Helpers::FrameHelper
    include Helpers::ParseHelper

    self.allow_in_post_mortem = true

    def self.regexp
      /^\s* f(?:rame)? (?:\s+(\S+))? \s*$/x
    end

    def self.description
      <<-DESCRIPTION
        f[rame][ frame-number]

        #{short_description}

        If a frame number has been specified, to moves to that frame. Otherwise
        it moves to the newest frame.

        A negative number indicates position from the other end, so "frame -1"
        moves to the oldest frame, and "frame 0" moves to the newest frame.

        Without an argument, the command prints the current stack frame. Since
        the current position is redisplayed, it may trigger a resyncronization
        if there is a front end also watching over things.

        Use the "bt" command to find out where you want to go.
      DESCRIPTION
    end

    def self.short_description
      "Moves to a frame in the call stack"
    end

    def execute
      return print(pr("frame.line", context.frame.to_hash)) unless @match[1]

      pos, err = get_int(@match[1], "Frame")
      return errmsg(err) unless pos

      switch_to_frame(pos)

      ListCommand.new(processor).execute if Setting[:autolist]
    end
  end
end

Version data entries

6,770 entries across 6,767 versions & 30 rubygems

Version Path
cybrid_api_organization_ruby-0.123.124 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_id_ruby-0.123.124 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_bank_ruby-0.123.123 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_id_ruby-0.123.123 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_organization_ruby-0.123.123 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_bank_ruby-0.123.122 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_organization_ruby-0.123.122 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_id_ruby-0.123.122 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_bank_ruby-0.123.121 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_id_ruby-0.123.121 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_organization_ruby-0.123.121 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_bank_ruby-0.123.120 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_organization_ruby-0.123.120 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_id_ruby-0.123.120 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
avalara_sdk-24.12.0 vendor/bundle/ruby/2.7.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_bank_ruby-0.123.119 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_organization_ruby-0.123.119 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_id_ruby-0.123.119 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_bank_ruby-0.123.118 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb
cybrid_api_id_ruby-0.123.118 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/frame.rb