class Byebug::Breakpoint
def self.potential_lines(filename)
-
filename
(String
) -- File name to inspect for possible breakpoints
def self.potential_lines(filename) name, lines = "#{Time.new.to_i}_#{rand(2**31)}", {} iseq = RubyVM::InstructionSequence.compile(File.read(filename), name) iseq.disasm.each_line do |line| res = /^\d+ (?<insn>\w+)\s+.+\(\s*(?<lineno>\d+)\)$/.match(line) next unless res && res[:insn] == 'trace' lines[res[:lineno].to_i] = true end lines.keys end