docs: def _BacktraceFromFramePtr(self, frame_ptr):
      """Assembles and returns what looks exactly like python's backtraces."""
      # expects frame_ptr to be a gdb.Value
      frame_objs = [PyFrameObjectPtr(frame) for frame
                    in self._IterateChainedList(frame_ptr, 'f_back')]
  
      # We want to output tracebacks in the same format python uses, so we have to
      # reverse the stack
      frame_objs.reverse()
      tb_strings = ['Traceback (most recent call last):']
      for frame in frame_objs:
        line_string = ('  File "%s", line %s, in %s' %
                       (frame.filename(),
                        str(frame.current_line_num()),
                        frame.co_name.proxyval(set())))
        tb_strings.append(line_string)
        line_string = '    %s' % frame.current_line().strip()
        tb_strings.append(line_string)
      return '\n'.join(tb_strings)