1"""SCons.Debug 2 3Code for debugging SCons internal things. Shouldn't be 4needed by most users. 5 6""" 7 8# 9# Copyright (c) 2001 - 2014 The SCons Foundation 10# 11# Permission is hereby granted, free of charge, to any person obtaining 12# a copy of this software and associated documentation files (the 13# "Software"), to deal in the Software without restriction, including 14# without limitation the rights to use, copy, modify, merge, publish, 15# distribute, sublicense, and/or sell copies of the Software, and to 16# permit persons to whom the Software is furnished to do so, subject to 17# the following conditions: 18# 19# The above copyright notice and this permission notice shall be included 20# in all copies or substantial portions of the Software. 21# 22# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY 23# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 24# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 25# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 26# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 27# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 28# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29# 30 31__revision__="src/engine/SCons/Debug.py 2014/09/27 12:51:43 garyo" 32 33importos 34importsys 35importtime 36importweakref 37 38# Global variable that gets set to 'True' by the Main script, 39# when the creation of class instances should get tracked. 40track_instances=False 41# List of currently tracked classes 42tracked_classes={} 43

117importtraceback118tb=traceback.extract_stack()119# strip itself and the caller from the output120tb=tb[:-2]121result=[]122forbackintb:123# (filename, line number, function name, text)124key=back[:3]125result.append('%s:%d(%s)'%func_shorten(key))126returnresult