summaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorNélio Laranjeiro2009-02-02 23:43:32 +0100
committerNélio Laranjeiro2009-02-02 23:43:32 +0100
commit0c176afccbe18eee09fbf7e67966b6a53c5b4420 (patch)
tree09fe3646a573a4405098342bbc2e800c7e3a66d8 /tools
parent27e1254afc618ef34cf7d49c5158587da465b2be (diff)
tools/trace:
* Change python indentation. * Added a stop condition on reading traces.
Diffstat (limited to 'tools')
-rw-r--r--tools/trace/tcreator/tcreator.py32
-rw-r--r--tools/trace/tinter/tinter.py102
-rw-r--r--tools/trace/trace.py64
3 files changed, 102 insertions, 96 deletions
diff --git a/tools/trace/tcreator/tcreator.py b/tools/trace/tcreator/tcreator.py
index e0624259..be771afb 100644
--- a/tools/trace/tcreator/tcreator.py
+++ b/tools/trace/tcreator/tcreator.py
@@ -2,26 +2,26 @@ import sys
from writer import *
try:
- from lib.parser import *
+ from lib.parser import *
except:
- print "--> You should run yapps on lib/parser.g"
+ print "--> You should run yapps on lib/parser.g"
class TCreator:
- def __init__(self, infile, outfile, enum_name = "trace_id_t"):
- self.__infile = infile
- self.__outfile = outfile
- self.__enum_name = enum_name
+ def __init__(self, infile, outfile, enum_name = "trace_id_t"):
+ self.__infile = infile
+ self.__outfile = outfile
+ self.__enum_name = enum_name
- def create (self):
- infile = open (self.__infile, 'r')
- data = parse ('parser', infile.read())
- infile.close()
+ def create (self):
+ infile = open (self.__infile, 'r')
+ data = parse ('parser', infile.read())
+ infile.close()
- w = Writer (self.__outfile, self.__enum_name)
- outstring = w.parse_list (data)
+ w = Writer (self.__outfile, self.__enum_name)
+ outstring = w.parse_list (data)
- if self.__outfile != "":
- w.write_file (outstring)
- else:
- w.print_file (outstring)
+ if self.__outfile != "":
+ w.write_file (outstring)
+ else:
+ w.print_file (outstring)
diff --git a/tools/trace/tinter/tinter.py b/tools/trace/tinter/tinter.py
index 8f368519..ecf99696 100644
--- a/tools/trace/tinter/tinter.py
+++ b/tools/trace/tinter/tinter.py
@@ -2,55 +2,61 @@ import sys
from thost import *
try:
- from lib.parser import *
+ from lib.parser import *
except:
- print "--> You should run yapps on lib/parser.g"
+ 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], 16)
- 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 __get_last_trace (self, data):
- while len (data):
- memory = data.split('f33ff22f')
- memory = memory[len(memory) - 1]
- return memory
-
- def trace_print (self, file=None):
- events = self.__events_get ()
-
- if file == None:
- memory = thost_dump_memory()
- else:
- file = open (file, 'r')
- memory = file.read()
- file.close()
- memory = self.__get_last_trace (memory)
-
- while len(memory) > 0:
- data = self.__event_print(events, memory)
- string = data[1]
- memory = data[0]
- print string[1:len(string)-1]
+ 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], 16)
+ if cmd < len(events) - 1:
+ 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]
+ else:
+ return None
+
+ def __get_last_trace (self, data):
+ while len (data):
+ memory = data.split('f33ff22f')
+ memory = memory[len(memory) - 1]
+ return memory
+
+ def trace_print (self, file=None):
+ events = self.__events_get ()
+
+ if file == None:
+ memory = thost_dump_memory()
+ else:
+ file = open (file, 'r')
+ memory = file.read()
+ file.close()
+ memory = self.__get_last_trace (memory)
+
+ while len(memory) > 0:
+ data = self.__event_print(events, memory)
+ if data != None:
+ string = data[1]
+ memory = data[0]
+ print string[1:len(string)-1]
+ else:
+ memory = ""
diff --git a/tools/trace/trace.py b/tools/trace/trace.py
index 819bd0ba..86bffb35 100644
--- a/tools/trace/trace.py
+++ b/tools/trace/trace.py
@@ -5,41 +5,41 @@ from tcreator.tcreator import *
from tinter.tinter import *
def create_parse_args(list = None):
- infile = ""
- outfile = ""
- enum_name = ""
- if list == None:
- return None
- else:
- for i in range (0, len(list)):
- if list[i] == "-e":
- enum_name = list[i+1]
- if list[i] == "-o":
- outfile = list[i+1]
- else:
- infile = list[i]
- return [infile, outfile, enum_name]
+ infile = ""
+ outfile = ""
+ enum_name = ""
+ if list == None:
+ return None
+ else:
+ for i in range (0, len(list)):
+ if list[i] == "-e":
+ enum_name = list[i+1]
+ if list[i] == "-o":
+ outfile = list[i+1]
+ else:
+ infile = list[i]
+ return [infile, outfile, enum_name]
print "Trace System v1.0 by APBTeam\n"
if len(sys.argv) > 1:
- argc = len(sys.argv)
- if sys.argv[1] == "create":
- if (argc >= 2) and (argc <= 7):
- data = create_parse_args(sys.argv)
- cre = TCreator (data[0], data[1], data[2])
- cre.create ()
- else:
- raise Exception ("Not enough arguments")
- if sys.argv[1] == "inter":
- if argc >= 2:
- inter = TInter (sys.argv[2])
- if argc == 2:
- inter.trace_print(None)
- else:
- inter.trace_print(sys.argv[3])
- else:
- raise Exception ("Not enough arguments")
+ argc = len(sys.argv)
+ if sys.argv[1] == "create":
+ if (argc >= 2) and (argc <= 7):
+ data = create_parse_args(sys.argv)
+ cre = TCreator (data[0], data[1], data[2])
+ cre.create ()
+ else:
+ raise Exception ("Not enough arguments")
+ if sys.argv[1] == "inter":
+ if argc >= 2:
+ inter = TInter (sys.argv[2])
+ if argc == 2:
+ inter.trace_print(None)
+ else:
+ inter.trace_print(sys.argv[3])
+ else:
+ raise Exception ("Not enough arguments")
else:
- raise Exception ("Not enough arguments")
+ raise Exception ("Not enough arguments")