116def traceExecution(script, level):
117 """Run script with the given trace level"""
118 import sys
119 import trace
120 ignore_dirs = []
121 ignore_mods = []
122
123
124 if level > 0:
125 ignore_dirs = [x for x in sys.path if x.find("ROOT")!=-1]
126 ignore_dirs.append(sys.prefix)
127 if level > 1:
128 ignore_mods += ['_db', '__init__', '_configurables', 'GaudiHandles', 'six']
129 if level > 2:
130 ignore_mods += [
131
132 'Configurable','Configurables','PropertyProxy','DataHandle','ConfigurableDb',
133 'ConfigurableMeta', 'CfgMgr',
134
135 'ComponentAccumulator','Logging','AthConfigFlags','AllConfigFlags','Deduplication',
136 'semantics','AccumulatorCache','DebuggingContext','AtlasSemantics','ComponentFactory',
137 'LegacySupport','ItemListSemantics'
138 ]
139
140
141 tracer = trace.Trace(ignoredirs=ignore_dirs, ignoremods=ignore_mods)
142
143 with io.open_code(script) as f:
144 code = compile(f.read(), script, 'exec')
145 tracer.run(code)