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

Reply via email to