|
@@ -139,6 +139,19 @@ def swallow_bytes(eid, name, dumpfile, nr):
|
|
"""Swallow nr bytes of data without looking at it"""
|
|
"""Swallow nr bytes of data without looking at it"""
|
|
dumpfile.seek(nr, os.SEEK_CUR)
|
|
dumpfile.seek(nr, os.SEEK_CUR)
|
|
|
|
|
|
|
|
+total_insns = 0
|
|
|
|
+
|
|
|
|
+def decode_instruction(eid, name, dumpfile):
|
|
|
|
+ global total_insns
|
|
|
|
+ ins_diff = read_dword(dumpfile)
|
|
|
|
+ total_insns += ins_diff
|
|
|
|
+ print_event(eid, name, "+ %d -> %d" % (ins_diff, total_insns))
|
|
|
|
+ return True
|
|
|
|
+
|
|
|
|
+def decode_interrupt(eid, name, dumpfile):
|
|
|
|
+ print_event(eid, name)
|
|
|
|
+ return True
|
|
|
|
+
|
|
def decode_exception(eid, name, dumpfile):
|
|
def decode_exception(eid, name, dumpfile):
|
|
print_event(eid, name)
|
|
print_event(eid, name)
|
|
return True
|
|
return True
|
|
@@ -198,15 +211,6 @@ def decode_async_net(eid, name, dumpfile):
|
|
print_event(eid, name, "net:%x flags:%x bytes:%d" % (net_id, flags, size))
|
|
print_event(eid, name, "net:%x flags:%x bytes:%d" % (net_id, flags, size))
|
|
return True
|
|
return True
|
|
|
|
|
|
-total_insns = 0
|
|
|
|
-
|
|
|
|
-def decode_instruction(eid, name, dumpfile):
|
|
|
|
- global total_insns
|
|
|
|
- ins_diff = read_dword(dumpfile)
|
|
|
|
- total_insns += ins_diff
|
|
|
|
- print_event(eid, name, "+ %d -> %d" % (ins_diff, total_insns))
|
|
|
|
- return True
|
|
|
|
-
|
|
|
|
def decode_shutdown(eid, name, dumpfile):
|
|
def decode_shutdown(eid, name, dumpfile):
|
|
print_event(eid, name)
|
|
print_event(eid, name)
|
|
return True
|
|
return True
|
|
@@ -222,6 +226,21 @@ def decode_audio_out(eid, name, dumpfile):
|
|
print_event(eid, name, "%d" % (audio_data))
|
|
print_event(eid, name, "%d" % (audio_data))
|
|
return True
|
|
return True
|
|
|
|
|
|
|
|
+def decode_random(eid, name, dumpfile):
|
|
|
|
+ ret = read_dword(dumpfile)
|
|
|
|
+ size = read_dword(dumpfile)
|
|
|
|
+ swallow_bytes(eid, name, dumpfile, size)
|
|
|
|
+ if (ret):
|
|
|
|
+ print_event(eid, name, "%d bytes (getrandom failed)" % (size))
|
|
|
|
+ else:
|
|
|
|
+ print_event(eid, name, "%d bytes" % (size))
|
|
|
|
+ return True
|
|
|
|
+
|
|
|
|
+def decode_clock(eid, name, dumpfile):
|
|
|
|
+ clock_data = read_qword(dumpfile)
|
|
|
|
+ print_event(eid, name, "0x%x" % (clock_data))
|
|
|
|
+ return True
|
|
|
|
+
|
|
def __decode_checkpoint(eid, name, dumpfile, old):
|
|
def __decode_checkpoint(eid, name, dumpfile, old):
|
|
"""Decode a checkpoint.
|
|
"""Decode a checkpoint.
|
|
|
|
|
|
@@ -252,25 +271,6 @@ def decode_checkpoint_init(eid, name, dumpfile):
|
|
print_event(eid, name)
|
|
print_event(eid, name)
|
|
return True
|
|
return True
|
|
|
|
|
|
-def decode_interrupt(eid, name, dumpfile):
|
|
|
|
- print_event(eid, name)
|
|
|
|
- return True
|
|
|
|
-
|
|
|
|
-def decode_clock(eid, name, dumpfile):
|
|
|
|
- clock_data = read_qword(dumpfile)
|
|
|
|
- print_event(eid, name, "0x%x" % (clock_data))
|
|
|
|
- return True
|
|
|
|
-
|
|
|
|
-def decode_random(eid, name, dumpfile):
|
|
|
|
- ret = read_dword(dumpfile)
|
|
|
|
- size = read_dword(dumpfile)
|
|
|
|
- swallow_bytes(eid, name, dumpfile, size)
|
|
|
|
- if (ret):
|
|
|
|
- print_event(eid, name, "%d bytes (getrandom failed)" % (size))
|
|
|
|
- else:
|
|
|
|
- print_event(eid, name, "%d bytes" % (size))
|
|
|
|
- return True
|
|
|
|
-
|
|
|
|
def decode_end(eid, name, dumpfile):
|
|
def decode_end(eid, name, dumpfile):
|
|
print_event(eid, name)
|
|
print_event(eid, name)
|
|
return False
|
|
return False
|