Age | Commit message (Collapse) | Author |
|
We are currently deriving edge coverage instrumentation from basic block
instrumentation via the AFL XOR-technique. This has several downsides:
* Different edges can be assigned the same position in the coverage map,
which leads to underreported coverage.
* The coverage map needs to be large enough for collisions to be
unlikely (on the order of num_edges^2). In addition to being wasteful,
it is also hard to determine the correct size given that we don't know
the number of edges.
In addition to the design limitations, the current implementation
additionally does not take into account that most Java method
invocations can throw exceptions and thus need to be instrumented.
These issues are resolved by switching to true LLVM-style edge coverage
instrumentation. The new coverage instrumentation is based on a lightly
patched version of the JaCoCo internals.
Note:
//agent/src/test/java/com/code_intelligence/jazzer/instrumentor:coverage_instrumentation_test
is not passing for this commit. It will be fixed with the next commit.
|
|
|
|
The uploaded jar previously did not contain any class files and lacked
required POM fields.
|
|
|
|
* Update dependencies
* Fail if changed Maven deps are not repinned
* Extract ASM API version into Instrumentor
|
|
Google's Maven repository does not offer most of our dependencies, which
makes Bazel print quite a few warnings while downloading.
|
|
|