Bug #1055168: calling pdb.set_trace() calls Bdb.set_trace, which made
the debugger enter inside pdb.set_trace.

Patch #1061767: make pdb.set_trace enter enter at the stack frame
calling pdb.set_trace().
diff --git a/Lib/bdb.py b/Lib/bdb.py
index dacbcc0..8f808cc 100644
--- a/Lib/bdb.py
+++ b/Lib/bdb.py
@@ -178,9 +178,13 @@
         self.returnframe = frame
         self.quitting = 0
 
-    def set_trace(self):
-        """Start debugging from here."""
-        frame = sys._getframe().f_back
+    def set_trace(self, frame=None):
+        """Start debugging from `frame`.
+
+        If frame is not specified, debugging starts from caller's frame.
+        """
+        if frame is None:
+            frame = sys._getframe().f_back
         self.reset()
         while frame:
             frame.f_trace = self.trace_dispatch