Closed yanivhal1 closed 5 months ago
Thanks for the report!
The sentence you quote from the documentation is talking about the instruction encoding, in a trace line showing a machine instruction. That's the only case where I've seen this happen before. I understand that it can happen when the attempt to fetch an instruction from memory actually fails completely, for example because of an ECC memory check failure.
The error message you quote here is showing the same notation being used in a register value, which I've never seen before. Can you give some more detail?
In particular, what Tarmac producer generated this trace? And do you know what the cause of the phenomenon was? (Perhaps the same as I mention – an ECC failure – but this time in a data fetch rather than an instruction fetch?)
Also, can you include a full snippet of trace demonstrating the issue, please? It doesn't need to be very long. One instruction and the followup register updates would be enough. But in order to make sure this doesn't recur, it's useful to have a real case to add to the test collection.
Actually, on second thoughts, I think it would be useful to know what happened after the failure. Was the load retried shortly afterwards (as the instruction fetch was, in the case I described above)? Or did execution continue in some other way? Is there evidence in the trace of what the following code found in the register that had --------
written into it?
In order to get TTU's parser to do the right thing, I need to know what the right thing is. Does a register write of --------
indicate that the register's value is now unknown? Or does it indicate that the register was not written to at all, so that it still keeps its previous value?
Fixed by 8ed9c341b93f464b551e9f685a700418ff7e11c0. The problem turned out not to be that --------
appeared in a register event at all, but that only 8 -
appeared, when the parser had expected 16, matching the length of the 64-bit target register.
According to the documentation: the tarmac format encoding should support: "In rare cases this integer can be replaced by a string of dashes, e.g. --------".
But when the tarmac file includes this I get the following error:
Reading trace file (0%)xah:4400: expected register contents R X1 -------- ^