From b769e80056908b4ea66a3e2f7c1ecb251dab4f04 Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Mon, 9 Oct 2000 14:35:24 +0000 Subject: read in a .pyc file and disassemble the code objects --- Tools/compiler/dumppyc.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 Tools/compiler/dumppyc.py diff --git a/Tools/compiler/dumppyc.py b/Tools/compiler/dumppyc.py new file mode 100755 index 0000000..4ab9821 --- /dev/null +++ b/Tools/compiler/dumppyc.py @@ -0,0 +1,39 @@ +#! /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) -- cgit v0.12