提交 f92156d5 编写于 作者: J James Troup

Add print_exc(), debug traceback printing

上级 c41cc296
......@@ -2,7 +2,7 @@
# Utility functions
# Copyright (C) 2000, 2001, 2002 James Troup <james@nocrew.org>
# $Id: utils.py,v 1.51 2002-10-16 02:47:32 troup Exp $
# $Id: utils.py,v 1.52 2002-11-22 04:06:34 troup Exp $
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -20,7 +20,7 @@
################################################################################
import commands, os, pwd, re, socket, shutil, string, sys, tempfile;
import commands, os, pwd, re, socket, shutil, string, sys, tempfile, traceback;
import apt_pkg;
import db_access;
......@@ -616,6 +616,33 @@ def parse_args(Options):
################################################################################
# Inspired(tm) by Bryn Keller's print_exc_plus (See
# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52215)
def print_exc():
tb = sys.exc_info()[2];
while tb.tb_next:
tb = tb.tb_next;
stack = [];
frame = tb.tb_frame;
while frame:
stack.append(frame);
frame = frame.f_back;
stack.reverse();
traceback.print_exc();
for frame in stack:
print "\nFrame %s in %s at line %s" % (frame.f_code.co_name,
frame.f_code.co_filename,
frame.f_lineno);
for key, value in frame.f_locals.items():
print "\t%20s = " % key,;
try:
print value;
except:
print "<unable to print>";
################################################################################
apt_pkg.init()
Cnf = apt_pkg.newConfiguration();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册