def f(): return [i for i in range(2)] from dis import dis import sys, opcode dis(f) print('listcomp:') dis(f.__code__.co_consts[1]) events = [] def tracefunc(frame, what, arg): if what == 'line': events.append("%d %d %s" % (frame.f_lineno, frame.f_lasti, opcode.opname[frame.f_code.co_code[frame.f_lasti]])) return tracefunc sys.settrace(tracefunc) f() sys.settrace(None) print(events)