bpdb - fix bpgroup static=1 behavior for when bpdb is disabled

This commit is contained in:
Ken Patel 2010-04-28 21:16:25 +00:00
parent c489fbeefc
commit ff599cf9ab

View File

@ -4370,15 +4370,15 @@ class BpDb:
return bpdb.enabled
@staticmethod
def bp(id=None, grp=None, cfg=None, iff=True, frameCount=1):
def bp(id=None, grp=None, cfg=None, iff=True, test=None, frameCount=1):
if not bpdb.enabled or not bpdb.verifyEnabled():
return
bpi = bp(id=id, grp=grp, cfg=cfg, iff=iff,frameCount=frameCount+1)
bpi.maybeBreak(frameCount=frameCount+1)
bpi = bp(id=id, grp=grp, cfg=cfg, iff=iff, frameCount=frameCount+1)
bpi.maybeBreak(test=test, frameCount=frameCount+1)
@staticmethod
def bpCall(id=None,grp=None,cfg=None,iff=True,frameCount=1,onEnter=1,onExit=0):
def bpCall(id=None,grp=None,cfg=None,iff=True,test=None,frameCount=1,onEnter=1,onExit=0):
def decorator(f):
return f
@ -4394,10 +4394,10 @@ class BpDb:
#create our bp object
dbp = bp(id=id or f.__name__, grp=bpi.grp, cfg=bpi.cfg, iff=iff, frameCount=frameCount+1)
if onEnter:
dbp.maybeBreak(iff=iff,frameCount=frameCount+1,displayPrefix='Calling ')
dbp.maybeBreak(iff=iff,test=test,frameCount=frameCount+1,displayPrefix='Calling ')
f_result = f(*args, **kwds)
if onExit:
dbp.maybeBreak(iff=iff,frameCount=frameCount+1,displayPrefix='Exited ')
dbp.maybeBreak(iff=iff,test=test,frameCount=frameCount+1,displayPrefix='Exited ')
return f_result
wrap.func_name = f.func_name
@ -4410,18 +4410,17 @@ class BpDb:
@staticmethod
def bpGroup(*args, **kArgs):
if not bpdb.enabled or not bpdb.verifyEnabled():
def functor(*cArgs, **ckArgs):
return
return functor
argsCopy = args[:]
def functor(*cArgs, **ckArgs):
kwArgs = kArgs
kwArgs.update(ckArgs)
kwArgs.pop('static', None)
kwArgs['frameCount'] = ckArgs.get('frameCount',1)+1
return bpdb.bp(*(cArgs), **kwArgs)
return
if bpdb.enabled and bpdb.verifyEnabled():
argsCopy = args[:]
def functor(*cArgs, **ckArgs):
kwArgs = kArgs
kwArgs.update(ckArgs)
kwArgs.pop('static', None)
kwArgs['frameCount'] = ckArgs.get('frameCount',1)+1
return bpdb.bp(*(cArgs), **kwArgs)
if kArgs.get('static'):
return staticmethod(functor)
@ -4614,16 +4613,22 @@ class bp:
bpdb.grpInfos[grp][id] = {}
print '%s has been reset.'%(self.prettyName(id,grp,q=1),)
def maybeBreak(self, iff=True, frameCount=1,displayPrefix=''):
if self.shouldBreak(iff):
def maybeBreak(self, iff=True, test=None, frameCount=1, displayPrefix=''):
if self.shouldBreak(iff=iff, test=test):
self.doBreak(frameCount=frameCount+1,displayPrefix=displayPrefix)
def shouldBreak(self,iff=True):
def shouldBreak(self,iff=True, test=None):
#check easy early out
if self.disabled:
return False
if not self.iff or not iff:
return False
if test:
if not isinstance(test, (list, tuple)):
test = (test,)
for atest in test:
if not atest():
return False
#make sure we exist
self.makeIdGrp(self.id,self.grp)