[Python-checkins] CVS: python/dist/src/Tools/compiler dumppyc.py,NONE,1.1
Jeremy Hylton
python-dev@python.org
Mon, 9 Oct 2000 07:35:27 -0700
Update of /cvsroot/python/python/dist/src/Tools/compiler
In directory slayer.i.sourceforge.net:/tmp/cvs-serv21101
Added Files:
dumppyc.py
Log Message:
read in a .pyc file and disassemble the code objects
--- NEW FILE ---
#! /usr/bin/env python
import marshal
import dis
import types
def dump(obj):
print obj
for attr in dir(obj):
print "\t", attr, repr(getattr(obj, attr))
def loadCode(path):
f = open(path)
f.read(8)
co = marshal.load(f)
f.close()
return co
def walk(co, match=None):
if match is None or co.co_name == match:
dump(co)
print
dis.dis(co)
for obj in co.co_consts:
if type(obj) == types.CodeType:
walk(obj, match)
def main(filename, codename=None):
co = loadCode(filename)
walk(co, codename)
if __name__ == "__main__":
import sys
if len(sys.argv) == 3:
filename, codename = sys.argv[1:]
else:
filename = sys.argv[1]
codename = None
main(filename, codename)