Merged revisions 72322 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r72322 | georg.brandl | 2009-05-05 10:54:11 +0200 (Di, 05 Mai 2009) | 1 line

  #5142: add module skipping feature to pdb.
........
This commit is contained in:
Georg Brandl 2009-05-05 09:00:19 +00:00
parent 991f9202be
commit 243ad66ba6
5 changed files with 164 additions and 7 deletions

View file

@ -1,5 +1,6 @@
"""Debugger basics"""
import fnmatch
import sys
import os
import types
@ -19,7 +20,8 @@ class Bdb:
The standard debugger class (pdb.Pdb) is an example.
"""
def __init__(self):
def __init__(self, skip=None):
self.skip = set(skip) if skip else None
self.breaks = {}
self.fncache = {}
@ -94,9 +96,18 @@ class Bdb:
# methods, but they may if they want to redefine the
# definition of stopping and breakpoints.
def is_skipped_module(self, module_name):
for pattern in self.skip:
if fnmatch.fnmatch(module_name, pattern):
return True
return False
def stop_here(self, frame):
# (CT) stopframe may now also be None, see dispatch_call.
# (CT) the former test for None is therefore removed from here.
if self.skip and \
self.is_skipped_module(frame.f_globals.get('__name__')):
return False
if frame is self.stopframe:
return frame.f_lineno >= self.stoplineno
while frame is not None and frame is not self.stopframe: