mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
added StackTrace
This commit is contained in:
parent
fccd4f5b8e
commit
094df9253d
@ -7,6 +7,8 @@ import inspect
|
||||
import os
|
||||
import sys
|
||||
import random
|
||||
if __debug__:
|
||||
import traceback
|
||||
|
||||
from direct.directutil import Verify
|
||||
|
||||
@ -44,6 +46,33 @@ def writeFsmTree(instance, indent = 0):
|
||||
|
||||
|
||||
|
||||
|
||||
if __debug__:
|
||||
class StackTrace:
|
||||
def __init__(self, label="", start=0, limit=None):
|
||||
"""
|
||||
label is a string (or anything that be be a string)
|
||||
that is printed as part of the trace back.
|
||||
This is just to make it easier to tell what the
|
||||
stack trace is referring to.
|
||||
start is an integer number of stack frames back
|
||||
from the most recent. (This is automatically
|
||||
bumped up by one to skip the __init__ call
|
||||
to the StackTrace).
|
||||
limit is an integer number of stack frames
|
||||
to record (or None for unlimited).
|
||||
"""
|
||||
self.label = label
|
||||
self.trace = traceback.extract_stack(sys._getframe(1+start), limit=10)
|
||||
|
||||
def __str__(self):
|
||||
r = "Debug stack trace of %s (back %s frames):\n"%(
|
||||
self.label, len(self.trace),)
|
||||
for i in traceback.format_list(self.trace):
|
||||
r+=i
|
||||
return r
|
||||
|
||||
|
||||
|
||||
def traceFunctionCall(frame):
|
||||
"""
|
||||
@ -87,7 +116,6 @@ def printThisCall():
|
||||
return 1 # to allow "assert printThisCall()"
|
||||
|
||||
|
||||
|
||||
def tron():
|
||||
sys.settrace(trace)
|
||||
def trace(frame, event, arg):
|
||||
@ -106,7 +134,6 @@ def troff():
|
||||
|
||||
|
||||
|
||||
|
||||
def apropos(obj, *args):
|
||||
"""
|
||||
Obsolete, use pdir
|
||||
|
Loading…
x
Reference in New Issue
Block a user