charify pdb visible stack end finding by turning it into a function
This commit is contained in:
parent
73446e98be
commit
55c349a9eb
|
@ -86,15 +86,20 @@ def _postmortem_traceback(excinfo):
|
||||||
return excinfo._excinfo[2]
|
return excinfo._excinfo[2]
|
||||||
|
|
||||||
|
|
||||||
|
def _find_last_non_hidden_frame(stack):
|
||||||
|
i = max(0, len(stack) - 1)
|
||||||
|
while i and stack[i][0].f_locals.get("__tracebackhide__", False):
|
||||||
|
i -= 1
|
||||||
|
return i
|
||||||
|
|
||||||
|
|
||||||
def post_mortem(t):
|
def post_mortem(t):
|
||||||
pdb = py.std.pdb
|
pdb = py.std.pdb
|
||||||
class Pdb(pdb.Pdb):
|
class Pdb(pdb.Pdb):
|
||||||
def get_stack(self, f, t):
|
def get_stack(self, f, t):
|
||||||
stack, i = pdb.Pdb.get_stack(self, f, t)
|
stack, i = pdb.Pdb.get_stack(self, f, t)
|
||||||
if f is None:
|
if f is None:
|
||||||
i = max(0, len(stack) - 1)
|
i = _find_last_non_hidden_frame(stack)
|
||||||
while i and stack[i][0].f_locals.get("__tracebackhide__", False):
|
|
||||||
i-=1
|
|
||||||
return stack, i
|
return stack, i
|
||||||
p = Pdb()
|
p = Pdb()
|
||||||
p.reset()
|
p.reset()
|
||||||
|
|
Loading…
Reference in New Issue