From 7cb8c5f7096be04cd65ec41a5b8f98d0ae3e890a Mon Sep 17 00:00:00 2001 From: NĂ©lio Laranjeiro Date: Sun, 23 Nov 2008 19:35:46 +0100 Subject: tools/trace: First version of the trace creator parser source file. --- tools/trace/tinter/__init__.py | 0 tools/trace/tinter/thost.py | 2 ++ tools/trace/tinter/tinter.py | 43 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 tools/trace/tinter/__init__.py create mode 100644 tools/trace/tinter/thost.py create mode 100644 tools/trace/tinter/tinter.py (limited to 'tools/trace/tinter') diff --git a/tools/trace/tinter/__init__.py b/tools/trace/tinter/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tools/trace/tinter/thost.py b/tools/trace/tinter/thost.py new file mode 100644 index 00000000..5608874c --- /dev/null +++ b/tools/trace/tinter/thost.py @@ -0,0 +1,2 @@ +def thost_dump_memory(): + return "000000000100000002000301000000020000000300040200FEDA0056789A" diff --git a/tools/trace/tinter/tinter.py b/tools/trace/tinter/tinter.py new file mode 100644 index 00000000..7c0a6d90 --- /dev/null +++ b/tools/trace/tinter/tinter.py @@ -0,0 +1,43 @@ +import sys +from thost import * + +try: + from lib.parser import * +except: + print "--> You should run yapps on lib/parser.g" + +class TInter: + + def __init__(self, infile): + self.__infile = infile + self.__events = None + + def __events_get (self): + infile = open (self.__infile, 'r') + events = parse ('parser', infile.read()) + infile.close() + return events + + def __event_print (self, events, memory): + if len(memory) > 0: + cmd = int (memory[0:2]) + e = events[cmd] + string = e.string_get() + memory = memory[2:len(memory)] + for i in range (0, e.param_nb()): + p = e.param_get(i) + size = p.length() * 2 + val = memory[0:size] + memory = memory[size:len(memory)] + string = string.replace('%d', str(int(val, 16)), 1) + return [memory, string] + + def trace_print (self): + events = self.__events_get () + memory = thost_dump_memory() + + while len(memory) > 0: + data = self.__event_print(events, memory) + string = data[1] + memory = data[0] + print string[1:len(string)-1] -- cgit v1.2.3