Return self.trace_dispatch from dispatch_return() to enable stepping through generators. (An alternative would be to create a new "yield" debugger event, but that involves many more changes, and might break Bdb subclasses.)
diff --git a/Lib/bdb.py b/Lib/bdb.py
index 3fdfbdd..7326a72 100644
--- a/Lib/bdb.py
+++ b/Lib/bdb.py
@@ -74,6 +74,7 @@
if self.stop_here(frame) or frame == self.returnframe:
self.user_return(frame, arg)
if self.quitting: raise BdbQuit
+ return self.trace_dispatch
def dispatch_exception(self, frame, arg):
if self.stop_here(frame):