diff --git a/lib/debug/frame_info.rb b/lib/debug/frame_info.rb index d5ead8c03..b77333031 100644 --- a/lib/debug/frame_info.rb +++ b/lib/debug/frame_info.rb @@ -49,11 +49,10 @@ def name # p frame_type: frame_type, self: self case frame_type when :block - level, block_loc, _args = block_identifier + level, block_loc = block_identifier "block in #{block_loc}#{level}" when :method - ci, _args = method_identifier - "#{ci}" + method_identifier when :c c_identifier when :other @@ -83,16 +82,13 @@ def frame_type def block_identifier return unless frame_type == :block - args = parameters_info _, level, block_loc = location.label.match(BLOCK_LABL_REGEXP).to_a - [level || "", block_loc, args] + [level || "", block_loc] end def method_identifier return unless frame_type == :method - args = parameters_info - ci = "#{klass_sig}#{callee}" - [ci, args] + "#{klass_sig}#{callee}" end def c_identifier @@ -138,6 +134,17 @@ def local_variables end end + def parameters_info + vars = iseq.parameters_symbols + vars.map{|var| + begin + { name: var, value: DEBUGGER__.safe_inspect(local_variable_get(var), short: true) } + rescue NameError, TypeError + nil + end + }.compact + end + private def get_singleton_class obj @@ -150,17 +157,6 @@ def get_singleton_class obj local_variables[var] end - def parameters_info - vars = iseq.parameters_symbols - vars.map{|var| - begin - { name: var, value: DEBUGGER__.safe_inspect(local_variable_get(var), short: true) } - rescue NameError, TypeError - nil - end - }.compact - end - def klass_sig if self.class == get_singleton_class(self.self) "#{self.self}." diff --git a/lib/debug/thread_client.rb b/lib/debug/thread_client.rb index 64fc23939..471715868 100644 --- a/lib/debug/thread_client.rb +++ b/lib/debug/thread_client.rb @@ -50,7 +50,8 @@ def default_frame_formatter frame call_identifier_str = case frame.frame_type when :block - level, block_loc, args = frame.block_identifier + level, block_loc = frame.block_identifier + args = frame.parameters_info if !args.empty? args_str = " {|#{assemble_arguments(args)}|}" @@ -58,7 +59,8 @@ def default_frame_formatter frame "#{colorize_blue("block")}#{args_str} in #{colorize_blue(block_loc + level)}" when :method - ci, args = frame.method_identifier + ci = frame.method_identifier + args = frame.parameters_info if !args.empty? args_str = "(#{assemble_arguments(args)})"