diff options
author | Jason Stubbs <jstubbs@gentoo.org> | 2005-12-23 02:46:03 +0000 |
---|---|---|
committer | Jason Stubbs <jstubbs@gentoo.org> | 2005-12-23 02:46:03 +0000 |
commit | 853882e3805e31de0e732b5467cd6d8a76bb2a86 (patch) | |
tree | 65c8df6bacdcd7e7786928ea74a2497991b75457 /pym/portage_util.py | |
parent | 57271bf98ed6d7c318a4e78924e9b4b654a566a4 (diff) | |
download | portage-853882e3805e31de0e732b5467cd6d8a76bb2a86.tar.gz portage-853882e3805e31de0e732b5467cd6d8a76bb2a86.tar.bz2 portage-853882e3805e31de0e732b5467cd6d8a76bb2a86.zip |
Generalize portage_util.dump_traceback() and make use of it if importing
a cache module fails.
svn path=/main/trunk/; revision=2439
Diffstat (limited to 'pym/portage_util.py')
-rw-r--r-- | pym/portage_util.py | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/pym/portage_util.py b/pym/portage_util.py index 9c521ab8a..090ce6735 100644 --- a/pym/portage_util.py +++ b/pym/portage_util.py @@ -456,11 +456,19 @@ def unique_array(array): return mya -def dump_traceback(msg): +def dump_traceback(msg, noiselevel=1): import sys, traceback - writemsg("\n====================================\n", noiselevel=1) - writemsg("Warning: %s\n" % msg, noiselevel=1) - for line in traceback.format_list(traceback.extract_stack()[:-1]): - writemsg(line, noiselevel=1) - writemsg("Please file a bug for %s\n" % sys.argv[0], noiselevel=1) - writemsg("====================================\n\n", noiselevel=1) + info = sys.exc_info() + if not info[2]: + stack = traceback.extract_stack()[:-1] + error = None + else: + stack = traceback.extract_tb(info[2]) + error = str(info[1]) + writemsg("\n====================================\n", noiselevel=noiselevel) + writemsg("%s\n\n" % msg, noiselevel=noiselevel) + for line in traceback.format_list(stack): + writemsg(line, noiselevel=noiselevel) + if error: + writemsg(error+"\n", noiselevel=noiselevel) + writemsg("====================================\n\n", noiselevel=noiselevel) |