'Execute until the function returns to a relevant caller.'

def _finish_frame(self):

    while True:
        result = self._finish()
        try:
            frame = gdb.selected_frame()
        except RuntimeError:
            break
        hitbp = re.search('Breakpoint    (\\d+)', result)
        is_relevant = self.lang_info.is_relevant_function(frame)
        if (hitbp or is_relevant or self.stopped()):
            break
    return result
