diff options
author | Cory Barker <cobark@google.com> | 2023-03-06 21:25:20 +0000 |
---|---|---|
committer | Norbert Schneider <mail@bertschneider.de> | 2023-03-07 08:36:23 +0100 |
commit | db58481ddd6908fc37fcb5dcf357fa11b155b349 (patch) | |
tree | 1431c8998a53d791fde30745374053c2af81d8e1 /src/main/java/com/code_intelligence/jazzer/agent/Agent.kt | |
parent | 5fe62b42539628816460a7e96398943e8caa753f (diff) | |
download | jazzer-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.kt | 4 |
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, |