mirror of
https://github.com/GaloisInc/macaw.git
synced 2024-12-02 10:54:04 +03:00
e024646860
This commit updates macaw-refinement to work with the latest macaw/crucible and makes a few improvements along the way. The major changes involved in this are: * Block labels were removed from macaw, so we had to come up with an alternative approach to making synthetic blocks to represent dispatch resolved by macaw-refinement that is not really a jump table. We considered adding a new terminator that encoded "computed IP-based dispatch", but there was concern about the impact on client code. Instead, we added a field to the `DiscoveryFunInfo` that records "external" resolutions to indirect control flow (e.g., as by an SMT solver in macaw-refinement). The hook by which we feed SMT-based resolutions back into macaw was modified accordingly (`addDiscoveredFunctionBlockTargets`). * Solver invocation changed to allow solver selection and parallel solver application. * Logging is now done via the `lumberjack` library. * macaw-symbolic now uses the "external" resolutions in `DiscoveryFunInfo` while building crucible CFGs. * The path creation code in macaw-refinement was simplified significantly and the approach to path creation has been documented. * The run-refinement tool is now more featureful. * The test suite is a bit more structured and no longer depends on the printed output of the discovery process.
11 lines
201 B
Plaintext
11 lines
201 B
Plaintext
[(0x401000, [ 0x401000
|
|
, 0x401053
|
|
, 0x40105a
|
|
, 0x401064
|
|
, 0x40106b
|
|
, 0x401078
|
|
, 0x401083
|
|
, 0x40108e
|
|
]
|
|
)]
|