Hari Sekhon wrote: > The problem is that the excepthook gives the line of the topmost called > function rather that the actual line that generated the error the way > you get it with a normal traceback.
A look into the traceback module shows that tracebacks are stored as a linked list. Here's a way to get hold of its tail: def tbiter(tb): while tb is not None: yield tb tb = tb.tb_next def last(items): for item in items: pass return item # example usage def myexcepthook(type, value, tb): tb_tail = last(tbiter(tb)) print tb_tail.tb_lineno Peter -- http://mail.python.org/mailman/listinfo/python-list