def vivEventsFromFile(filename):
with open(filename, "rb") as f:
vivsig = f.read(8)
# check for various viv serial formats
if vivsig != vivsig_cpickle:
# FIXME legacy file format.... ( eventually remove )
f.seek(0)
events = []
# Incremental changes are saved to the file by appending more pickled
# lists of exported events
while True:
try:
events.extend(pickle.load(f))
except EOFError as e:
break
except pickle.UnpicklingError as e:
raise vivisect.InvalidWorkspace(filename, "invalid workspace file")
# FIXME - diagnostics to hunt msgpack unsave values
# for event in events:
# import msgpack
# try:
# msgpack.dumps(event)
# except Exception, e:
# print('Unsafe Event: %d %r' % event)
return events
评论列表
文章目录