aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/code_intelligence/jazzer/agent/Agent.kt
diff options
context:
space:
mode:
authorCory Barker <cobark@google.com>2023-03-06 21:25:20 +0000
committerNorbert Schneider <mail@bertschneider.de>2023-03-07 08:36:23 +0100
commitdb58481ddd6908fc37fcb5dcf357fa11b155b349 (patch)
tree1431c8998a53d791fde30745374053c2af81d8e1 /src/main/java/com/code_intelligence/jazzer/agent/Agent.kt
parent5fe62b42539628816460a7e96398943e8caa753f (diff)
downloadjazzer-api-db58481ddd6908fc37fcb5dcf357fa11b155b349.tar.gz
Added offline instrumentation support
Diffstat (limited to 'src/main/java/com/code_intelligence/jazzer/agent/Agent.kt')
-rw-r--r--src/main/java/com/code_intelligence/jazzer/agent/Agent.kt4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/main/java/com/code_intelligence/jazzer/agent/Agent.kt b/src/main/java/com/code_intelligence/jazzer/agent/Agent.kt
index aed8821f..8788aa23 100644
--- a/src/main/java/com/code_intelligence/jazzer/agent/Agent.kt
+++ b/src/main/java/com/code_intelligence/jazzer/agent/Agent.kt
@@ -44,6 +44,7 @@ fun installInternal(
trace: List<String> = Opt.trace,
idSyncFile: String? = Opt.idSyncFile,
dumpClassesDir: String = Opt.dumpClassesDir,
+ additionalClassesExcludes: List<String> = Opt.additionalClassesExcludes,
) {
val allCustomHookNames = (Constants.SANITIZER_HOOK_NAMES + userHookNames).toSet()
check(allCustomHookNames.isNotEmpty()) { "No hooks registered; expected at least the built-in hooks" }
@@ -77,6 +78,7 @@ fun installInternal(
}
}
}.toSet()
+
val idSyncFilePath = idSyncFile?.takeUnless { it.isEmpty() }?.let {
Paths.get(it).also { path ->
Log.info("Synchronizing coverage IDs in ${path.toAbsolutePath()}")
@@ -113,7 +115,7 @@ fun installInternal(
// not be considered when resolving references to hook methods, leading to NoClassDefFoundError
// being thrown.
Hooks.appendHooksToBootstrapClassLoaderSearch(instrumentation, customHookNames.toSet())
- val (includedHooks, customHooks) = Hooks.loadHooks(includedHookNames.toSet(), customHookNames.toSet())
+ val (includedHooks, customHooks) = Hooks.loadHooks(additionalClassesExcludes, includedHookNames.toSet(), customHookNames.toSet())
val runtimeInstrumentor = RuntimeInstrumentor(
instrumentation,