The following table shows data about each function in the project. The functions included in this table correspond to all functions that exist in the executables of the fuzzers. As such, there may be functions that are from third-party libraries.
For further technical details on the meaning of columns in the below table, please see the Glossary .
| Func name | Functions filename | Args | Function call depth | Reached by Fuzzers | Fuzzers runtime hit | Func lines hit % | I Count | BB Count | Cyclomatic complexity | Functions reached | Reached by functions | Accumulated cyclomatic complexity | Undiscovered complexity |
|---|
The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview
Call tree overview bitmap:
The distribution of callsites in terms of coloring is
| Color | Runtime hitcount | Callsite count | Percentage |
|---|---|---|---|
| red | 0 | 598 | 71.1% |
| gold | [1:9] | 176 | 20.9% |
| yellow | [10:29] | 64 | 7.60% |
| greenyellow | [30:49] | 0 | 0.0% |
| lawngreen | 50+ | 3 | 0.35% |
| All colors | 841 | 100 |
The following nodes represent call sites where fuzz blockers occur.
| Amount of callsites blocked | Calltree index | Parent function | Callsite | Largest blocked function |
|---|---|---|---|---|
| 274 | 499 | [org.bytedeco.javacpp.tools.Token].equals(java.lang.Object) | call site: 00499 | |
| 54 | 117 | [org.bytedeco.javacpp.tools.Templates].strip(java.lang.String) | call site: 00117 | |
| 51 | 355 | [org.bytedeco.javacpp.tools.Tokenizer].nextToken() | call site: 00355 | |
| 44 | 172 | [org.bytedeco.javacpp.tools.InfoMap].getFirst(java.lang.String) | call site: 00172 | |
| 42 | 282 | [org.bytedeco.javacpp.tools.Tokenizer].readChar() | call site: 00282 | |
| 37 | 77 | [org.bytedeco.javacpp.tools.Templates].splitNamespace(java.lang.String,boolean) | call site: 00077 | |
| 27 | 461 | [org.bytedeco.javacpp.tools.Tokenizer].tokenize() | call site: 00461 | |
| 14 | 41 | [org.bytedeco.javacpp.tools.Templates].splitNamespace(java.lang.String,boolean) | call site: 00041 | |
| 8 | 10 | [org.bytedeco.javacpp.tools.InfoMap].normalize(java.lang.String,boolean,boolean) | call site: 00010 | |
| 8 | 68 | [org.bytedeco.javacpp.tools.Templates].splitNamespace(java.lang.String,boolean) | call site: 00068 | |
| 7 | 789 | [org.bytedeco.javacpp.tools.InfoMap].normalize(java.lang.String,boolean,boolean) | call site: 00789 | |
| 6 | 34 | [org.bytedeco.javacpp.tools.Templates].splitNamespace(java.lang.String,boolean) | call site: 00034 |
| Function name | source code lines | source lines hit | percentage hit |
|---|
| filename | functions hit |
|---|---|
| JavacppFuzzer | 1 |
| org.bytedeco.javacpp.tools.InfoMap | 7 |
| java.util.HashMap | 4 |
| java.lang.Boolean | 3 |
| java.lang.String | 23 |
| java.lang.StringUTF16 | 14 |
| org.bytedeco.javacpp.tools.Templates | 2 |
| java.util.regex.Pattern | 1 |
| java.util.regex.Matcher | 5 |
| java.util.Arrays | 5 |
| java.lang.Object | 3 |
| java.lang.StringBuilder | 7 |
| java.lang.StringIndexOutOfBoundsException | 2 |
| java.lang.StringLatin1 | 8 |
| java.util.ArrayList | 14 |
| org.bytedeco.javacpp.tools.DeclarationList | 4 |
| org.bytedeco.javacpp.tools.TemplateMap | 1 |
| jdk.internal.module.ModuleBootstrap$2 | 2 |
| java.nio.file.Files$2 | 2 |
| java.io.BufferedReader$1 | 2 |
| java.nio.file.FileTreeIterator | 2 |
| java.util.Scanner | 6 |
| java.util.AbstractList | 4 |
| java.util.NoSuchElementException | 1 |
| java.util.LinkedHashMap | 3 |
| org.bytedeco.javacpp.tools.Parser | 1 |
| java.util.concurrent.CopyOnWriteArrayList | 5 |
| java.io.BufferedReader$1:java.nio.file.FileTreeIterator:java.nio.file.Files$2:java.util.AbstractList:java.util.AbstractSequentialList:java.util.ArrayList:java.util.Scanner:java.util.Vector:java.util.concurrent.CopyOnWriteArrayList | 2 |
| java.util.AbstractCollection:java.util.ArrayList:java.util.LinkedList:java.util.Vector:java.util.concurrent.CopyOnWriteArrayList:javax.management.AttributeList | 1 |
| java.util.AbstractList:java.util.ArrayList:java.util.Vector:java.util.concurrent.CopyOnWriteArrayList | 1 |
| java.lang.Throwable | 9 |
| java.lang.IllegalArgumentException | 1 |
| java.lang.NullPointerException | 1 |
| java.lang.RuntimeException | 3 |
| java.lang.Exception | 3 |
| sun.nio.fs.UnixException | 2 |
| javax.management.AttributeList | 4 |
| java.util.Vector | 5 |
| java.util.LinkedList | 4 |
| java.util.ArrayList:javax.management.AttributeList | 1 |
| java.util.AbstractSequentialList | 2 |
| org.bytedeco.javacpp.tools.Tokenizer | 4 |
| java.io.StringReader | 3 |
| org.bytedeco.javacpp.tools.Token | 4 |
| java.io.BufferedReader | 6 |
| java.io.IOException | 1 |
| java.lang.System | 1 |
| java.lang.IndexOutOfBoundsException | 1 |
| java.io.InputStreamReader | 2 |
| sun.nio.cs.StreamDecoder | 2 |
| java.lang.Math | 1 |
| java.io.Reader | 2 |
| java.io.InputStreamReader:java.io.Reader:java.io.StringReader:sun.nio.cs.StreamDecoder | 1 |
| java.lang.Character | 8 |
| java.lang.CharacterData | 1 |
| java.lang.Long | 7 |
| java.lang.NumberFormatException | 2 |
| java.lang.Number | 1 |
| java.security.PrivilegedActionException | 1 |
| javax.management.BadAttributeValueExpException | 1 |
| javax.management.BadBinaryOpValueExpException | 1 |
| java.lang.Class | 2 |
| java.nio.file.InvalidPathException | 1 |
| java.nio.file.FileSystemException | 1 |
| java.util.regex.PatternSyntaxException | 1 |
| java.net.URISyntaxException | 1 |
| java.io.InvalidClassException | 1 |
| javax.management.BadStringOperationException | 1 |
| java.lang.Integer | 2 |
| org.bytedeco.javacpp.tools.Type | 1 |
| sun.util.calendar.CalendarDate | 1 |
| java.math.BigInteger | 1 |
| javax.management.ObjectInstance | 1 |
| java.nio.CharBuffer | 1 |
| java.nio.charset.Charset | 1 |
| java.util.OptionalDouble | 1 |
| java.security.AccessControlContext | 1 |
| java.lang.Short | 2 |
| java.time.ZonedDateTime | 1 |
| java.time.chrono.AbstractChronology | 1 |
| java.text.AttributedCharacterIterator$Attribute | 1 |
| java.security.Timestamp | 1 |
| java.nio.ShortBuffer | 1 |
| java.net.Proxy | 1 |
| java.lang.reflect.Constructor | 1 |
| java.util.Properties | 4 |
| java.nio.LongBuffer | 1 |
| javax.security.auth.Subject | 1 |
| java.lang.module.ModuleDescriptor$Exports | 1 |
| java.nio.DoubleBuffer | 1 |
| org.slf4j.helpers.BasicMarker | 2 |
| java.text.Collator | 1 |
| java.lang.Float | 4 |
| java.lang.Character$Subset | 1 |
| java.security.CodeSource | 1 |
| java.lang.invoke.ClassSpecializer$SpeciesData | 1 |
| java.lang.Double | 4 |
| java.security.BasicPermission | 1 |
| java.util.ResourceBundle$CacheKey | 1 |
| java.text.DateFormatSymbols | 1 |
| java.time.zone.ZoneRules | 1 |
| java.math.MathContext | 1 |
| java.text.SimpleDateFormat | 1 |
| java.text.ParsePosition | 1 |
| java.time.zone.ZoneOffsetTransitionRule | 1 |
| java.util.concurrent.ConcurrentHashMap$KeySetView | 2 |
| jdk.internal.module.ModuleHashes | 1 |
| java.util.concurrent.ConcurrentHashMap | 4 |
| java.util.Hashtable | 4 |
| java.util.AbstractMap | 3 |
| java.util.WeakHashMap | 3 |
| java.util.TreeMap | 3 |
| java.util.jar.Attributes | 4 |
| java.util.IdentityHashMap | 4 |
| java.util.stream.Collectors$Partition | 1 |
| java.security.Provider | 2 |
| java.util.HashSet | 1 |
| java.util.TreeMap$KeySet | 1 |
| java.util.TreeMap$EntrySet | 1 |
| java.util.concurrent.ConcurrentHashMap$EntrySetView | 2 |
| java.util.Hashtable$Entry | 3 |
| java.util.HashMap$Node | 3 |
| java.util.concurrent.ConcurrentHashMap$Node | 3 |
| java.util.TreeMap$Entry | 3 |
| java.util.WeakHashMap$Entry | 3 |
| java.time.LocalDate | 1 |
| javax.management.MBeanAttributeInfo | 1 |
| java.lang.reflect.Parameter | 1 |
| javax.management.MBeanInfo | 1 |
| sun.util.calendar.Era | 1 |
| java.net.SocketPermission | 1 |
| java.time.ZoneId | 1 |
| javax.management.openmbean.CompositeType | 1 |
| java.lang.invoke.LambdaForm$NamedFunction | 1 |
| java.lang.invoke.StringConcatFactory$Key | 1 |
| sun.util.locale.BaseLocale$Key | 1 |
| java.math.BigDecimal | 1 |
| org.bytedeco.javacpp.Pointer | 2 |
| java.time.format.DecimalStyle | 1 |
| jdk.internal.org.objectweb.asm.Handle | 1 |
| java.nio.file.attribute.FileTime | 1 |
| java.nio.IntBuffer | 1 |
| java.lang.ProcessHandleImpl | 1 |
| java.security.cert.CertPath | 1 |
| java.lang.invoke.LambdaForm | 1 |
| java.lang.StackTraceElement | 1 |
| java.lang.reflect.Field | 1 |
| java.time.Period | 1 |
| java.time.zone.ZoneOffsetTransition | 1 |
| java.time.OffsetTime | 1 |
| java.security.cert.Certificate | 1 |
| javax.management.MBeanConstructorInfo | 1 |
| java.net.URL | 1 |
| java.time.LocalDateTime | 1 |
| java.util.jar.Attributes$Name | 1 |
| java.net.NetworkInterface | 1 |
| java.lang.invoke.StringConcatFactory$RecipeElement | 1 |
| java.net.Inet4Address | 1 |
| java.lang.module.ModuleDescriptor$Opens | 1 |
| java.time.Duration | 1 |
| sun.util.locale.LocaleExtensions | 1 |
| java.text.FieldPosition | 1 |
| java.lang.invoke.LambdaForm$Name | 1 |
| java.nio.FloatBuffer | 1 |
| java.time.Clock | 1 |
| javax.management.MBeanOperationInfo | 1 |
| java.lang.invoke.MemberName | 1 |
| java.security.AllPermission | 1 |
| java.time.LocalTime | 1 |
| java.lang.Thread$WeakClassKey | 1 |
| java.util.OptionalInt | 1 |
| jdk.internal.jimage.ImageReader$Node | 1 |
| javax.management.ObjectName | 1 |
| java.util.AbstractSet | 1 |
| java.lang.ProcessBuilder$Redirect | 1 |
| java.lang.Byte | 2 |
| jdk.internal.org.objectweb.asm.Type | 1 |
| java.util.PropertyPermission | 1 |
| java.util.Optional | 1 |
| java.security.Provider$ServiceKey | 1 |
| sun.nio.ch.FileKey | 1 |
| java.text.DateFormat | 1 |
| java.net.HttpCookie | 1 |
| org.slf4j.helpers.SubstituteLogger | 1 |
| java.time.Instant | 1 |
| java.lang.invoke.StringConcatFactory$Recipe | 1 |
| javax.management.MBeanParameterInfo | 1 |
| java.net.InterfaceAddress | 1 |
| java.security.CodeSigner | 1 |
| java.util.Calendar | 1 |
| java.text.DecimalFormatSymbols | 1 |
| javax.management.MBeanFeatureInfo | 1 |
| java.util.jar.Manifest | 1 |
| java.io.File | 2 |
| sun.util.locale.BaseLocale | 1 |
| java.text.NumberFormat | 1 |
| java.io.FilePermission | 1 |
| javax.management.MBeanNotificationInfo | 1 |
| java.util.OptionalLong | 1 |
| java.lang.module.ModuleDescriptor$Version | 1 |
| java.lang.module.ModuleDescriptor$Requires | 1 |
| java.time.OffsetDateTime | 1 |
| java.time.ZoneOffset | 1 |
| java.text.MessageFormat | 1 |
| java.lang.Enum | 1 |
| sun.nio.fs.UnixFileStore | 1 |
| java.util.Date | 1 |
| java.lang.module.ResolvedModule | 1 |
| javax.crypto.CryptoPermission | 1 |
| jdk.internal.module.IllegalAccessLogger$Usage | 1 |
| java.net.InetAddress | 1 |
| java.lang.invoke.MethodType | 1 |
| jdk.internal.module.ServicesCatalog$ServiceProvider | 1 |
| java.util.Objects | 1 |
| java.lang.invoke.LambdaFormEditor$Transform | 1 |
| java.time.temporal.ValueRange | 1 |
| java.lang.module.ModuleDescriptor | 1 |
| java.lang.module.ModuleDescriptor$Provides | 1 |
| java.nio.ByteBuffer | 1 |
| java.util.zip.ZipFile$Source$Key | 1 |
| jdk.internal.loader.AbstractClassLoaderValue$Sub | 2 |
| java.lang.reflect.Method | 1 |
| javax.management.Attribute | 1 |
| sun.nio.fs.UnixPath | 1 |
| java.lang.Runtime$Version | 1 |
| java.util.Locale | 1 |
| jdk.internal.misc.Signal | 1 |
| jdk.internal.module.ModuleReferenceImpl | 1 |
| java.lang.module.ModuleReference | 1 |
| java.net.URI | 1 |
The following table shows a list of functions that are optimal targets. Optimal targets are identified by finding the functions that in combination, yield a high code coverage.
| Func name | Functions filename | Arg count | Args | Function depth | hitcount | instr count | bb count | cyclomatic complexity | Reachable functions | Incoming references | total cyclomatic complexity | Unreached complexity |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
[org.bytedeco.javacpp.tools.Parser].parse(java.io.File,java.lang.String[],java.lang.Class)
|
org.bytedeco.javacpp.tools.Parser | 3 | ['java.io.File', 'java.lang.String[]', 'java.lang.Class'] | 30 | 0 | 528 | 113 | 46 | 648 | 5 | 2662 | 2386 |
[org.bytedeco.javacpp.tools.Generator].methods(java.lang.Class
>
)
|
org.bytedeco.javacpp.tools.Generator | 1 | ['java.lang.Class > '] | 5 | 0 | 471 | 125 | 75 | 136 | 0 | 786 | 785 |
[org.bytedeco.javacpp.tools.Builder].generateAndCompile(java.lang.Class[],java.lang.String,boolean,boolean)
|
org.bytedeco.javacpp.tools.Builder | 4 | ['java.lang.Class[]', 'java.lang.String', 'boolean', 'boolean'] | 8 | 0 | 422 | 83 | 36 | 287 | 3 | 587 | 281 |
[org.bytedeco.javacpp.Loader].load(java.lang.Class[],boolean)
|
org.bytedeco.javacpp.Loader | 2 | ['java.lang.Class[]', 'boolean'] | 8 | 0 | 53 | 16 | 8 | 253 | 1 | 470 | 208 |
[org.bytedeco.javacpp.tools.Generator].callback(java.lang.Class
>
,java.lang.reflect.Method,java.lang.String,int,boolean,org.bytedeco.javacpp.tools.MethodInformation)
|
org.bytedeco.javacpp.tools.Generator | 6 | ['java.lang.Class > ', 'java.lang.reflect.Method', 'java.lang.String', 'int', 'boolean', 'org.bytedeco.javacpp.tools.MethodInformation'] | 5 | 0 | 2039 | 277 | 139 | 91 | 0 | 303 | 178 |
[org.bytedeco.javacpp.tools.TokenIndexer].expand(org.bytedeco.javacpp.tools.Token[],int,java.util.HashSet
|
org.bytedeco.javacpp.tools.TokenIndexer | 3 |
['org.bytedeco.javacpp.tools.Token[]', 'int', 'java.util.HashSet
|
20 | 0 | 369 | 100 | 52 | 300 | 0 | 332 | 56 |
[org.bytedeco.javacpp.Pointer].init(long,long,long,long)
|
org.bytedeco.javacpp.Pointer | 4 | ['long', 'long', 'long', 'long'] | 6 | 0 | 17 | 4 | 3 | 43 | 0 | 53 | 51 |
Implementing fuzzers that target the above functions will improve reachability such that it becomes:
If you implement fuzzers for these functions, the status of all functions in the project will be:
| Func name | Functions filename | Args | Function call depth | Reached by Fuzzers | Fuzzers runtime hit | Func lines hit % | I Count | BB Count | Cyclomatic complexity | Functions reached | Reached by functions | Accumulated cyclomatic complexity | Undiscovered complexity |
|---|
This sections provides heuristics that can be used as input to a fuzz engine when running a given fuzz target. The current focus is on providing input that is usable by libFuzzer.
Use this with the libFuzzer -dict=DICT.file flag
Use one of these functions as input to libfuzzer with flag: -focus_function name
-focus_function=['equals(java.lang.Object)', 'strip(java.lang.String)', 'nextToken()', 'getFirst(java.lang.String)', 'readChar()', 'splitNamespace(java.lang.String,boolean)', 'tokenize()', 'normalize(java.lang.String,boolean,boolean)']
This section shows analysis of runtime coverage data.
For futher technical details on how this section is generated, please see the Glossary .
| Func name | Function total lines | Lines covered at runtime | percentage covered | Reached by fuzzers |
|---|---|---|---|---|
| [org.bytedeco.javacpp.indexer.HyperslabIndexTest].testIndexIJ() | 37 | 0 | 0.0% | |
| [org.bytedeco.javacpp.indexer.HyperslabIndexTest].testIndexIndices2D() | 37 | 0 | 0.0% | |
|
[org.bytedeco.javacpp.tools.Info].
|
50 | 24 | 48.0% | |
| [org.bytedeco.javacpp.tools.Parser].containers(org.bytedeco.javacpp.tools.Context,org.bytedeco.javacpp.tools.DeclarationList) | 319 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].template(org.bytedeco.javacpp.tools.Context) | 39 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].templateArguments(org.bytedeco.javacpp.tools.Context) | 57 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].type(org.bytedeco.javacpp.tools.Context,boolean) | 269 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].declarator(org.bytedeco.javacpp.tools.Context,java.lang.String,int,boolean,int,boolean,boolean) | 452 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].commentDoc(java.lang.String,int) | 67 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].commentBefore() | 38 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].commentAfter() | 36 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].attribute(boolean) | 40 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].parameters(org.bytedeco.javacpp.tools.Context,int,boolean) | 106 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].function(org.bytedeco.javacpp.tools.Context,org.bytedeco.javacpp.tools.DeclarationList) | 334 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].variable(org.bytedeco.javacpp.tools.Context,org.bytedeco.javacpp.tools.DeclarationList) | 150 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].macro(org.bytedeco.javacpp.tools.Context,org.bytedeco.javacpp.tools.DeclarationList) | 186 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].typedef(org.bytedeco.javacpp.tools.Context,org.bytedeco.javacpp.tools.DeclarationList) | 85 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].group(org.bytedeco.javacpp.tools.Context,org.bytedeco.javacpp.tools.DeclarationList) | 369 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].enumeration(org.bytedeco.javacpp.tools.Context,org.bytedeco.javacpp.tools.DeclarationList) | 234 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].declarations(org.bytedeco.javacpp.tools.Context,org.bytedeco.javacpp.tools.DeclarationList) | 84 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Parser].parse(org.bytedeco.javacpp.tools.Context,org.bytedeco.javacpp.tools.DeclarationList[],java.lang.String,java.lang.String,boolean) | 47 | 0 | 0.0% | |
| [org.bytedeco.javacpp.tools.Parser].parse(java.io.File[],java.lang.String,java.lang.Class) | 155 | 0 | 0.0% | |
| [org.bytedeco.javacpp.tools.ClassScanner].addPackage(java.lang.String,boolean) | 31 | 0 | 0.0% | [] |
|
[org.bytedeco.javacpp.tools.Context].
|
36 | 0 | 0.0% | |
| [org.bytedeco.javacpp.tools.Context].qualify(java.lang.String,java.lang.String) | 44 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.CacheMojo].execute() | 40 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Generator].generate(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],java.lang.Class) | 55 | 0 | 0.0% | |
| [org.bytedeco.javacpp.tools.Generator].classes(boolean,boolean,boolean,boolean,java.lang.String,java.lang.String,java.lang.String[],java.lang.Class) | 1714 | 0 | 0.0% | |
| [org.bytedeco.javacpp.tools.Generator].methods(java.lang.Class) | 125 | 0 | 0.0% | |
| [org.bytedeco.javacpp.tools.Generator].parametersBefore(org.bytedeco.javacpp.tools.MethodInformation) | 116 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Generator].returnBefore(org.bytedeco.javacpp.tools.MethodInformation) | 103 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Generator].call(org.bytedeco.javacpp.tools.MethodInformation,java.lang.String,boolean) | 186 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Generator].returnAfter(org.bytedeco.javacpp.tools.MethodInformation) | 154 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Generator].parametersAfter(org.bytedeco.javacpp.tools.MethodInformation) | 67 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Generator].callback(java.lang.Class,java.lang.reflect.Method,java.lang.String,int,boolean,org.bytedeco.javacpp.tools.MethodInformation) | 396 | 0 | 0.0% | |
| [org.bytedeco.javacpp.tools.Generator].methodInformation(java.lang.reflect.Method) | 161 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Generator].adapterInformation(boolean,java.lang.String[],java.lang.annotation.Annotation) | 51 | 0 | 0.0% | |
| [org.bytedeco.javacpp.tools.Generator].cppCastTypeName(java.lang.Class[],java.lang.annotation.Annotation) | 44 | 0 | 0.0% | |
| [org.bytedeco.javacpp.tools.Generator].cppTypeName(java.lang.Class[],java.lang.annotation.Annotation) | 46 | 0 | 0.0% | |
| [org.bytedeco.javacpp.tools.Generator].cppFunctionTypeName(java.lang.reflect.Method[]) | 50 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Generator].jniTypeName(java.lang.Class) | 41 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.TokenIndexer].filter(org.bytedeco.javacpp.tools.Token[],int) | 56 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.TokenIndexer].expand(org.bytedeco.javacpp.tools.Token[],int,java.util.HashSet) | 105 | 0 | 0.0% | |
|
[org.bytedeco.javacpp.tools.BuildMojo].
|
47 | 0 | 0.0% | |
| [org.bytedeco.javacpp.tools.BuildMojo].execute() | 148 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Builder].includeJavaPaths(org.bytedeco.javacpp.ClassProperties,boolean) | 48 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Builder].compile(java.lang.String[],java.lang.String,org.bytedeco.javacpp.ClassProperties,java.io.File) | 149 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Builder].getOutputPath(java.lang.Class[][],java.lang.String) | 45 | 0 | 0.0% | |
| [org.bytedeco.javacpp.tools.Builder].generateAndCompile(java.lang.Class[],java.lang.String,boolean,boolean) | 86 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Builder].build() | 229 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Builder].printHelp() | 36 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.tools.Builder].main(java.lang.String[]) | 106 | 0 | 0.0% | |
| [org.bytedeco.javacpp.tools.DeclarationList].add(org.bytedeco.javacpp.tools.Declaration,java.lang.String) | 95 | 0 | 0.0% | ['JavacppFuzzer'] |
| [org.bytedeco.javacpp.Loader].loadProperties(java.lang.String,java.lang.String) | 41 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.Loader].cacheResource(java.net.URL,java.lang.String) | 144 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.Loader].extractResource(java.net.URL,java.io.File,java.lang.String,java.lang.String,boolean) | 64 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.Loader].findResources(java.lang.Class,java.lang.String,int) | 34 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.Loader].checkPlatform(java.lang.Class,java.util.Properties,boolean) | 37 | 0 | 0.0% | |
| [org.bytedeco.javacpp.Loader].load(java.lang.Class,java.util.Properties,boolean,java.lang.String) | 135 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.Loader].findLibrary(java.lang.Class,org.bytedeco.javacpp.ClassProperties,java.lang.String,boolean) | 100 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.Loader].loadLibrary(java.lang.Class[],java.net.URL,java.lang.String[],java.lang.String) | 138 | 0 | 0.0% | |
| [org.bytedeco.javacpp.Loader].createLibraryLink(java.lang.String,org.bytedeco.javacpp.ClassProperties,java.lang.String[],java.lang.String) | 63 | 0 | 0.0% | |
| [org.bytedeco.javacpp.ClassProperties].load(java.lang.Class,boolean) | 147 | 0 | 0.0% | [] |
| [org.bytedeco.javacpp.IndexerTest].testByteIndexer() | 95 | 0 | 0.0% | |
| [org.bytedeco.javacpp.IndexerTest].testShortIndexer() | 56 | 0 | 0.0% | |
| [org.bytedeco.javacpp.IndexerTest].testIntIndexer() | 56 | 0 | 0.0% | |
| [org.bytedeco.javacpp.IndexerTest].testLongIndexer() | 56 | 0 | 0.0% | |
| [org.bytedeco.javacpp.IndexerTest].testFloatIndexer() | 56 | 0 | 0.0% | |
| [org.bytedeco.javacpp.IndexerTest].testDoubleIndexer() | 56 | 0 | 0.0% | |
| [org.bytedeco.javacpp.IndexerTest].testCharIndexer() | 56 | 0 | 0.0% | |
| [org.bytedeco.javacpp.IndexerTest].testBooleanIndexer() | 61 | 0 | 0.0% | |
| [org.bytedeco.javacpp.IndexerTest].testUByteIndexer() | 57 | 0 | 0.0% | |
| [org.bytedeco.javacpp.IndexerTest].testUShortIndexer() | 57 | 0 | 0.0% | |
| [org.bytedeco.javacpp.IndexerTest].testUIntIndexer() | 57 | 0 | 0.0% | |
| [org.bytedeco.javacpp.IndexerTest].testULongIndexer() | 57 | 0 | 0.0% | |
| [org.bytedeco.javacpp.IndexerTest].testHalfIndexer() | 65 | 0 | 0.0% | |
| [org.bytedeco.javacpp.IndexerTest].testBfloat16Indexer() | 65 | 0 | 0.0% | |
| [org.bytedeco.javacpp.PointerTest].testBytePointer() | 91 | 0 | 0.0% | |
| [org.bytedeco.javacpp.PointerTest].testShortPointer() | 71 | 0 | 0.0% | |
| [org.bytedeco.javacpp.PointerTest].testIntPointer() | 71 | 0 | 0.0% | |
| [org.bytedeco.javacpp.PointerTest].testLongPointer() | 71 | 0 | 0.0% | |
| [org.bytedeco.javacpp.PointerTest].testFloatPointer() | 71 | 0 | 0.0% | |
| [org.bytedeco.javacpp.PointerTest].testDoublePointer() | 71 | 0 | 0.0% | |
| [org.bytedeco.javacpp.PointerTest].testCharPointer() | 71 | 0 | 0.0% | |
| [org.bytedeco.javacpp.PointerTest].testBooleanPointer() | 70 | 0 | 0.0% | |
| [org.bytedeco.javacpp.PointerTest].testPointerPointer() | 76 | 0 | 0.0% | |
| [org.bytedeco.javacpp.PointerTest].testPointerScope() | 58 | 0 | 0.0% | |
| [org.bytedeco.javacpp.AdapterTest].testStdString() | 48 | 0 | 0.0% | |
| [org.bytedeco.javacpp.AdapterTest].testSharedPtr() | 34 | 0 | 0.0% | |
| [org.bytedeco.javacpp.BuilderTest].testExtensions() | 47 | 0 | 0.0% | |
| [org.bytedeco.javacpp.Pointer].deallocator(org.bytedeco.javacpp.Pointer$Deallocator) | 52 | 0 | 0.0% | [] |
|
[org.bytedeco.javacpp.Pointer].
|
50 | 0 | 0.0% |
This section shows which files and directories are considered in this report. The main reason for showing this is fuzz introspector may include more code in the reasoning than is desired. This section helps identify if too many files/directories are included, e.g. third party code, which may be irrelevant for the threat model. In the event too much is included, fuzz introspector supports a configuration file that can exclude data from the report. See the following link for more information on how to create a config file: link
| Source file | Reached by | Covered by |
|---|---|---|
| java.io.PrintWriter | [] | [] |
| java.util.concurrent.Callable | [] | [] |
| org.bytedeco.javacpp.chrono.Microseconds | [] | [] |
| org.bytedeco.javacpp.indexer.ShortIndexer$1 | [] | [] |
| org.bytedeco.javacpp.indexer.LongArrayIndexer | [] | [] |
| org.bytedeco.javacpp.tools.Generator$BooleanEnum | [] | [] |
| org.bytedeco.javacpp.tools.Generator$ShortEnum | [] | [] |
| java.util.concurrent.Executor | [] | [] |
| org.bytedeco.javacpp.indexer.UnsafeRaw | [] | [] |
| org.bytedeco.javacpp.indexer.ByteIndexer$1 | [] | [] |
| org.bytedeco.javacpp.tools.ClassScanner | [] | [] |
| org.bytedeco.javacpp.indexer.Bfloat16RawIndexer | [] | [] |
| org.bytedeco.javacpp.chrono.SystemTime | [] | [] |
| org.bytedeco.javacpp.indexer.DoubleArrayIndexer | [] | [] |
| org.bytedeco.javacpp.ClassProperties | [] | [] |
| org.bytedeco.javacpp.tools.Generator | [] | [] |
| org.bytedeco.javacpp.indexer.UIntBufferIndexer | [] | [] |
| org.bytedeco.javacpp.chrono.Hours | [] | [] |
| org.bytedeco.javacpp.indexer.ULongBufferIndexer | [] | [] |
| org.bytedeco.javacpp.chrono.SteadyDuration | [] | [] |
| org.bytedeco.javacpp.indexer.CharRawIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.CharIndexer$1 | [] | [] |
| org.bytedeco.javacpp.chrono.HighResolutionClock | [] | [] |
| org.bytedeco.javacpp.CLongPointer | [] | [] |
| org.bytedeco.javacpp.indexer.ByteBufferIndexer | [] | [] |
| org.bytedeco.javacpp.tools.Slf4jLogger | [] | [] |
| org.bytedeco.javacpp.indexer.UByteRawIndexer | [] | [] |
| org.bytedeco.javacpp.tools.Token | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.indexer.IntBufferIndexer | [] | [] |
| org.bytedeco.javacpp.IntPointer | [] | [] |
| jdk.internal.loader.Loader | [] | [] |
| org.bytedeco.javacpp.Pointer$DeallocatorThread | [] | [] |
| java.nio.file.Files | [] | [] |
| org.bytedeco.javacpp.DoublePointer | [] | [] |
| org.bytedeco.javacpp.indexer.UIntArrayIndexer | [] | [] |
| org.bytedeco.javacpp.tools.Generator$LongEnum | [] | [] |
| org.bytedeco.javacpp.indexer.UShortRawIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.Bfloat16BufferIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.ReverseUnsafeRaw | [] | [] |
| org.bytedeco.javacpp.tools.EncodingFileWriter | [] | [] |
| org.bytedeco.javacpp.Loader | [] | [] |
| org.bytedeco.javacpp.indexer.IntIndexer$1 | [] | [] |
| java.lang.System | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.indexer.Bfloat16ArrayIndexer | [] | [] |
| java.io.OutputStream | [] | [] |
| org.bytedeco.javacpp.LongPointer | [] | [] |
| org.bytedeco.javacpp.indexer.HalfBufferIndexer | [] | [] |
| org.bytedeco.javacpp.Loader$2 | [] | [] |
| org.bytedeco.javacpp.indexer.DoubleIndexer$1 | [] | [] |
| org.bytedeco.javacpp.BytePointer | [] | [] |
| org.bytedeco.javacpp.indexer.IntArrayIndexer | [] | [] |
| org.bytedeco.javacpp.tools.Logger | [] | [] |
| org.bytedeco.javacpp.indexer.UByteArrayIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.LongRawIndexer | [] | [] |
| jdk.internal.loader.Loader$1 | [] | [] |
| org.bytedeco.javacpp.chrono.HighResolutionTime | [] | [] |
| java.lang.Runtime | [] | [] |
| org.bytedeco.javacpp.indexer.CharArrayIndexer | [] | [] |
| org.bytedeco.javacpp.Pointer$ProxyDeallocator | [] | [] |
| org.bytedeco.javacpp.indexer.StrideIndex | [] | [] |
| org.bytedeco.javacpp.indexer.BooleanArrayIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.ULongArrayIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.UIntIndexer$1 | [] | [] |
| jdk.internal.loader.Loader$NullModuleReader | [] | [] |
| org.bytedeco.javacpp.tools.Declaration | [] | [] |
| org.bytedeco.javacpp.tools.Templates | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.PointerPointer | [] | [] |
| org.bytedeco.javacpp.tools.DeclarationList | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.tools.ClearMojo | [] | [] |
| org.bytedeco.javacpp.indexer.ULongIndexer$1 | [] | [] |
| org.bytedeco.javacpp.tools.UserClassLoader | [] | [] |
| org.bytedeco.javacpp.indexer.HalfRawIndexer | [] | [] |
| java.io.InputStream | [] | [] |
| java.io.File | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.tools.CacheMojo$1 | [] | [] |
| org.bytedeco.javacpp.Loader$3 | [] | [] |
| org.bytedeco.javacpp.tools.Info | [] | [] |
| java.io.BufferedWriter | [] | [] |
| org.bytedeco.javacpp.indexer.FloatRawIndexer | [] | [] |
| org.bytedeco.javacpp.tools.InfoMap | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.indexer.BooleanIndexer$1 | [] | [] |
| org.bytedeco.javacpp.tools.BuildMojo | [] | [] |
| org.bytedeco.javacpp.Pointer | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.tools.TokenIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.UShortArrayIndexer | [] | [] |
| jdk.internal.loader.Loader$LoadedModule | [] | [] |
| org.bytedeco.javacpp.BooleanPointer | [] | [] |
| org.bytedeco.javacpp.tools.PointerBufferPoolMXBean | [] | [] |
| org.bytedeco.javacpp.chrono.SystemClock | [] | [] |
| JavacppFuzzer | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.indexer.CharBufferIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.HalfIndexer$1 | [] | [] |
| org.bytedeco.javacpp.chrono.HighResolutionDuration | [] | [] |
| org.bytedeco.javacpp.tools.IndexedSet | [] | [] |
| org.bytedeco.javacpp.tools.Builder$2 | [] | [] |
| org.bytedeco.javacpp.tools.BuildMojo$1 | [] | [] |
| jdk.internal.loader.Loader$3 | [] | [] |
| org.bytedeco.javacpp.indexer.BooleanRawIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.Bfloat16Indexer$1 | [] | [] |
| jdk.internal.org.objectweb.asm.Attribute$NestMembers | [] | [] |
| org.bytedeco.javacpp.indexer.ByteRawIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.UIntRawIndexer | [] | [] |
| org.bytedeco.javacpp.presets.javacpp | [] | [] |
| org.bytedeco.javacpp.indexer.OneIndex | [] | [] |
| org.bytedeco.javacpp.chrono.Seconds | [] | [] |
| org.bytedeco.javacpp.indexer.ByteArrayIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.ULongRawIndexer | [] | [] |
| org.bytedeco.javacpp.tools.CacheMojo$2 | [] | [] |
| org.bytedeco.javacpp.Pointer$CustomDeallocator | [] | [] |
| org.bytedeco.javacpp.tools.ParseMojo | [] | [] |
| org.bytedeco.javacpp.indexer.HalfArrayIndexer | [] | [] |
| java.io.BufferedReader | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.tools.Tokenizer | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.tools.Generator$ByteEnum | [] | [] |
| jdk.internal.module.Builder | [] | [] |
| org.bytedeco.javacpp.tools.Generator$1 | [] | [] |
| org.bytedeco.javacpp.indexer.IntRawIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.ShortBufferIndexer | [] | [] |
| org.bytedeco.javacpp.tools.Builder | [] | [] |
| org.bytedeco.javacpp.ShortPointer | [] | [] |
| jdk.internal.loader.Loader$2 | [] | [] |
| java.nio.file.Paths | [] | [] |
| org.bytedeco.javacpp.indexer.DoubleBufferIndexer | [] | [] |
| jdk.internal.org.objectweb.asm.Attribute | [] | [] |
| jdk.internal.org.objectweb.asm.Type | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.indexer.FloatBufferIndexer | [] | [] |
| org.bytedeco.javacpp.presets.chrono | [] | [] |
| org.bytedeco.javacpp.tools.Parser | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.indexer.FloatArrayIndexer | [] | [] |
| org.bytedeco.javacpp.tools.CacheMojo | [] | [] |
| org.bytedeco.javacpp.chrono.SystemDuration | [] | [] |
| org.bytedeco.javacpp.chrono.SteadyClock | [] | [] |
| org.bytedeco.javacpp.indexer.LongIndexer$1 | [] | [] |
| org.bytedeco.javacpp.Loader$1 | [] | [] |
| org.bytedeco.javacpp.chrono.Minutes | [] | [] |
| org.bytedeco.javacpp.indexer.UShortBufferIndexer | [] | [] |
| org.bytedeco.javacpp.tools.Type | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.FloatPointer | [] | [] |
| org.bytedeco.javacpp.indexer.UByteBufferIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.BooleanBufferIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.HyperslabIndex | [] | [] |
| jdk.internal.org.objectweb.asm.Attribute$NestHost | [] | [] |
| org.bytedeco.javacpp.Loader$Helper | [] | [] |
| org.bytedeco.javacpp.indexer.UShortIndexer$1 | [] | [] |
| org.bytedeco.javacpp.chrono.Nanoseconds | [] | [] |
| org.bytedeco.javacpp.SizeTPointer | [] | [] |
| org.bytedeco.javacpp.BoolPointer | [] | [] |
| org.bytedeco.javacpp.indexer.LongBufferIndexer | [] | [] |
| org.bytedeco.javacpp.tools.Generator$IntEnum | [] | [] |
| org.bytedeco.javacpp.CharPointer | [] | [] |
| org.bytedeco.javacpp.chrono.SteadyTime | [] | [] |
| org.bytedeco.javacpp.indexer.FloatIndexer$1 | [] | [] |
| org.bytedeco.javacpp.Loader$Detector | [] | [] |
| org.bytedeco.javacpp.chrono.SecondsDouble | [] | [] |
| org.bytedeco.javacpp.tools.TemplateMap | ['JavacppFuzzer'] | [] |
| org.bytedeco.javacpp.chrono.Milliseconds | [] | [] |
| org.bytedeco.javacpp.indexer.UByteIndexer$1 | [] | [] |
| org.bytedeco.javacpp.PointerScope | [] | [] |
| org.bytedeco.javacpp.chrono.SecondsFloat | [] | [] |
| org.bytedeco.javacpp.indexer.DoubleRawIndexer | [] | [] |
| org.bytedeco.javacpp.indexer.ShortRawIndexer | [] | [] |
| org.bytedeco.javacpp.PointerScope$1 | [] | [] |
| org.bytedeco.javacpp.tools.Context | [] | [] |
| org.bytedeco.javacpp.Pointer$DeallocatorReference | [] | [] |
| org.bytedeco.javacpp.Pointer$NativeDeallocator | [] | [] |
| org.bytedeco.javacpp.tools.CommandExecutor | [] | [] |
| org.bytedeco.javacpp.indexer.ShortArrayIndexer | [] | [] |
| org.bytedeco.javacpp.tools.Builder$1 | [] | [] |
| java.lang.ProcessBuilder | [] | [] |
| Directory |
|---|
This sections shows the raw data that is used to produce this report. This is mainly used for further processing and developer debugging.
| Fuzzer | Calltree file | Program data file | Coverage file |
|---|---|---|---|
| JavacppFuzzer | fuzzerLogFile-JavacppFuzzer.data | fuzzerLogFile-JavacppFuzzer.data.yaml | jacoco.xml |