Commit Graph

1342 Commits

Author SHA1 Message Date
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