1234567891011121314151617181920212223242526272829303132333435 |
- import os
- import sys
- import ast
- def info(msg):
- print(os.path.basename(sys.argv[0]) + ": " + msg)
- def warn(msg):
- print(os.path.basename(sys.argv[0]) + ": " + msg, file=sys.stderr)
- def fatal(msg):
- warn(msg)
- exit(1)
- def load_map(path):
- fd = open(path, "r")
- # check the header
- if fd.readline() != 'OFFSET\tSIZE\tNAME\tID\tSTRING\n':
- fatal("invalid map file")
- # parse symbols
- syms = []
- for line in fd:
- line = line.rstrip('\n')
- offset, size, name, tr_id, data = line.split('\t', 4)
- data = ast.literal_eval(data)
- tr_id = int(tr_id) if len(tr_id) else None
- syms.append({'offset': int(offset, 16),
- 'size': int(size, 16),
- 'id': tr_id,
- 'name': name,
- 'data': data})
- return syms
|