如何直接步入 Ruby 调试器中的代码块?

9
在以下的Ruby代码中:
#! /usr/bin/env ruby

require 'debugger'

def hello
  puts "hello"
  if block_given?
    yield
  end 
end 

def main
  debugger
  puts "test begin..."
  hello do   # <=  if you are here
    puts "here!" #<= how to get here without setting bp here or step into hello?
  end 
end 

main

在调试过程中,经常会遇到这样的情况,我并不关心将控制权传递给块的函数的实现,我只想直接步入块中,而不需要手动在那里设置断点。

在ruby-debug19或调试器中是否支持这种“步入块”的功能?

1个回答

20

你尝试过使用 "c" 命令来执行 "continue" 操作吗?该命令可选地接受行号参数,因此,根据你的代码示例,尝试执行以下命令:

c 16

这就是我所期望的“进入当前块”的最接近方式,谢谢! - Xiaotian Guo
那有什么帮助呢?c不是只会让它一直运行到结尾吗? - Leopd
"c 16" 将一直运行到第 16 行。根据文档: "可选参数 line-specification 允许您指定一个行号来设置一次性断点,该断点在达到该断点时被删除。" - the Tin Man

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接