ParseTrace.py 715 B

1234567891011121314151617181920212223242526272829303132333435
  1. import re
  2. parseRe = re.compile('(.*)\s+([0-9]+):([0-9a-f]+):(.*)')
  3. dbgCnt=0
  4. clk0=0
  5. clk1=0
  6. def getCycles(t):
  7. global dbgCnt
  8. global clk0
  9. global clk1
  10. while(True):
  11. try:
  12. line = next(t)
  13. if line:
  14. m = parseRe.match(line)
  15. if m:
  16. if (('OP_HINT_DBG_32' in line) or ('DBG' in line)):
  17. curClk = int(m.group(2))
  18. if dbgCnt==0:
  19. clk0 =curClk
  20. if dbgCnt == 1:
  21. clk1 = curClk
  22. dbgCnt += 1
  23. if dbgCnt == 2:
  24. dbgCnt = 0
  25. return(clk1 - clk0)
  26. except StopIteration:
  27. dbgCnt = 0
  28. return(0)