forked from DynamoRIO/dynamorio
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
i#6662 public traces, part 6: invariant_checker (DynamoRIO#6861)
OFFLINE_FILE_TYPE_ARCH_REGDEPS traces lack some markers and have instructions with DR_ISA_REGDEPS encodings, which don't have all the necessary information to perform all the invariant checks. Here we disable or modify some checks for invariant errors to handle OFFLINE_FILE_TYPE_ARCH_REGDEPS synthetic traces in the invariant_checker tool. Specifically, we disable: - the check for maybe-blocking syscall markers always being preceded by a regular syscall marker, as we don't have regular syscall markers in OFFLINE_FILE_TYPE_ARCH_REGDEPS traces; - the setting of branch targets, as they are not saved as first source operand in DR_ISA_REGDEPS instructions; - the check for "Missing read/write records", as we can't check for predicated instructions in OFFLINE_FILE_TYPE_ARCH_REGDEPS traces and we can't infer the precise number of load/stores performed by DR_ISA_REGDEPS instructions to adjust the read/write counters accordingly; We modify the check for matching loads/stores performed by a DR_ISA_REGDEPS fetched instruction with the subsequent read/write records, by requiring that if a DR_ISA_REGDEPS instruction performs a load/store (we use the instruction category to determine that), at least one subsequent read/write record must be present. Issue DynamoRIO#6662
- Loading branch information
Showing
4 changed files
with
139 additions
and
28 deletions.
There are no files selected for viewing
10 changes: 10 additions & 0 deletions
10
clients/drcachesim/tests/invariant_checker_on_regdeps_trace.templatex
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
Estimation of pi is 3.142425985001098 | ||
|
||
Trace invariant checks passed | ||
|
||
Output .* entries from .* entries. | ||
|
||
Trace invariant checks passed | ||
|
||
WARNING: invariant_checker is being run on an OFFLINE_FILE_TYPE_ARCH_REGDEPS trace. | ||
Some invariant checks have been disabled. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters