Commit Graph

297 Commits

Author SHA1 Message Date
Tristan Ravitch
e29d94be06 Change the representation of RelocatableValue
It used to hold a SegmentedAddr.  This caused issues in semantics that require
the ability to perform addition and subtraction operations on RelocatableValues.
Addition or subtraction operations on SegmentedAddrs are not well defined,
because these operations can push a value from one segment into another, and
there is no way for them to compute the new segment.

The new representation is just a MemWord, whose interpretation is now decided
later (in `transferValue'` in AbsState).
2017-03-21 14:32:30 -07:00
Tristan Ravitch
ae02239342 Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw 2017-03-20 09:57:09 -07:00
Joe Hendrix
1e0c10787f
Remove tryGetStaticSyscallNo 2017-03-20 00:07:29 -07:00
Tristan Ravitch
823677d4ea Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw 2017-03-17 14:22:22 -07:00
Joe Hendrix
eb547022d8
Minor cleanups to macaw 2017-03-16 02:44:33 -04:00
Joe Hendrix
5b8d1798bf
Add symbol names to DiscoveredFunInfo. 2017-03-10 22:01:44 -08:00
Joe Hendrix
1ce1547e6e
Add check to ensure jumps to start of function are self-loops 2017-03-08 16:57:12 -08:00
Joe Hendrix
e4061d370c
Remove DiscoveryInfo blocks field as parsedBlocks replaces it. 2017-03-08 13:40:40 -08:00
Joe Hendrix
26f68bf003
Migrate away from global blocks in discovery. 2017-03-08 13:21:41 -08:00
Joe Hendrix
2d23dba229
Add foldAppl 2017-03-05 23:56:37 -08:00
Joe Hendrix
40b92c901d
Make return address unmodifiable for analysis purposes. 2017-03-01 12:08:10 -08:00
Joe Hendrix
8dee23f9eb
Remove unneeded reason information from frontier. 2017-02-27 19:14:25 -08:00
Tristan Ravitch
38aa71d033 Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw 2017-02-27 08:50:48 -08:00
Joe Hendrix
9518348ea1
Updates to resolve infinite loop due to abstract domains iteration. 2017-02-25 19:31:14 -08:00
Joe Hendrix
e97e7c7f49
Replace diassemble error with trace 2017-02-24 01:54:44 -05:00
Joe Hendrix
953e607e0e
Update classifyfailure 2017-02-24 01:53:11 -05:00
Joe Hendrix
fde2db4726
Fix bug in discovery; Remove unused commented out code. 2017-02-16 13:20:55 -05:00
Joe Hendrix
febac68d9f
Remove classifyBlock 2017-02-16 10:54:47 -05:00
Joe Hendrix
0d086237e8
Start using jump bounds; introduce "ParsedBlocks"
The code is now using a constraint representation for Jump bounds; an
attempt to reduce the need for strided intervals.

It's a bit unclear how much of a win this is; the jump bounds should
recognize the size of a jump table with fewer needs to repeat as
strided intervals may.  However, it doesn't solve the incompleteness
problem that I hoped it would -- if the intra-procedural control flow
graph contains missing edges, the result may still be incomplete.

This code also introduces ParsedBlocks, a basic block representation
that used the ParseTermStmt.  A future patch will start including this
in the discoveryinfo, so that later procedures do not need to call
"classifyBlock".
2017-02-16 02:53:19 -05:00
Joe Hendrix
848cc2d0d0
Fix race condition and unnecessary error checking in Discovery.hs 2017-02-13 01:12:50 -08:00
Joe Hendrix
200afa251a
Add Bits instance to MemWord. 2017-02-12 23:30:07 -08:00
Joe Hendrix
36d161acd2
Migrate abstract state with start of block to block region datatype. 2017-02-11 23:50:40 -08:00
Joe Hendrix
fc2a7a06aa
Fixes to enasure codeInfoMap and blocks contain same keys. 2017-02-11 23:22:17 -08:00
Joe Hendrix
ab2e50a17d
Move assignId ref computation from reopt to macaw; minor additional changes. 2017-02-03 14:25:35 -08:00
Joe Hendrix
79a3390b09
Fix JumpBounds. 2017-01-31 13:47:26 -08:00
Joe Hendrix
cc76e82455
Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw 2017-01-28 12:58:36 -08:00
Joe Hendrix
e962608f2c
Add JumpTable bounds; remove code discovery dependency on syscall. 2017-01-28 12:57:49 -08:00
ben
390d6b63d9 Merge branch 'fix-stack-containers-version' into 'master'
Update stack.yaml to match cabal requirement on containers version

See merge request !4
2017-01-18 11:47:35 -08:00
Ben Davis
72c8ff19d5
Update stack.yaml to match cabal requirement on containers version
macaw.cabal requires 'containers >= 0.5.8.1', but this is newer than the version
available via the stack lts-6.23 resolver. Specifying acceptable versions of
containers (and lens and kan-extensions) in stack.yaml lets us 'stack build'.
2017-01-18 14:26:48 -05:00
jhendrix
49c10bbc00 Merge branch 'add-deps-checkout-script' into 'master'
Add a script to clone/pull dependencies

See merge request !3
2017-01-18 11:15:16 -08:00
Ben Davis
e8b6c3a0ad
Add a script to clone/pull dependencies 2017-01-18 11:17:59 -05:00
Joe Hendrix
3014a23a70
Fix 64-bit dependency in Macaw. 2017-01-17 02:09:23 -08:00
Joe Hendrix
1b878ee6d6
Cleanup classifyBlock return value. 2017-01-17 01:19:55 -08:00
tristan
edcea3eb28 Merge branch 'fix/intervalmap-bound' into 'master'
Add a version bound on IntervalMap

See merge request !2
2017-01-06 16:13:44 -08:00
Tristan Ravitch
37a38954eb Add a version bound on IntervalMap
Macaw uses the API from 0.5, which is incompatible with 0.4 for the contains
function.
2017-01-06 16:10:23 -08:00
Joe Hendrix
074383b3a1
Simplify ParsedSyscall 2017-01-05 12:51:56 -08:00
Joe Hendrix
53bca3285a
Minor comment changes 2017-01-04 23:08:52 -08:00
Tristan Ravitch
84689e9861 Fix a haddock syntax error 2017-01-04 13:27:51 -08:00
Tristan Ravitch
f758db30a6 Add a lower version bound on IntervalMap
We are using the new `containing` API that returns a map instead of a list, so
we can't use 0.4 anymore.
2017-01-04 13:27:13 -08:00
Joe Hendrix
bfcee99d58
Various changes; Better support for tracking why code location has been
identified; Improved error reporting.
2017-01-03 16:17:41 -08:00
Joe Hendrix
48a41a7d21
Fix undefined function in AbsState 2016-12-27 14:32:26 -08:00
Joe Hendrix
e27d3ee0ef
Additional support for relocations; GHC 8.0.1 compat 2016-12-27 13:59:21 -08:00
Joe Hendrix
cf1619b8ab
Cleanup memory segment insertion 2016-12-13 18:05:36 -08:00
Joe Hendrix
850057d767
Add variable declaration field 2016-12-13 11:55:53 -08:00
Joe Hendrix
0c84749ead
Add additional dwarf parsing 2016-12-12 16:37:55 -08:00
Joe Hendrix
82d9527b5b
Update to reflect dwarf library changes 2016-11-29 18:47:28 -08:00
Joe Hendrix
7b568edc0c
Initial commit of macaw 2016-11-28 23:14:04 -08:00