# -*- Mode: Python -*- import os import re import sys # 08135174 00000041 T PyRun_SimpleString fun_re = re.compile ('([0-9a-f]+) ([0-9a-f]+) [Tt] ([0-9A-Za-z_]+)\n') def get_syms(): pid = os.getpid() p = os.popen ('nm -C -S /proc/%d/file' % (pid,), 'r') d = {} while 1: line = p.readline() if not line: break else: probe = fun_re.match (line) if probe is not None: addr, size, name = probe.groups() d[int(addr,16)] = (name, int(size,16)) return d def get_range (d): max_addr = 0 min_addr = sys.maxint for k in d.iterkeys(): if k > max_addr: max_addr = k elif k < min_addr: min_addr = k return min_addr, max_addr if __name__ == '__main__': pass