Вы определяете такую функцию ( здесь ):
def raiseErr():
for f in inspect.stack(): print '-', inspect.getframeinfo(f[0])
и вызываете ее из своих модулей так:
raiseErr()
Функция подъемErr напечатает информацию о месте, где вы его назвали.
Более подробно, вы можете сделать это:
import inspect, traceback
A = [inspect.getframeinfo(f[0]) for f in inspect.stack()]
print "traceback structure fields:", filter(lambda s: s[0] != '_', dir(A[0]))
print A[0].filename, A[0].lineno
for f in inspect.stack():
F = inspect.getframeinfo(f[0])
print '-', F.filename, F.lineno, '\t', F.code_context[0].strip()
Другая возможность - определить эту функцию:
def tr():
print '* - '*10,
print sys._getframe(1).f_code.co_name
И назовите это в том месте, где вам нужен след.Если вы хотите всю трассировку, сделайте итератор от 1 до _getframe(1)
.