def locate_line(line, cm=self)
      ## p [cm, lines_of_method(cm)]
      ip = locate_line_in_cm(line, cm)
      return cm, ip if ip

      # Didn't find line in this CM, so check if a contained
      # CM encompasses the line searched for
      cm.child_methods.each do |child|
        if res = locate_line(line, child)
          return res
        end
      end

      # No child method is a match - fail
      return nil
    end
def locate_line(line, cm=self)
      ## p [cm, lines_of_method(cm)]
      ip = locate_line_in_cm(line, cm)
      return cm, ip if ip

      # Didn't find line in this CM, so check if a contained
      # CM encompasses the line searched for
      cm.child_methods.each do |child|
        if res = locate_line(line, child)
          return res
        end
      end

      # No child method is a match - fail
      return nil
    end
FIXME: Try using Routine in Rubinius now.

 Locates the CompiledMethod and instruction address (IP) of the
 first instruction on the specified line. This method recursively
 examines child compiled methods until an exact match for the
 searched line is found.  It returns both the matching
 CompiledMethod and the IP of the first instruction on the
 requested line, or nil if no match for the specified line is
 found.

 @return [(Rubinius::CompiledMethod, Fixnum), NilClass] returns
   nil if nothing is found, else an array of size 2 containing the method
   the line was found in and the IP pointing there.