Project

General

Profile

Actions

Trace Format » History » Revision 2

« Previous | Revision 2/5 (diff) | Next »
Sergey Smolov, 09/18/2018 05:03 PM


Trace Format

QEMU4V is able to generate traces of program execution. Here is the description of the trace format.
The QEMU4V trace contains records of the following kinds: instruction records, memory access records, register write records.

Instruction record

Appears in the trace when the corresponding instruction from the target program has been executed.
The record format is as follows:
<time> <scale> <cpu> [IT|IS] (<inst_id>) <addr> <opcode> [A|T|X] <mode>_<security> : <disasm>

The record fields are described in the following table:
Field Description Value
<time> Timestamp Decimal integer value
<scale> Timestamp unit String (the clk value means, that the timestamp field shows not physical time but the inex of executed instruction)
<cpu> Identifier for the processor at which the instruction is executed Decimal integer value
[IT|IS] Instruction execution flag IT when "Instruction Taken", IS when "Instruction Skipped"
<inst_id> Index of the executed instruction Decimal integer value
<addr> Virtual memory address for the instruction Hexadecimal value
<opcode> 16\32\64-bit code for the instruction Hexadecimal value
[A|T|X] Instruction set identifier TODO
<mode> Execution mode String (one of the following: svc, irq, fiq, usr, mon, sys, abt, und)
<security> Flag for the processor security mode s when "secure", ns when "non-secure"
<disasm> Disassembly representation for the instruction String

Example:

1 clk 0 IT (1) 00000004 3c080001 A svc : lui t0,0x1

Memory access record

TODO

Register write record

TODO

Updated by Sergey Smolov about 6 years ago · 5 revisions