lib/byebug/commands/where.rb
require 'pathname' require 'byebug/command' require 'byebug/helpers/frame' module Byebug # # Show current backtrace. # class WhereCommand < Command include Helpers::FrameHelper self.allow_in_post_mortem = true def self.regexp /^\s* (?:w(?:here)?|bt|backtrace) \s*$/x end def self.description <<-EOD w[here]|bt|backtrace #{short_description} Print the entire stack frame. Each frame is numbered; the most recent frame is 0. A frame number can be referred to in the "frame" command. "up" and "down" add or subtract respectively to frame numbers shown. The position of the current frame is marked with -->. C-frames hang from their most immediate Ruby frame to indicate that they are not navigable. EOD end def self.short_description 'Displays the backtrace' end def execute print_backtrace end private def print_backtrace bt = prc('frame.line', (0...context.stack_size)) do |_, index| Frame.new(context, index).to_hash end print(bt) end end end