Fuzz introspector
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzzers overview

Fuzzer Fuzzer filename Functions Reached Functions unreached Fuzzer depth Files reached Basic blocks reached Cyclomatic complexity Details
fuzz_ubjson_parser_max /src/jsoncons/./fuzzers/fuzz_ubjson_parser_max.cpp 164 96 8 12 720 426 fuzz_ubjson_parser_max.cpp
fuzz_ubjson_encoder /src/jsoncons/./fuzzers/fuzz_ubjson_encoder.cpp 175 136 8 14 742 446 fuzz_ubjson_encoder.cpp
fuzz_bson_parser_max /src/jsoncons/./fuzzers/fuzz_bson_parser_max.cpp 171 94 8 15 782 389 fuzz_bson_parser_max.cpp
fuzz_csv_encoder /src/jsoncons/./fuzzers/fuzz_csv_encoder.cpp 439 218 14 21 3504 1610 fuzz_csv_encoder.cpp
fuzz_bigint /src/jsoncons/./fuzzers/fuzz_bigint.cpp 177 7 12 6 772 437 fuzz_bigint.cpp
fuzz_bson_encoder /src/jsoncons/./fuzzers/fuzz_bson_encoder.cpp 182 133 8 17 802 407 fuzz_bson_encoder.cpp
fuzz_json_parser_max /src/jsoncons/./fuzzers/fuzz_json_parser_max.cpp 234 102 10 13 1858 652 fuzz_json_parser_max.cpp
fuzz_cbor_encoder /src/jsoncons/./fuzzers/fuzz_cbor_encoder.cpp 687 537 14 26 4606 2661 fuzz_cbor_encoder.cpp
fuzz_cbor_parser_max /src/jsoncons/./fuzzers/fuzz_cbor_parser_max.cpp 654 427 14 24 4528 2604 fuzz_cbor_parser_max.cpp
fuzz_msgpack_parser_max /src/jsoncons/./fuzzers/fuzz_msgpack_parser_max.cpp 327 227 12 16 1401 765 fuzz_msgpack_parser_max.cpp
fuzz_cbor_typed_array /src/jsoncons/./fuzzers/fuzz_cbor_typed_array.cpp 688 517 16 26 4632 2702 fuzz_cbor_typed_array.cpp
fuzz_csv /src/jsoncons/./fuzzers/fuzz_csv.cpp 483 770 15 23 3500 1641 fuzz_csv.cpp
fuzz_msgpack_encoder /src/jsoncons/./fuzzers/fuzz_msgpack_encoder.cpp 344 288 12 18 1425 789 fuzz_msgpack_encoder.cpp
fuzz_json_cursor /src/jsoncons/./fuzzers/fuzz_json_cursor.cpp 328 168 12 23 2434 989 fuzz_json_cursor.cpp
fuzz_bson /src/jsoncons/./fuzzers/fuzz_bson.cpp 326 735 10 26 1087 651 fuzz_bson.cpp
fuzz_msgpack /src/jsoncons/./fuzzers/fuzz_msgpack.cpp 488 863 14 26 1713 1033 fuzz_msgpack.cpp
fuzz_parse /src/jsoncons/./fuzzers/fuzz_parse.cpp 302 694 10 16 1900 742 fuzz_parse.cpp
fuzz_json_encoder /src/jsoncons/./fuzzers/fuzz_json_encoder.cpp 273 317 10 16 1956 744 fuzz_json_encoder.cpp
fuzz_cbor /src/jsoncons/./fuzzers/fuzz_cbor.cpp 825 1065 16 33 4850 2885 fuzz_cbor.cpp
fuzz_ubjson /src/jsoncons/./fuzzers/fuzz_ubjson.cpp 319 740 10 23 1025 688 fuzz_ubjson.cpp
fuzz_cbor_cursor /src/jsoncons/./fuzzers/fuzz_cbor_cursor.cpp 758 493 16 32 5106 2963 fuzz_cbor_cursor.cpp
fuzz_msgpack_decode_iterator_source /src/jsoncons/./fuzzers/fuzz_msgpack_decode_iterator_source.cpp 483 860 14 26 1634 962 fuzz_msgpack_decode_iterator_source.cpp
fuzz_msgpack_decode_bytes_source /src/jsoncons/./fuzzers/fuzz_msgpack_decode_bytes_source.cpp 467 860 14 26 1588 936 fuzz_msgpack_decode_bytes_source.cpp
fuzz_cbor_noexcept /src/jsoncons/./fuzzers/fuzz_cbor_noexcept.cpp 1035 1163 15 36 7536 4519 fuzz_cbor_noexcept.cpp

Project functions overview

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 Runtime reached by Fuzzers Combined 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

Fuzzer details

Fuzzer: fuzz_ubjson_parser_max

Call tree

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 21 11.0%
gold [1:9] 20 10.5%
yellow [10:29] 6 3.15%
greenyellow [30:49] 25 13.1%
lawngreen 50+ 118 62.1%
All colors 190 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
6 30 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00030 __cxa_end_catch
3 183 LLVMFuzzerTestOneInput call site: 00183
2 9 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::basic_ubjson_parser , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&) call site: 00009
2 12 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00012
2 20 LLVMFuzzerTestOneInput call site: 00020
2 177 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::parse(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00177 __clang_call_terminate
2 187 LLVMFuzzerTestOneInput call site: 00187
1 7 jsoncons::ubjson::basic_ubjson_reader >, std::__1::allocator >::basic_ubjson_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&) call site: 00007
1 120 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::begin_array(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00120

Runtime coverage analysis

Covered functions
91
Functions that are reachable but not covered
27
Reachable functions
164
Percentage of reachable functions covered
83.54%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_ubjson_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 20
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_options.hpp 7
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp 13
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 18
/src/jsoncons/./include/jsoncons/utility/binary.hpp 14
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/number_readers.hpp 1
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1

Fuzzer: fuzz_ubjson_encoder

Call tree

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 23 11.5%
gold [1:9] 0 0.0%
yellow [10:29] 6 3.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 171 85.5%
All colors 200 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
6 40 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00040 __cxa_end_catch
3 193 LLVMFuzzerTestOneInput call site: 00193
2 11 jsoncons::ubjson::basic_ubjson_encoder >, void>, std::__1::allocator >::basic_ubjson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&) call site: 00011
2 19 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::basic_ubjson_parser , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&) call site: 00019
2 22 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00022
2 30 LLVMFuzzerTestOneInput call site: 00030
2 187 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::parse(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00187 __clang_call_terminate
1 5 jsoncons::ubjson::basic_ubjson_encoder >, void>, std::__1::allocator >::basic_ubjson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&) call site: 00005
1 9 jsoncons::ubjson::basic_ubjson_encoder >, void>, std::__1::allocator >::basic_ubjson_encoder(jsoncons::bytes_sink >, void>&&, jsoncons::ubjson::ubjson_encode_options const&, std::__1::allocator const&) call site: 00009
1 17 jsoncons::ubjson::basic_ubjson_reader >, std::__1::allocator >::basic_ubjson_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&) call site: 00017
1 130 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::begin_array(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00130

Runtime coverage analysis

Covered functions
117
Functions that are reachable but not covered
28
Reachable functions
175
Percentage of reachable functions covered
84.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_ubjson_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 2
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_encoder.hpp 3
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_options.hpp 10
/src/jsoncons/./include/jsoncons/json_visitor.hpp 18
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp 13
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 18
/src/jsoncons/./include/jsoncons/utility/binary.hpp 14
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/number_readers.hpp 1
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1

Fuzzer: fuzz_bson_parser_max

Call tree

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 20 11.6%
gold [1:9] 5 2.90%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 147 85.4%
All colors 172 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
6 29 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00029 __cxa_end_catch
3 165 LLVMFuzzerTestOneInput call site: 00165
2 9 jsoncons::bson::basic_bson_parser >, std::__1::allocator >::basic_bson_parser , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&) call site: 00009
2 12 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00012
2 19 LLVMFuzzerTestOneInput call site: 00019
2 47 jsoncons::bson::basic_bson_parser >, std::__1::allocator >::end_document(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00047 __clang_call_terminate
2 169 LLVMFuzzerTestOneInput call site: 00169
1 7 jsoncons::bson::basic_bson_reader >, std::__1::allocator >::basic_bson_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&) call site: 00007

Runtime coverage analysis

Covered functions
90
Functions that are reachable but not covered
31
Reachable functions
171
Percentage of reachable functions covered
81.87%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_bson_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 19
/src/jsoncons/./include/jsoncons_ext/bson/bson_options.hpp 6
/src/jsoncons/./include/jsoncons_ext/bson/bson_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp 13
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 18
/src/jsoncons/./include/jsoncons/utility/binary.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_decimal128.hpp 3
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 1
/src/jsoncons/./include/jsoncons_ext/bson/bson_oid.hpp 5

Fuzzer: fuzz_csv_encoder

Call tree

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 454 67.4%
gold [1:9] 1 0.14%
yellow [10:29] 1 0.14%
greenyellow [30:49] 5 0.74%
lawngreen 50+ 212 31.5%
All colors 673 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
113 240 jsoncons::decstr_to_double(char const*, unsigned long, double&) call site: 00240 _ZN8jsoncons14unicode_traits8validateIcEENSt3__19enable_ifIXsr6nonstd8is_char8IT_EE5valueENS0_14unicode_resultIS4_EEE4typeEPKS4_m
108 506 jsoncons::csv::basic_csv_parser >::parse_some(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00506 _ZN8jsoncons18basic_json_visitorIcE17byte_string_valueINS_17basic_byte_stringINSt3__19allocatorIhEEEEEEbRKT_NS_12semantic_tagERKNS_11ser_contextENS4_9enable_ifIXsr6nonstd18is_bytes_view_likeIS8_EE5valueEiE4typeE
60 393 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00393 __cxa_allocate_exception
31 91 void jsoncons::csv::detail::parse_column_types > >(std::__1::basic_string , std::__1::allocator > const&, std::__1::vector >&) call site: 00091 __cxa_allocate_exception
15 186 jsoncons::basic_json_parser >::basic_json_parser(jsoncons::basic_json_decode_options const&, std::__1::allocator const&) call site: 00186
11 202 jsoncons::basic_json_parser >::basic_json_parser(std::__1::allocator const&) call site: 00202 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_
11 470 jsoncons::csv::basic_csv_parser >::end_value(jsoncons::basic_json_visitor &, bool, std::__1::error_code&) call site: 00470 isspace
10 171 jsoncons::csv::basic_csv_parser >::end_unquoted_string_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00171
7 228 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ call site: 00228
6 488 jsoncons::csv::basic_csv_parser >::end_quoted_string_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00488
5 496 jsoncons::csv::basic_csv_parser >::parse_some(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00496
4 631 jsoncons::csv::basic_csv_parser >::parse_some(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00631

Runtime coverage analysis

Covered functions
166
Functions that are reachable but not covered
168
Reachable functions
439
Percentage of reachable functions covered
61.73%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_csv_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 3
/src/jsoncons/./include/jsoncons_ext/csv/csv_encoder.hpp 3
/src/jsoncons/./include/jsoncons_ext/csv/csv_options.hpp 53
/src/jsoncons/./include/jsoncons/json_visitor.hpp 30
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 1
/src/jsoncons/./include/jsoncons_ext/csv/csv_reader.hpp 4
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 4
/src/jsoncons/./include/jsoncons/source.hpp 11
/src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp 25
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 6
/src/jsoncons/./include/jsoncons/json_parser.hpp 33
/src/jsoncons/./include/jsoncons/json_options.hpp 17
/src/jsoncons/./include/jsoncons/utility/number_readers.hpp 10
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 2
/src/jsoncons/./include/jsoncons/json_exception.hpp 6
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3

Fuzzer: fuzz_bigint

Call tree

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 93 26.0%
gold [1:9] 11 3.08%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 253 70.8%
All colors 357 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
18 138 jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&) call site: 00138
18 160 jsoncons::detail::bigint_storage >::reduce() call site: 00160
10 113 jsoncons::basic_bigint >::get_words() const call site: 00113
10 243 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00243 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
6 335 jsoncons::basic_bigint >::operator>>=(unsigned long) call site: 00335
5 280 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00280
3 26 jsoncons::detail::bigint_storage >::allocated_storage::reserve(unsigned long, std::__1::allocator const&) call site: 00026 __clang_call_terminate
3 105 jsoncons::detail::bigint_storage >::allocated_storage::allocated_storage(jsoncons::detail::bigint_storage >::allocated_storage const&, std::__1::allocator const&) call site: 00105 __clang_call_terminate
3 109 jsoncons::basic_bigint >::set_negative(bool) call site: 00109
3 195 jsoncons::to_bignum_result jsoncons::to_bigint >(char const*, unsigned long, jsoncons::basic_bigint >&, std::__1::allocator const&) call site: 00195 __cxa_allocate_exception
2 4 jsoncons::basic_bigint >::basic_bigint (char const*, std::__1::allocator const&) call site: 00004
2 36 jsoncons::detail::bigint_storage >::allocated_storage::round_up(unsigned long) call site: 00036

Runtime coverage analysis

Covered functions
82
Functions that are reachable but not covered
17
Reachable functions
177
Percentage of reachable functions covered
90.4%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_bigint.cpp 1
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 77
/src/jsoncons/./include/jsoncons/utility/bignum_common.hpp 1
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 7
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 1

Fuzzer: fuzz_bson_encoder

Call tree

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 22 12.0%
gold [1:9] 5 2.74%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 155 85.1%
All colors 182 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
6 39 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00039 __cxa_end_catch
3 175 LLVMFuzzerTestOneInput call site: 00175
2 11 jsoncons::bson::basic_bson_encoder >, void>, std::__1::allocator >::basic_bson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&) call site: 00011
2 19 jsoncons::bson::basic_bson_parser >, std::__1::allocator >::basic_bson_parser , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&) call site: 00019
2 22 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00022
2 29 LLVMFuzzerTestOneInput call site: 00029
2 57 jsoncons::bson::basic_bson_parser >, std::__1::allocator >::end_document(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00057 __clang_call_terminate
1 5 jsoncons::bson::basic_bson_encoder >, void>, std::__1::allocator >::basic_bson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&) call site: 00005
1 9 jsoncons::bson::basic_bson_encoder >, void>, std::__1::allocator >::basic_bson_encoder(jsoncons::bytes_sink >, void>&&, jsoncons::bson::bson_encode_options const&, std::__1::allocator const&) call site: 00009
1 17 jsoncons::bson::basic_bson_reader >, std::__1::allocator >::basic_bson_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&) call site: 00017

Runtime coverage analysis

Covered functions
127
Functions that are reachable but not covered
32
Reachable functions
182
Percentage of reachable functions covered
82.42%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_bson_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 2
/src/jsoncons/./include/jsoncons_ext/bson/bson_encoder.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_options.hpp 9
/src/jsoncons/./include/jsoncons/json_visitor.hpp 17
/src/jsoncons/./include/jsoncons_ext/bson/bson_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp 13
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 18
/src/jsoncons/./include/jsoncons/utility/binary.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_decimal128.hpp 3
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 1
/src/jsoncons/./include/jsoncons_ext/bson/bson_oid.hpp 5

Fuzzer: fuzz_json_parser_max

Call tree

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 59 19.0%
gold [1:9] 2 0.64%
yellow [10:29] 5 1.61%
greenyellow [30:49] 3 0.96%
lawngreen 50+ 241 77.7%
All colors 310 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
5 293 jsoncons::basic_json_reader >, std::__1::allocator >::check_done(std::__1::error_code&) call site: 00293
4 126 jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00126
4 269 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00269 __cxa_allocate_exception
3 13 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00013
3 56 jsoncons::stream_source >::fill_buffer(char*, unsigned long) call site: 00056 __cxa_end_catch
3 98 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ call site: 00098
3 110 jsoncons::decstr_to_double(char const*, unsigned long, double&) call site: 00110
3 165 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00165
3 169 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00169
2 10 jsoncons::json_source_adaptor > >::json_source_adaptor , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) call site: 00010
2 34 jsoncons::basic_json_reader >, std::__1::allocator >::basic_json_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, jsoncons::basic_json_decode_options const&, std::__1::allocator const&) call site: 00034
2 40 jsoncons::basic_json_reader >, std::__1::allocator >::basic_json_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, std::__1::allocator const&) call site: 00040

Runtime coverage analysis

Covered functions
120
Functions that are reachable but not covered
30
Reachable functions
234
Percentage of reachable functions covered
87.18%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_json_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 18
/src/jsoncons/./include/jsoncons/json_reader.hpp 7
/src/jsoncons/./include/jsoncons/json_options.hpp 17
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 5
/src/jsoncons/./include/jsoncons/source.hpp 11
/src/jsoncons/./include/jsoncons/json_parser.hpp 34
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 7
/src/jsoncons/./include/jsoncons/utility/number_readers.hpp 10
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 2
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1

Fuzzer: fuzz_cbor_encoder

Call tree

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 502 41.9%
gold [1:9] 322 26.8%
yellow [10:29] 118 9.84%
greenyellow [30:49] 28 2.33%
lawngreen 50+ 228 19.0%
All colors 1198 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
27 1040 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_bigfloat(unsigned char, std::__1::basic_string , std::__1::allocator >&, std::__1::error_code&) call site: 01040 _ZN8jsoncons14integer_to_hexImNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEENS1_9enable_ifIXsr6nonstd10is_integerIT_EE5valueEmE4typeES9_RT0_
27 1116 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::begin_classical_array_storage(unsigned char, std::__1::error_code&) call site: 01116 __cxa_allocate_exception
24 491 _ZN8jsoncons21basic_generic_visitorIcE17byte_string_valueINS_16byte_string_viewEEEbRKT_NS_12semantic_tagERKNS_11ser_contextERNSt3__110error_codeENSB_9enable_ifIXsr6nonstd18is_bytes_view_likeIS4_EE5valueEiE4typeE call site: 00491 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIhEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
21 697 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIdEENSt3__19enable_ifIXsr17is_floating_pointIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE call site: 00697 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIdEENSt3__19enable_ifIXsr17is_floating_pointIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
17 551 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00551 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIjEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
17 573 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00573 _ZN8jsoncons4cbor20typed_array_iterator11write_valueImEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
17 636 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00636 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIiEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
17 658 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00658 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIlEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
17 723 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00723 _ZN8jsoncons6binary9byte_swapIdEENSt3__19enable_ifIXaasr3std17is_floating_pointIT_EE5valueeqstS4_Lm8EES4_E4typeES4_
16 448 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00448
15 473 void jsoncons::basic_bigint >::append_to_buffer , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&) const call site: 00473 _ZN8jsoncons21basic_generic_visitorIcE17byte_string_valueINS_16byte_string_viewEEEbRKT_NS_12semantic_tagERKNS_11ser_contextERNSt3__110error_codeENSB_9enable_ifIXsr6nonstd18is_bytes_view_likeIS4_EE5valueEiE4typeE
15 881 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_item(jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00881

Runtime coverage analysis

Covered functions
359
Functions that are reachable but not covered
171
Reachable functions
687
Percentage of reachable functions covered
75.11%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_cbor_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 3
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp 5
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp 11
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons/utility/binary.hpp 16
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp 45
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 19
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 20
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 7
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 80
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 7
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 1
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 54
/src/jsoncons/./include/jsoncons/typed_array.hpp 11
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_typed_array_iterator.hpp 36
/src/jsoncons/./include/jsoncons/utility/function_objects.hpp 11
/src/jsoncons/./include/jsoncons/nonstd/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp 1
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/bigdec.hpp 5
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 4
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 8

Fuzzer: fuzz_cbor_parser_max

Call tree

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 130 11.1%
gold [1:9] 2 0.17%
yellow [10:29] 2 0.17%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1035 88.5%
All colors 1169 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
14 345 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00345 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 238 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00238
6 426 jsoncons::basic_bigint >::operator>>=(unsigned long) call site: 00426
5 370 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00370
4 312 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00312 __cxa_allocate_exception
4 1163 LLVMFuzzerTestOneInput call site: 01163
3 38 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::parse(jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00038 __clang_call_terminate
3 75 jsoncons::stream_source >::read(unsigned char*, unsigned long) call site: 00075 __cxa_begin_catch
3 206 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&) call site: 00206
3 415 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00415 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
2 9 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::basic_cbor_parser , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::cbor::cbor_decode_options const&, std::__1::allocator const&) call site: 00009
2 12 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00012

Runtime coverage analysis

Covered functions
485
Functions that are reachable but not covered
39
Reachable functions
654
Percentage of reachable functions covered
94.04%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_cbor_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp 6
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp 45
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 19
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 20
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/utility/binary.hpp 13
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 7
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 80
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 7
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 1
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 54
/src/jsoncons/./include/jsoncons/typed_array.hpp 11
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_typed_array_iterator.hpp 36
/src/jsoncons/./include/jsoncons/utility/function_objects.hpp 11
/src/jsoncons/./include/jsoncons/nonstd/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp 1
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/bigdec.hpp 5
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 4
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 8

Fuzzer: fuzz_msgpack_parser_max

Call tree

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 123 22.7%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 418 77.2%
All colors 541 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
16 461 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00461
14 385 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00385 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 281 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00281
11 410 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00410
6 41 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00041 __cxa_end_catch
6 439 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00439
5 267 jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&) call site: 00267
5 455 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00455 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
4 352 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00352 __cxa_allocate_exception
4 535 LLVMFuzzerTestOneInput call site: 00535
3 249 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&) call site: 00249
2 9 jsoncons::msgpack::basic_msgpack_parser >, std::__1::allocator >::basic_msgpack_parser , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::msgpack::msgpack_decode_options const&, std::__1::allocator const&) call site: 00009

Runtime coverage analysis

Covered functions
238
Functions that are reachable but not covered
38
Reachable functions
327
Percentage of reachable functions covered
88.38%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_msgpack_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp 6
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp 10
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 16
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 17
/src/jsoncons/./include/jsoncons/utility/binary.hpp 20
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 76
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 7
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 1

Fuzzer: fuzz_cbor_typed_array

Call tree

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 172 14.3%
gold [1:9] 2 0.16%
yellow [10:29] 2 0.16%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1026 85.3%
All colors 1202 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
14 341 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00341 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 234 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00234
12 469 jsoncons::nonstd::span jsoncons::typed_array_cast (jsoncons::nonstd::span ) call site: 00469 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIhEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
6 422 jsoncons::basic_bigint >::operator>>=(unsigned long) call site: 00422
5 366 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00366
5 509 void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00509 _ZN8jsoncons4cbor20typed_array_iterator11write_valueItEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 531 void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00531 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIjEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 553 void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00553 _ZN8jsoncons4cbor20typed_array_iterator11write_valueImEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 571 jsoncons::nonstd::span jsoncons::typed_array_cast (jsoncons::nonstd::span ) call site: 00571 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIaEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 594 void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00594 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIsEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 616 void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00616 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIiEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 638 void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00638 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIlEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE

Runtime coverage analysis

Covered functions
446
Functions that are reachable but not covered
47
Reachable functions
688
Percentage of reachable functions covered
93.17%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_cbor_typed_array.cpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_cursor.hpp 13
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp 6
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/staj_cursor.hpp 4
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp 52
/src/jsoncons/./include/jsoncons/source.hpp 19
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 18
/src/jsoncons/./include/jsoncons/json_visitor.hpp 2
/src/jsoncons/./include/jsoncons/staj_event.hpp 2
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/utility/binary.hpp 13
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 7
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 80
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 7
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 1
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 54
/src/jsoncons/./include/jsoncons/typed_array.hpp 11
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_typed_array_iterator.hpp 36
/src/jsoncons/./include/jsoncons/utility/function_objects.hpp 11
/src/jsoncons/./include/jsoncons/nonstd/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp 1
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/bigdec.hpp 5
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 4
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 8

Fuzzer: fuzz_csv

Call tree

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 462 65.1%
gold [1:9] 2 0.28%
yellow [10:29] 0 0.0%
greenyellow [30:49] 4 0.56%
lawngreen 50+ 241 33.9%
All colors 709 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
113 240 jsoncons::decstr_to_double(char const*, unsigned long, double&) call site: 00240 _ZN8jsoncons14unicode_traits8validateIcEENSt3__19enable_ifIXsr6nonstd8is_char8IT_EE5valueENS0_14unicode_resultIS4_EEE4typeEPKS4_m
108 506 jsoncons::csv::basic_csv_parser >::parse_some(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00506 _ZN8jsoncons18basic_json_visitorIcE17byte_string_valueINS_17basic_byte_stringINSt3__19allocatorIhEEEEEEbRKT_NS_12semantic_tagERKNS_11ser_contextENS4_9enable_ifIXsr6nonstd18is_bytes_view_likeIS8_EE5valueEiE4typeE
44 409 jsoncons::ser_error::ser_error(std::__1::error_code, unsigned long, unsigned long) call site: 00409 __cxa_throw
42 171 jsoncons::csv::basic_csv_parser >::end_unquoted_string_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00171 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_
30 101 void jsoncons::csv::detail::parse_column_types > >(std::__1::basic_string , std::__1::allocator > const&, std::__1::vector >&) call site: 00101 __cxa_allocate_exception
13 393 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00393 __cxa_allocate_exception
11 470 jsoncons::csv::basic_csv_parser >::end_value(jsoncons::basic_json_visitor &, bool, std::__1::error_code&) call site: 00470 isspace
8 19 jsoncons::heap::heap_string_factory >::destroy(jsoncons::heap::heap_string >*) call site: 00019
7 228 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ call site: 00228
6 488 jsoncons::csv::basic_csv_parser >::end_quoted_string_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00488
4 56 LLVMFuzzerTestOneInput call site: 00056
4 631 jsoncons::csv::basic_csv_parser >::parse_some(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00631

Runtime coverage analysis

Covered functions
224
Functions that are reachable but not covered
190
Reachable functions
483
Percentage of reachable functions covered
60.66%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_csv.cpp 1
/src/jsoncons/./include/jsoncons/json_decoder.hpp 2
/src/jsoncons/./include/jsoncons/json_visitor.hpp 30
/src/jsoncons/./include/jsoncons/basic_json.hpp 16
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 6
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 4
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons_ext/csv/csv_options.hpp 44
/src/jsoncons/./include/jsoncons_ext/csv/csv_reader.hpp 5
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 3
/src/jsoncons/./include/jsoncons/source.hpp 4
/src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp 27
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 6
/src/jsoncons/./include/jsoncons/json_parser.hpp 33
/src/jsoncons/./include/jsoncons/json_options.hpp 17
/src/jsoncons/./include/jsoncons/utility/number_readers.hpp 10
/src/jsoncons/./include/jsoncons/json_exception.hpp 14
/usr/local/bin/../include/c++/v1/__exception/exception.h 2
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/usr/local/bin/../include/c++/v1/stdexcept 1

Fuzzer: fuzz_msgpack_encoder

Call tree

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 109 19.7%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 444 80.2%
All colors 553 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
16 471 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00471
13 291 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00291
11 420 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00420
6 51 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00051 __cxa_end_catch
6 449 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00449
5 277 jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&) call site: 00277
4 362 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00362 __cxa_allocate_exception
4 545 LLVMFuzzerTestOneInput call site: 00545
3 259 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&) call site: 00259
3 465 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00465 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
2 11 jsoncons::msgpack::basic_msgpack_encoder >, void>, std::__1::allocator >::basic_msgpack_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&) call site: 00011
2 19 jsoncons::msgpack::basic_msgpack_parser >, std::__1::allocator >::basic_msgpack_parser , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::msgpack::msgpack_decode_options const&, std::__1::allocator const&) call site: 00019

Runtime coverage analysis

Covered functions
273
Functions that are reachable but not covered
42
Reachable functions
344
Percentage of reachable functions covered
87.79%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_msgpack_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 2
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_encoder.hpp 3
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp 9
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp 10
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 16
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 17
/src/jsoncons/./include/jsoncons/utility/binary.hpp 20
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 76
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 7
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 1

Fuzzer: fuzz_json_cursor

Call tree

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 171 41.2%
gold [1:9] 17 4.09%
yellow [10:29] 7 1.68%
greenyellow [30:49] 2 0.48%
lawngreen 50+ 218 52.5%
All colors 415 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
49 210 jsoncons::basic_json_parser >::parse_false(char const*, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00210
30 353 void jsoncons::prettify_string , std::__1::allocator > >(char const*, int, int, int, int, std::__1::basic_string , std::__1::allocator >&) call site: 00353 snprintf
18 313 jsoncons::write_double::write_double(jsoncons::float_chars_format, int) call site: 00313 ldexp
9 161 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00161
8 294 _ZNK8jsoncons16basic_staj_eventIcE4get_INSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEES8_cEENS3_9enable_ifIXaasr6nonstd9is_stringIT_EE5valuesr3std7is_sameINSB_10value_typeET1_EE5valueESB_E4typeET0_RNS3_10error_codeE call site: 00294 _ZN8jsoncons15bytes_to_stringIPKhNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEENS3_9enable_ifIXaasr3std7is_sameINS3_15iterator_traitsIT_E10value_typeEhEE5valuesr6nonstd9is_stringIT0_EE5valueEmE4typeESC_SC_NS_12semantic_tagERSF_
8 392 bool jsoncons::dtoa_general , std::__1::allocator > >(double, char, std::__1::basic_string , std::__1::allocator >&, std::__1::integral_constant ) call site: 00392 __cxa_allocate_exception
4 124 jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00124
4 267 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00267 __cxa_allocate_exception
3 52 jsoncons::stream_source >::fill_buffer(char*, unsigned long) call site: 00052 __cxa_end_catch
3 96 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ call site: 00096
3 108 jsoncons::decstr_to_double(char const*, unsigned long, double&) call site: 00108
2 5 jsoncons::basic_json_cursor >, std::__1::allocator >::basic_json_cursor , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, std::__1::error_code&) call site: 00005

Runtime coverage analysis

Covered functions
153
Functions that are reachable but not covered
62
Reachable functions
328
Percentage of reachable functions covered
81.1%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_json_cursor.cpp 1
/src/jsoncons/./include/jsoncons/json_cursor.hpp 10
/src/jsoncons/./include/jsoncons/json_options.hpp 17
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/staj_cursor.hpp 5
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 4
/src/jsoncons/./include/jsoncons/source.hpp 10
/src/jsoncons/./include/jsoncons/json_parser.hpp 34
/src/jsoncons/./include/jsoncons/json_visitor.hpp 16
/src/jsoncons/./include/jsoncons/staj_event.hpp 7
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 7
/src/jsoncons/./include/jsoncons/utility/number_readers.hpp 10
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 2
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/nonstd/make_obj_using_allocator.hpp 3
/src/jsoncons/./include/jsoncons/utility/conversion.hpp 1
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 4
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 15
/src/jsoncons/./include/jsoncons/nonstd/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 2
/usr/local/bin/../include/c++/v1/stdexcept 1
/src/jsoncons/./include/jsoncons/utility/detail/grisu3.hpp 12

Fuzzer: fuzz_bson

Call tree

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 30 10.2%
gold [1:9] 0 0.0%
yellow [10:29] 23 7.87%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 239 81.8%
All colors 292 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
5 70 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00070 __cxa_end_catch
3 213 _ZN8jsoncons4bson15try_decode_bsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19bson_decode_optionsE call site: 00213
3 217 _ZN8jsoncons4bson15try_decode_bsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19bson_decode_optionsE call site: 00217
2 53 jsoncons::bson::basic_bson_parser >, std::__1::allocator >::basic_bson_parser >&>(std::__1::basic_istream >&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&) call site: 00053
2 56 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00056
2 87 jsoncons::bson::basic_bson_parser >, std::__1::allocator >::end_document(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00087 __clang_call_terminate
2 259 _ZN8jsoncons4bson15try_decode_bsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19bson_decode_optionsE call site: 00259
2 262 _ZN8jsoncons4bson15try_decode_bsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19bson_decode_optionsE call site: 00262
2 265 jsoncons::basic_json > jsoncons::bson::decode_bson >, std::__1::basic_istringstream , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) call site: 00265
2 275 jsoncons::basic_json > jsoncons::bson::decode_bson >, std::__1::basic_istringstream , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) call site: 00275
1 5 _ZN8jsoncons4bson15try_decode_bsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19bson_decode_optionsE call site: 00005
1 42 jsoncons::basic_json >::~basic_json() call site: 00042 __cxa_begin_catch

Runtime coverage analysis

Covered functions
356
Functions that are reachable but not covered
44
Reachable functions
326
Percentage of reachable functions covered
86.5%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_bson.cpp 1
/src/jsoncons/./include/jsoncons_ext/bson/decode_bson.hpp 2
/src/jsoncons/./include/jsoncons_ext/bson/bson_options.hpp 6
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 17
/src/jsoncons/./include/jsoncons/basic_json.hpp 30
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 4
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 3
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/bson/bson_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp 15
/src/jsoncons/./include/jsoncons/ser_common.hpp 7
/src/jsoncons/./include/jsoncons/source.hpp 19
/src/jsoncons/./include/jsoncons/utility/binary.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_decimal128.hpp 3
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 1
/src/jsoncons/./include/jsoncons_ext/bson/bson_oid.hpp 5
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 9
/src/jsoncons/./include/jsoncons/json_type.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 4
/usr/local/bin/../include/c++/v1/__exception/exception.h 1

Fuzzer: fuzz_msgpack

Call tree

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 134 20.3%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 526 79.6%
All colors 660 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
16 501 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00501
14 425 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00425 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 321 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00321
11 450 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00450
6 479 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00479
5 82 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00082 __cxa_end_catch
5 307 jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&) call site: 00307
5 495 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00495 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
4 392 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00392 __cxa_allocate_exception
4 583 _ZN8jsoncons7msgpack18try_decode_msgpackINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_22msgpack_decode_optionsE call site: 00583
3 289 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&) call site: 00289
3 588 _ZN8jsoncons7msgpack18try_decode_msgpackINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_22msgpack_decode_optionsE call site: 00588

Runtime coverage analysis

Covered functions
519
Functions that are reachable but not covered
55
Reachable functions
488
Percentage of reachable functions covered
88.73%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_msgpack.cpp 1
/src/jsoncons/./include/jsoncons_ext/msgpack/decode_msgpack.hpp 2
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp 6
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons/basic_json.hpp 30
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 5
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 3
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp 12
/src/jsoncons/./include/jsoncons/ser_common.hpp 7
/src/jsoncons/./include/jsoncons/source.hpp 17
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 17
/src/jsoncons/./include/jsoncons/utility/binary.hpp 20
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 76
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 7
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 9
/src/jsoncons/./include/jsoncons/json_type.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 4
/usr/local/bin/../include/c++/v1/__exception/exception.h 1

Fuzzer: fuzz_parse

Call tree

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 75 20.4%
gold [1:9] 7 1.91%
yellow [10:29] 0 0.0%
greenyellow [30:49] 1 0.27%
lawngreen 50+ 283 77.3%
All colors 366 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
9 309 _ZN8jsoncons10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEE5parseINS2_12basic_stringIcNS2_11char_traitsIcEES4_EEEENS2_9enable_ifIXsr6nonstd17is_string_view_ofIT_cEE5valueES5_E4typeERKSC_RKNS_25basic_json_decode_optionsIcEE call site: 00309 __cxa_allocate_exception
8 26 jsoncons::heap::heap_string_factory >::destroy(jsoncons::heap::heap_string >*) call site: 00026
5 336 void jsoncons::basic_json >::construct >::null_storage>() call site: 00336
4 134 jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00134
4 270 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00270
4 277 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00277 __cxa_allocate_exception
4 358 LLVMFuzzerTestOneInput call site: 00358
3 106 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ call site: 00106
3 118 jsoncons::decstr_to_double(char const*, unsigned long, double&) call site: 00118
3 173 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00173
3 177 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00177
3 286 jsoncons::basic_json_parser >::parse_some(jsoncons::basic_json_visitor &) call site: 00286

Runtime coverage analysis

Covered functions
309
Functions that are reachable but not covered
49
Reachable functions
302
Percentage of reachable functions covered
83.77%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_parse.cpp 1
/src/jsoncons/./include/jsoncons/json_options.hpp 21
/src/jsoncons/./include/jsoncons/basic_json.hpp 31
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 16
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 6
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 3
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons/json_parser.hpp 35
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 6
/src/jsoncons/./include/jsoncons/json_exception.hpp 7
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/jsoncons/./include/jsoncons/utility/number_readers.hpp 10
/src/jsoncons/./include/jsoncons/json_type.hpp 1

Fuzzer: fuzz_json_encoder

Call tree

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 61 18.1%
gold [1:9] 1 0.29%
yellow [10:29] 2 0.59%
greenyellow [30:49] 4 1.18%
lawngreen 50+ 269 79.8%
All colors 337 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
5 317 jsoncons::basic_json_reader >, std::__1::allocator >::check_done(std::__1::error_code&) call site: 00317
4 150 jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00150
4 293 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00293 __cxa_allocate_exception
3 37 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00037
3 80 jsoncons::stream_source >::fill_buffer(char*, unsigned long) call site: 00080 __cxa_end_catch
3 122 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ call site: 00122
3 134 jsoncons::decstr_to_double(char const*, unsigned long, double&) call site: 00134
3 189 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00189
3 193 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00193
2 34 jsoncons::json_source_adaptor > >::json_source_adaptor , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) call site: 00034
2 64 jsoncons::basic_json_reader >, std::__1::allocator >::basic_json_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, std::__1::allocator const&) call site: 00064
2 108 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ call site: 00108

Runtime coverage analysis

Covered functions
197
Functions that are reachable but not covered
33
Reachable functions
273
Percentage of reachable functions covered
87.91%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_json_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 3
/src/jsoncons/./include/jsoncons/json_encoder.hpp 3
/src/jsoncons/./include/jsoncons/json_options.hpp 29
/src/jsoncons/./include/jsoncons/json_visitor.hpp 18
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 1
/src/jsoncons/./include/jsoncons/json_reader.hpp 7
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 5
/src/jsoncons/./include/jsoncons/source.hpp 11
/src/jsoncons/./include/jsoncons/json_parser.hpp 34
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 7
/src/jsoncons/./include/jsoncons/utility/number_readers.hpp 10
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 2
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1

Fuzzer: fuzz_cbor

Call tree

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 148 11.4%
gold [1:9] 2 0.15%
yellow [10:29] 2 0.15%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1146 88.2%
All colors 1298 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
14 385 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00385 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 278 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00278
6 466 jsoncons::basic_bigint >::operator>>=(unsigned long) call site: 00466
5 410 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00410
4 352 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00352 __cxa_allocate_exception
4 1211 _ZN8jsoncons4cbor15try_decode_cborINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19cbor_decode_optionsE call site: 01211
3 115 jsoncons::stream_source >::read(unsigned char*, unsigned long) call site: 00115 __cxa_begin_catch
3 246 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&) call site: 00246
3 455 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00455 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
3 1216 _ZN8jsoncons4cbor15try_decode_cborINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19cbor_decode_optionsE call site: 01216
3 1293 LLVMFuzzerTestOneInput call site: 01293
2 53 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::basic_cbor_parser >&>(std::__1::basic_istream >&, jsoncons::cbor::cbor_decode_options const&, std::__1::allocator const&) call site: 00053

Runtime coverage analysis

Covered functions
785
Functions that are reachable but not covered
66
Reachable functions
825
Percentage of reachable functions covered
92.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_cbor.cpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/decode_cbor.hpp 2
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp 6
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons/basic_json.hpp 30
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 5
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 3
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp 47
/src/jsoncons/./include/jsoncons/ser_common.hpp 7
/src/jsoncons/./include/jsoncons/source.hpp 20
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 20
/src/jsoncons/./include/jsoncons/utility/binary.hpp 13
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 7
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 80
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 7
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 54
/src/jsoncons/./include/jsoncons/typed_array.hpp 11
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_typed_array_iterator.hpp 36
/src/jsoncons/./include/jsoncons/utility/function_objects.hpp 11
/src/jsoncons/./include/jsoncons/nonstd/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp 1
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/bigdec.hpp 5
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 4
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 17
/src/jsoncons/./include/jsoncons/json_type.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 8
/usr/local/bin/../include/c++/v1/__exception/exception.h 1

Fuzzer: fuzz_ubjson

Call tree

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 44 14.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 1 0.32%
lawngreen 50+ 265 85.4%
All colors 310 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
8 23 jsoncons::heap::heap_string_factory >::destroy(jsoncons::heap::heap_string >*) call site: 00023
5 71 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00071 __cxa_end_catch
5 256 void jsoncons::basic_json >::construct >::null_storage>() call site: 00256
3 231 _ZN8jsoncons6ubjson17try_decode_ubjsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_21ubjson_decode_optionsE call site: 00231
3 235 _ZN8jsoncons6ubjson17try_decode_ubjsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_21ubjson_decode_optionsE call site: 00235
2 53 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::basic_ubjson_parser >&>(std::__1::basic_istream >&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&) call site: 00053
2 56 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00056
2 217 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::parse(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00217 __clang_call_terminate
2 277 _ZN8jsoncons6ubjson17try_decode_ubjsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_21ubjson_decode_optionsE call site: 00277
2 280 _ZN8jsoncons6ubjson17try_decode_ubjsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_21ubjson_decode_optionsE call site: 00280
2 283 jsoncons::basic_json > jsoncons::ubjson::decode_ubjson >, std::__1::basic_istringstream , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) call site: 00283
2 293 jsoncons::basic_json > jsoncons::ubjson::decode_ubjson >, std::__1::basic_istringstream , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) call site: 00293

Runtime coverage analysis

Covered functions
330
Functions that are reachable but not covered
53
Reachable functions
319
Percentage of reachable functions covered
83.39%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_ubjson.cpp 1
/src/jsoncons/./include/jsoncons_ext/ubjson/decode_ubjson.hpp 2
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_options.hpp 7
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 18
/src/jsoncons/./include/jsoncons/basic_json.hpp 30
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 4
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 3
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp 15
/src/jsoncons/./include/jsoncons/ser_common.hpp 7
/src/jsoncons/./include/jsoncons/source.hpp 19
/src/jsoncons/./include/jsoncons/utility/binary.hpp 14
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/number_readers.hpp 1
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 9
/src/jsoncons/./include/jsoncons/json_type.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 4
/usr/local/bin/../include/c++/v1/__exception/exception.h 1

Fuzzer: fuzz_cbor_cursor

Call tree

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 465 35.9%
gold [1:9] 39 3.01%
yellow [10:29] 47 3.62%
greenyellow [30:49] 28 2.16%
lawngreen 50+ 716 55.2%
All colors 1295 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
27 1237 jsoncons::decstr_to_double(char const*, unsigned long, double&) call site: 01237 snprintf
26 32 jsoncons::cbor::basic_cbor_cursor >, std::__1::allocator >::read_next(std::__1::error_code&) call site: 00032 __cxa_allocate_exception
26 1126 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_mdarray_header(jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 01126 __cxa_allocate_exception
17 486 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00486 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIhEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
16 645 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00645 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIlEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
15 442 void jsoncons::basic_bigint >::append_to_buffer , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&) const call site: 00442 _ZN8jsoncons21basic_generic_visitorIcE17byte_string_valueINS_16byte_string_viewEEEbRKT_NS_12semantic_tagERKNS_11ser_contextERNSt3__110error_codeENSB_9enable_ifIXsr6nonstd18is_bytes_view_likeIS4_EE5valueEiE4typeE
15 469 jsoncons::nonstd::span jsoncons::typed_array_cast (jsoncons::nonstd::span ) call site: 00469 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIhEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
14 341 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00341 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 234 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00234
13 1194 _ZNK8jsoncons16basic_staj_eventIcE4get_INSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEES8_cEENS3_9enable_ifIXaasr6nonstd9is_stringIT_EE5valuesr3std7is_sameINSB_10value_typeET1_EE5valueESB_E4typeET0_RNS3_10error_codeE call site: 01194 snprintf
10 664 jsoncons::binary::decode_half(unsigned short) call site: 00664 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIdEENSt3__19enable_ifIXsr17is_floating_pointIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
9 506 jsoncons::nonstd::span jsoncons::typed_array_cast (jsoncons::nonstd::span ) call site: 00506 _ZN8jsoncons4cbor20typed_array_iterator11write_valueItEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE

Runtime coverage analysis

Covered functions
376
Functions that are reachable but not covered
133
Reachable functions
758
Percentage of reachable functions covered
82.45%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_cbor_cursor.cpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_cursor.hpp 9
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp 6
/src/jsoncons/./include/jsoncons/ser_common.hpp 2
/src/jsoncons/./include/jsoncons/staj_cursor.hpp 5
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp 48
/src/jsoncons/./include/jsoncons/source.hpp 19
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 18
/src/jsoncons/./include/jsoncons/json_visitor.hpp 2
/src/jsoncons/./include/jsoncons/staj_event.hpp 7
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/utility/binary.hpp 13
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 11
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 80
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 7
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 1
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 54
/src/jsoncons/./include/jsoncons/typed_array.hpp 11
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_typed_array_iterator.hpp 36
/src/jsoncons/./include/jsoncons/utility/function_objects.hpp 11
/src/jsoncons/./include/jsoncons/nonstd/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp 1
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/bigdec.hpp 5
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 17
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 8
/src/jsoncons/./include/jsoncons/nonstd/make_obj_using_allocator.hpp 3
/src/jsoncons/./include/jsoncons/utility/conversion.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 2
/usr/local/bin/../include/c++/v1/stdexcept 1
/src/jsoncons/./include/jsoncons/utility/detail/grisu3.hpp 12
/src/jsoncons/./include/jsoncons/utility/number_readers.hpp 3

Fuzzer: fuzz_msgpack_decode_iterator_source

Call tree

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 125 19.2%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 525 80.7%
All colors 650 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
16 491 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00491
14 415 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00415 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 311 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00311
11 440 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00440
6 469 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00469
5 297 jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&) call site: 00297
5 485 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00485 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
4 382 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00382 __cxa_allocate_exception
4 573 _ZN8jsoncons7msgpack18try_decode_msgpackINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEENS4_11__wrap_iterIPhEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedISC_NS_10read_errorEEEE4typeET0_SJ_RKNS0_22msgpack_decode_optionsE call site: 00573
3 279 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&) call site: 00279
3 578 _ZN8jsoncons7msgpack18try_decode_msgpackINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEENS4_11__wrap_iterIPhEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedISC_NS_10read_errorEEEE4typeET0_SJ_RKNS0_22msgpack_decode_optionsE call site: 00578
2 67 jsoncons::msgpack::basic_msgpack_reader >, std::__1::allocator >::basic_msgpack_reader > >(jsoncons::iterator_source >&&, jsoncons::basic_json_visitor &, jsoncons::msgpack::msgpack_decode_options const&, std::__1::allocator const&) call site: 00067

Runtime coverage analysis

Covered functions
518
Functions that are reachable but not covered
52
Reachable functions
483
Percentage of reachable functions covered
89.23%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_msgpack_decode_iterator_source.cpp 1
/src/jsoncons/./include/jsoncons_ext/msgpack/decode_msgpack.hpp 2
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp 6
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons/basic_json.hpp 30
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 5
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 3
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons/source.hpp 13
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp 12
/src/jsoncons/./include/jsoncons/ser_common.hpp 7
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 17
/src/jsoncons/./include/jsoncons/utility/binary.hpp 20
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 76
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 7
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 9
/src/jsoncons/./include/jsoncons/json_type.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 4
/usr/local/bin/../include/c++/v1/__exception/exception.h 1

Fuzzer: fuzz_msgpack_decode_bytes_source

Call tree

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 124 19.4%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 513 80.5%
All colors 637 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
16 478 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00478
14 402 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00402 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 298 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00298
11 427 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00427
6 456 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00456
5 284 jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&) call site: 00284
5 472 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00472 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
4 369 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00369 __cxa_allocate_exception
4 560 _ZN8jsoncons7msgpack18try_decode_msgpackINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEENS_6nonstd4spanIKhLm18446744073709551615EEEEENS4_9enable_ifIXaasr6nonstd13is_basic_jsonIT_EE5valuesr6nonstd18is_bytes_view_likeIT0_EE5valueENS8_8expectedISD_NS_10read_errorEEEE4typeERKSE_RKNS0_22msgpack_decode_optionsE call site: 00560
3 266 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&) call site: 00266
3 565 _ZN8jsoncons7msgpack18try_decode_msgpackINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEENS_6nonstd4spanIKhLm18446744073709551615EEEEENS4_9enable_ifIXaasr6nonstd13is_basic_jsonIT_EE5valuesr6nonstd18is_bytes_view_likeIT0_EE5valueENS8_8expectedISD_NS_10read_errorEEEE4typeERKSE_RKNS0_22msgpack_decode_optionsE call site: 00565
2 191 jsoncons::detail::bigint_storage >::allocated_storage::reserve(unsigned long, std::__1::allocator const&) call site: 00191 __clang_call_terminate

Runtime coverage analysis

Covered functions
510
Functions that are reachable but not covered
52
Reachable functions
467
Percentage of reachable functions covered
88.87%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_msgpack_decode_bytes_source.cpp 1
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 4
/src/jsoncons/./include/jsoncons_ext/msgpack/decode_msgpack.hpp 2
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp 6
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons/basic_json.hpp 30
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 5
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 3
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp 12
/src/jsoncons/./include/jsoncons/ser_common.hpp 7
/src/jsoncons/./include/jsoncons/source.hpp 5
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 17
/src/jsoncons/./include/jsoncons/utility/binary.hpp 20
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 76
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 7
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 9
/src/jsoncons/./include/jsoncons/json_type.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 4
/usr/local/bin/../include/c++/v1/__exception/exception.h 1

Fuzzer: fuzz_cbor_noexcept

Call tree

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 215 12.5%
gold [1:9] 6 0.34%
yellow [10:29] 6 0.34%
greenyellow [30:49] 2 0.11%
lawngreen 50+ 1491 86.6%
All colors 1720 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
19 1595 jsoncons::basic_staj_event ::send_event(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) const call site: 01595 __cxa_allocate_exception
14 384 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00384 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 277 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00277
6 465 jsoncons::basic_bigint >::operator>>=(unsigned long) call site: 00465
5 409 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00409
5 1619 jsoncons::basic_staj_event ::send_event(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) const call site: 01619 __cxa_allocate_exception
5 1630 _ZN8jsoncons21basic_generic_visitorIcE17byte_string_valueINS_16byte_string_viewEEEbRKT_NS_12semantic_tagERKNS_11ser_contextENSt3__19enable_ifIXsr6nonstd18is_bytes_view_likeIS4_EE5valueEiE4typeE call site: 01630 __cxa_allocate_exception
5 1637 jsoncons::basic_staj_event ::send_event(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) const call site: 01637 __cxa_allocate_exception
5 1644 jsoncons::basic_staj_event ::send_event(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) const call site: 01644 __cxa_allocate_exception
5 1651 jsoncons::basic_staj_event ::send_event(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) const call site: 01651 __cxa_allocate_exception
5 1658 jsoncons::basic_staj_event ::send_event(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) const call site: 01658 __cxa_allocate_exception
5 1665 jsoncons::basic_staj_event ::send_event(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) const call site: 01665 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
934
Functions that are reachable but not covered
69
Reachable functions
1035
Percentage of reachable functions covered
93.33%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_cbor_noexcept.cpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp 6
/src/jsoncons/./include/jsoncons_ext/cbor/decode_cbor.hpp 1
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons/basic_json.hpp 30
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 5
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 3
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp 6
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp 102
/src/jsoncons/./include/jsoncons/ser_common.hpp 4
/src/jsoncons/./include/jsoncons/source.hpp 35
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 31
/src/jsoncons/./include/jsoncons/utility/binary.hpp 13
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 7
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 80
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 7
/src/jsoncons/./include/jsoncons/nonstd/span.hpp 54
/src/jsoncons/./include/jsoncons/typed_array.hpp 11
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_typed_array_iterator.hpp 40
/src/jsoncons/./include/jsoncons/utility/function_objects.hpp 11
/src/jsoncons/./include/jsoncons/nonstd/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp 1
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/bigdec.hpp 5
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 4
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 14
/src/jsoncons/./include/jsoncons/json_type.hpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_cursor.hpp 20
/src/jsoncons/./include/jsoncons/staj_cursor.hpp 6
/src/jsoncons/./include/jsoncons/staj_event.hpp 8
/src/jsoncons/./include/jsoncons/json_exception.hpp 6
/usr/local/bin/../include/c++/v1/__exception/exception.h 1

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

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
jsoncons::json_decoder >,std::__1::allocator >::visit_end_array(jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons/json_decoder.hpp 3 ['N/A', 'N/A', 'N/A'] 13 0 285 42 3 1012 0 1930 1837
jsoncons::json_decoder >,std::__1::allocator >::visit_end_array(jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons/json_decoder.hpp 3 ['N/A', 'N/A', 'N/A'] 13 0 285 42 3 1012 0 1930 1810
jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_key(std::__1::basic_string_view >const&,jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp 4 ['N/A', 'N/A', 'N/A', 'N/A'] 17 0 24 3 2 290 0 1107 582
jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_double(double,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons/json_encoder.hpp 5 ['N/A', 'double', 'char', 'N/A', 'N/A'] 18 0 534 63 5 345 0 895 306
jsoncons::ordered_json_object ,std::__1::allocator >,jsoncons::basic_json >,std::__1::vector>::~ordered_json_object() /src/jsoncons/./include/jsoncons/ordered_json_object.hpp 1 ['N/A'] 8 0 17 3 2 213 0 378 238
jsoncons::sorted_json_object ,std::__1::allocator >,jsoncons::basic_json >,std::__1::vector>::~sorted_json_object() /src/jsoncons/./include/jsoncons/sorted_json_object.hpp 1 ['N/A'] 8 0 17 3 2 213 0 378 213
jsoncons::bson::basic_bson_encoder >,void>,std::__1::allocator >::visit_string(std::__1::basic_string_view >const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons_ext/bson/bson_encoder.hpp 5 ['N/A', 'N/A', 'char', 'N/A', 'N/A'] 4 0 393 41 10 60 0 226 181

Implementing fuzzers that target the above functions will improve reachability such that it becomes:

Functions statically reachable by fuzzers
70.0%
2225 / 3177
Cyclomatic complexity statically reachable by fuzzers
76.0%
12959 / 16946

All functions overview

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 Runtime reached by Fuzzers Combined 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

Fuzz engine guidance

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.

/src/jsoncons/./fuzzers/fuzz_ubjson_parser_max.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'LLVMFuzzerTestOneInput', 'jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::basic_ubjson_parser, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::parse(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::ubjson::basic_ubjson_reader >, std::__1::allocator >::basic_ubjson_reader, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::basic_json_visitor&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&)', 'jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::begin_array(jsoncons::basic_json_visitor&, std::__1::error_code&)']

/src/jsoncons/./fuzzers/fuzz_ubjson_encoder.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'LLVMFuzzerTestOneInput', 'jsoncons::ubjson::basic_ubjson_encoder >, void>, std::__1::allocator >::basic_ubjson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&)', 'jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::basic_ubjson_parser, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::parse(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::ubjson::basic_ubjson_encoder >, void>, std::__1::allocator >::basic_ubjson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&)', 'jsoncons::ubjson::basic_ubjson_encoder >, void>, std::__1::allocator >::basic_ubjson_encoder(jsoncons::bytes_sink >, void>&&, jsoncons::ubjson::ubjson_encode_options const&, std::__1::allocator const&)', 'jsoncons::ubjson::basic_ubjson_reader >, std::__1::allocator >::basic_ubjson_reader, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::basic_json_visitor&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&)']

/src/jsoncons/./fuzzers/fuzz_bson_parser_max.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'LLVMFuzzerTestOneInput', 'jsoncons::bson::basic_bson_parser >, std::__1::allocator >::basic_bson_parser, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::bson::basic_bson_parser >, std::__1::allocator >::end_document(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::bson::basic_bson_reader >, std::__1::allocator >::basic_bson_reader, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::basic_json_visitor&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&)']

/src/jsoncons/./fuzzers/fuzz_csv_encoder.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::decstr_to_double(char const*, unsigned long, double&)', 'jsoncons::csv::basic_csv_parser >::parse_some(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'void jsoncons::csv::detail::parse_column_types > >(std::__1::basic_string, std::__1::allocator > const&, std::__1::vector >&)', 'jsoncons::basic_json_parser >::basic_json_parser(jsoncons::basic_json_decode_options const&, std::__1::allocator const&)', 'jsoncons::basic_json_parser >::basic_json_parser(std::__1::allocator const&)', 'jsoncons::csv::basic_csv_parser >::end_value(jsoncons::basic_json_visitor&, bool, std::__1::error_code&)', 'jsoncons::csv::basic_csv_parser >::end_unquoted_string_value(jsoncons::basic_json_visitor&, std::__1::error_code&)', '_ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_', 'jsoncons::csv::basic_csv_parser >::end_quoted_string_value(jsoncons::basic_json_visitor&, std::__1::error_code&)']

/src/jsoncons/./fuzzers/fuzz_bigint.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::detail::bigint_storage >::reduce()', 'jsoncons::basic_bigint >::get_words() const', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::operator>>=(unsigned long)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::detail::bigint_storage >::allocated_storage::reserve(unsigned long, std::__1::allocator const&)', 'jsoncons::detail::bigint_storage >::allocated_storage::allocated_storage(jsoncons::detail::bigint_storage >::allocated_storage const&, std::__1::allocator const&)', 'jsoncons::basic_bigint >::set_negative(bool)', 'jsoncons::to_bignum_result jsoncons::to_bigint >(char const*, unsigned long, jsoncons::basic_bigint >&, std::__1::allocator const&)']

/src/jsoncons/./fuzzers/fuzz_bson_encoder.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'LLVMFuzzerTestOneInput', 'jsoncons::bson::basic_bson_encoder >, void>, std::__1::allocator >::basic_bson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&)', 'jsoncons::bson::basic_bson_parser >, std::__1::allocator >::basic_bson_parser, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::bson::basic_bson_parser >, std::__1::allocator >::end_document(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::bson::basic_bson_encoder >, void>, std::__1::allocator >::basic_bson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&)', 'jsoncons::bson::basic_bson_encoder >, void>, std::__1::allocator >::basic_bson_encoder(jsoncons::bytes_sink >, void>&&, jsoncons::bson::bson_encode_options const&, std::__1::allocator const&)', 'jsoncons::bson::basic_bson_reader >, std::__1::allocator >::basic_bson_reader, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::basic_json_visitor&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&)']

/src/jsoncons/./fuzzers/fuzz_json_parser_max.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::basic_json_reader >, std::__1::allocator >::check_done(std::__1::error_code&)', 'jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::stream_source >::fill_buffer(char*, unsigned long)', '_ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_', 'jsoncons::decstr_to_double(char const*, unsigned long, double&)', 'jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::json_source_adaptor > >::json_source_adaptor, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&)']

/src/jsoncons/./fuzzers/fuzz_cbor_encoder.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_bigfloat(unsigned char, std::__1::basic_string, std::__1::allocator >&, std::__1::error_code&)', 'jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::begin_classical_array_storage(unsigned char, std::__1::error_code&)', '_ZN8jsoncons21basic_generic_visitorIcE17byte_string_valueINS_16byte_string_viewEEEbRKT_NS_12semantic_tagERKNS_11ser_contextERNSt3__110error_codeENSB_9enable_ifIXsr6nonstd18is_bytes_view_likeIS4_EE5valueEiE4typeE', '_ZN8jsoncons4cbor20typed_array_iterator11write_valueIdEENSt3__19enable_ifIXsr17is_floating_pointIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const']

/src/jsoncons/./fuzzers/fuzz_cbor_parser_max.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::basic_bigint >::operator>>=(unsigned long)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'LLVMFuzzerTestOneInput', 'jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::parse(jsoncons::basic_generic_visitor&, std::__1::error_code&)', 'jsoncons::stream_source >::read(unsigned char*, unsigned long)', 'jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const']

/src/jsoncons/./fuzzers/fuzz_msgpack_parser_max.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'LLVMFuzzerTestOneInput']

/src/jsoncons/./fuzzers/fuzz_cbor_typed_array.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::nonstd::span jsoncons::typed_array_cast(jsoncons::nonstd::span)', 'jsoncons::basic_bigint >::operator>>=(unsigned long)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor&, std::__1::error_code&)', 'void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor&, std::__1::error_code&)', 'void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor&, std::__1::error_code&)', 'jsoncons::nonstd::span jsoncons::typed_array_cast(jsoncons::nonstd::span)', 'void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor&, std::__1::error_code&)']

/src/jsoncons/./fuzzers/fuzz_csv.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::decstr_to_double(char const*, unsigned long, double&)', 'jsoncons::csv::basic_csv_parser >::parse_some(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::ser_error::ser_error(std::__1::error_code, unsigned long, unsigned long)', 'jsoncons::csv::basic_csv_parser >::end_unquoted_string_value(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'void jsoncons::csv::detail::parse_column_types > >(std::__1::basic_string, std::__1::allocator > const&, std::__1::vector >&)', 'jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::csv::basic_csv_parser >::end_value(jsoncons::basic_json_visitor&, bool, std::__1::error_code&)', 'jsoncons::heap::heap_string_factory >::destroy(jsoncons::heap::heap_string >*)', '_ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_', 'jsoncons::csv::basic_csv_parser >::end_quoted_string_value(jsoncons::basic_json_visitor&, std::__1::error_code&)']

/src/jsoncons/./fuzzers/fuzz_msgpack_encoder.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'LLVMFuzzerTestOneInput', 'jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const']

/src/jsoncons/./fuzzers/fuzz_json_cursor.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::basic_json_parser >::parse_false(char const*, jsoncons::basic_json_visitor&, std::__1::error_code&)', 'void jsoncons::prettify_string, std::__1::allocator > >(char const*, int, int, int, int, std::__1::basic_string, std::__1::allocator >&)', 'jsoncons::write_double::write_double(jsoncons::float_chars_format, int)', 'jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor&, std::__1::error_code&)', '_ZNK8jsoncons16basic_staj_eventIcE4get_INSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEES8_cEENS3_9enable_ifIXaasr6nonstd9is_stringIT_EE5valuesr3std7is_sameINSB_10value_typeET1_EE5valueESB_E4typeET0_RNS3_10error_codeE', 'bool jsoncons::dtoa_general, std::__1::allocator > >(double, char, std::__1::basic_string, std::__1::allocator >&, std::__1::integral_constant)', 'jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::stream_source >::fill_buffer(char*, unsigned long)', '_ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_']

/src/jsoncons/./fuzzers/fuzz_bson.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', '_ZN8jsoncons4bson15try_decode_bsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19bson_decode_optionsE', 'jsoncons::bson::basic_bson_parser >, std::__1::allocator >::basic_bson_parser >&>(std::__1::basic_istream >&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::bson::basic_bson_parser >, std::__1::allocator >::end_document(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json > jsoncons::bson::decode_bson >, std::__1::basic_istringstream, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&)', 'jsoncons::basic_json > jsoncons::bson::decode_bson >, std::__1::basic_istringstream, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&)']

/src/jsoncons/./fuzzers/fuzz_msgpack.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', '_ZN8jsoncons7msgpack18try_decode_msgpackINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_22msgpack_decode_optionsE']

/src/jsoncons/./fuzzers/fuzz_parse.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['_ZN8jsoncons10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEE5parseINS2_12basic_stringIcNS2_11char_traitsIcEES4_EEEENS2_9enable_ifIXsr6nonstd17is_string_view_ofIT_cEE5valueES5_E4typeERKSC_RKNS_25basic_json_decode_optionsIcEE', 'jsoncons::heap::heap_string_factory >::destroy(jsoncons::heap::heap_string >*)', 'void jsoncons::basic_json >::construct >::null_storage>()', 'jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'LLVMFuzzerTestOneInput', '_ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_', 'jsoncons::decstr_to_double(char const*, unsigned long, double&)', 'jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor&, std::__1::error_code&)']

/src/jsoncons/./fuzzers/fuzz_json_encoder.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::basic_json_reader >, std::__1::allocator >::check_done(std::__1::error_code&)', 'jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::stream_source >::fill_buffer(char*, unsigned long)', '_ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_', 'jsoncons::decstr_to_double(char const*, unsigned long, double&)', 'jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::json_source_adaptor > >::json_source_adaptor, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&)']

/src/jsoncons/./fuzzers/fuzz_cbor.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::basic_bigint >::operator>>=(unsigned long)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', '_ZN8jsoncons4cbor15try_decode_cborINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19cbor_decode_optionsE', 'jsoncons::stream_source >::read(unsigned char*, unsigned long)', 'jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const']

/src/jsoncons/./fuzzers/fuzz_ubjson.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::heap::heap_string_factory >::destroy(jsoncons::heap::heap_string >*)', 'jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'void jsoncons::basic_json >::construct >::null_storage>()', '_ZN8jsoncons6ubjson17try_decode_ubjsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_21ubjson_decode_optionsE', 'jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::basic_ubjson_parser >&>(std::__1::basic_istream >&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::parse(jsoncons::basic_json_visitor&, std::__1::error_code&)']

/src/jsoncons/./fuzzers/fuzz_cbor_cursor.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::decstr_to_double(char const*, unsigned long, double&)', 'jsoncons::cbor::basic_cbor_cursor >, std::__1::allocator >::read_next(std::__1::error_code&)', 'jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_mdarray_header(jsoncons::basic_generic_visitor&, std::__1::error_code&)', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'void jsoncons::basic_bigint >::append_to_buffer, std::__1::allocator >(std::__1::basic_string, std::__1::allocator >&) const', 'jsoncons::nonstd::span jsoncons::typed_array_cast(jsoncons::nonstd::span)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', '_ZNK8jsoncons16basic_staj_eventIcE4get_INSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEES8_cEENS3_9enable_ifIXaasr6nonstd9is_stringIT_EE5valuesr3std7is_sameINSB_10value_typeET1_EE5valueESB_E4typeET0_RNS3_10error_codeE']

/src/jsoncons/./fuzzers/fuzz_msgpack_decode_iterator_source.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', '_ZN8jsoncons7msgpack18try_decode_msgpackINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEENS4_11__wrap_iterIPhEEEENS4_9enable_ifIXsr6nonstd13is_basic_jsonIT_EE5valueENS_6nonstd8expectedISC_NS_10read_errorEEEE4typeET0_SJ_RKNS0_22msgpack_decode_optionsE', 'jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&)']

/src/jsoncons/./fuzzers/fuzz_msgpack_decode_bytes_source.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', '_ZN8jsoncons7msgpack18try_decode_msgpackINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEENS_6nonstd4spanIKhLm18446744073709551615EEEEENS4_9enable_ifIXaasr6nonstd13is_basic_jsonIT_EE5valuesr6nonstd18is_bytes_view_likeIT0_EE5valueENS8_8expectedISD_NS_10read_errorEEEE4typeERKSE_RKNS0_22msgpack_decode_optionsE', 'jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&)']

/src/jsoncons/./fuzzers/fuzz_cbor_noexcept.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['jsoncons::basic_staj_event::send_event(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&) const', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::basic_bigint >::operator>>=(unsigned long)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::basic_staj_event::send_event(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&) const', '_ZN8jsoncons21basic_generic_visitorIcE17byte_string_valueINS_16byte_string_viewEEEbRKT_NS_12semantic_tagERKNS_11ser_contextENSt3__19enable_ifIXsr6nonstd18is_bytes_view_likeIS4_EE5valueEiE4typeE', 'jsoncons::basic_staj_event::send_event(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&) const', 'jsoncons::basic_staj_event::send_event(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&) const', 'jsoncons::basic_staj_event::send_event(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&) const']

Runtime coverage analysis

This section shows analysis of runtime coverage data.

For futher technical details on how this section is generated, please see the Glossary .

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
jsoncons::ubjson::basic_ubjson_encoder >,void>,std::__1::allocator >::visit_uint64(unsignedlong,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 32 9 28.12% ['fuzz_ubjson_encoder']
unsignedlongjsoncons::write_double::operator() ,std::__1::allocator >>(double,std::__1::basic_string ,std::__1::allocator >&) 72 19 26.38% ['fuzz_cbor_cursor', 'fuzz_json_cursor', 'fuzz_csv_encoder']
booljsoncons::dtoa_general ,std::__1::allocator >>(double,char,std::__1::basic_string ,std::__1::allocator >&,std::__1::integral_constant ) 33 18 54.54% ['fuzz_cbor_cursor', 'fuzz_json_cursor', 'fuzz_csv_encoder']
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_end_array(jsoncons::ser_contextconst&,std::__1::error_code&) 125 20 16.0% ['fuzz_csv_encoder']
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_uint64(unsignedlong,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 68 18 26.47% ['fuzz_csv_encoder']
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_int64(long,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 68 18 26.47% ['fuzz_csv_encoder']
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_double(double,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 72 20 27.77% ['fuzz_csv_encoder']
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::write_double_value(double,jsoncons::ser_contextconst&,std::__1::basic_string ,std::__1::allocator >&,std::__1::error_code&) 54 28 51.85% ['fuzz_csv_encoder']
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_begin_array(jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 125 23 18.4% ['fuzz_csv_encoder']
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_null(jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 68 18 26.47% ['fuzz_csv_encoder']
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_bool(bool,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 68 18 26.47% ['fuzz_csv_encoder']
jsoncons::csv::basic_csv_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_string(std::__1::basic_string_view >const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 68 18 26.47% ['fuzz_csv_encoder']
voidjsoncons::csv::detail::parse_column_names ,std::__1::allocator >,std::__1::allocator ,std::__1::allocator >>>>(std::__1::basic_string ,std::__1::allocator >const&,std::__1::vector ,std::__1::allocator >,std::__1::allocator ,std::__1::allocator >>>&) 47 7 14.89% ['fuzz_csv', 'fuzz_csv_encoder']
voidjsoncons::csv::detail::parse_column_types >>(std::__1::basic_string ,std::__1::allocator >const&,std::__1::vector >&) 139 15 10.79% ['fuzz_csv', 'fuzz_csv_encoder']
jsoncons::csv::basic_csv_parser >::end_unquoted_string_value(jsoncons::basic_json_visitor &,std::__1::error_code&) 63 20 31.74% ['fuzz_csv', 'fuzz_csv_encoder']
jsoncons::csv::basic_csv_parser >::end_value(jsoncons::basic_json_visitor &,bool,std::__1::error_code&) 200 18 9.0% ['fuzz_csv', 'fuzz_csv_encoder']
jsoncons::csv::basic_csv_parser >::end_quoted_string_value(jsoncons::basic_json_visitor &,std::__1::error_code&) 59 17 28.81% ['fuzz_csv', 'fuzz_csv_encoder']
jsoncons::csv::basic_csv_parser >::end_record(jsoncons::basic_json_visitor &,std::__1::error_code&) 96 40 41.66% ['fuzz_csv', 'fuzz_csv_encoder']
_ZN8jsoncons10to_integerIjcEENSt3__19enable_ifIXaasr6nonstd14integer_limitsIT_EE14is_specializedntsr6nonstd14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ 176 44 25.0% ['fuzz_bson_encoder']
jsoncons::bson::basic_bson_encoder >,void>,std::__1::allocator >::visit_uint64(unsignedlong,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 52 27 51.92% ['fuzz_bson_encoder']
jsoncons::bson::basic_bson_encoder >,void>,std::__1::allocator >::visit_int64(long,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 53 26 49.05% ['fuzz_bson_encoder']
jsoncons::basic_json_parser >::end_negative_value(jsoncons::basic_json_visitor &,std::__1::error_code&) 40 19 47.5% ['fuzz_json_encoder', 'fuzz_csv', 'fuzz_csv_encoder', 'fuzz_parse', 'fuzz_json_parser_max', 'fuzz_json_cursor']
jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor &,std::__1::error_code&) 40 19 47.5% ['fuzz_json_encoder', 'fuzz_csv', 'fuzz_csv_encoder', 'fuzz_parse', 'fuzz_json_parser_max', 'fuzz_json_cursor']
unsignedlongjsoncons::write_double::operator() ,std::__1::allocator >>>(double,jsoncons::string_sink ,std::__1::allocator >>&) 72 19 26.38% ['fuzz_json_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_encoder', 'fuzz_msgpack_decode_iterator_source', 'fuzz_cbor', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept', 'fuzz_msgpack']
booljsoncons::dtoa_general ,std::__1::allocator >>>(double,char,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::integral_constant ) 33 18 54.54% ['fuzz_json_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_encoder', 'fuzz_msgpack_decode_iterator_source', 'fuzz_cbor', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept', 'fuzz_msgpack']
jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_string(std::__1::basic_string_view >const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 57 25 43.85% ['fuzz_cbor_encoder']
jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::write_bignum(jsoncons::basic_bigint >&) 56 28 50.0% ['fuzz_cbor_encoder']
jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_byte_string(jsoncons::byte_string_viewconst&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 53 21 39.62% ['fuzz_cbor_encoder']
jsoncons::basic_json >::swap(jsoncons::basic_json >&) 36 11 30.55% ['fuzz_csv']
jsoncons::json_array >,std::__1::vector>::flatten_and_destroy() 38 20 52.63% ['fuzz_csv']
jsoncons::msgpack::basic_msgpack_encoder >,void>,std::__1::allocator >::visit_uint64(unsignedlong,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 76 37 48.68% ['fuzz_msgpack_encoder']
jsoncons::msgpack::basic_msgpack_encoder >,void>,std::__1::allocator >::visit_string(std::__1::basic_string_view >const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 80 36 45.0% ['fuzz_msgpack_encoder']
jsoncons::basic_json >::swap(jsoncons::basic_json >&) 36 18 50.0% ['fuzz_parse', 'fuzz_msgpack_decode_iterator_source', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept', 'fuzz_bson', 'fuzz_msgpack']
jsoncons::bson::bson_error_category_impl::message(int)const 41 21 51.21% ['fuzz_bson']
jsoncons::msgpack::msgpack_error_category_impl::message(int)const 33 13 39.39% ['fuzz_msgpack_decode_bytes_source', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack']
jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::basic_json_encoder(jsoncons::string_sink ,std::__1::allocator >>&&,jsoncons::basic_json_encode_options const&,std::__1::allocator const&) 57 31 54.38% ['fuzz_json_encoder']
jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_double(double,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 74 18 24.32% ['fuzz_json_encoder']
jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::write_bignum_value(std::__1::basic_string_view >const&) 63 10 15.87% ['fuzz_json_encoder']
_ZN8jsoncons14unicode_traits12to_codepointIcjEENSt3__19enable_ifIXaasr6nonstd8is_char8IT_EE5valuesr6nonstd9is_char32IT0_EE5valueENS0_14unicode_resultIS4_EEE4typeEPKS4_SB_RS5_NS0_11strict_flagE 68 21 30.88% ['fuzz_json_encoder']
jsoncons::ubjson::ubjson_error_category_impl::message(int)const 37 19 51.35% ['fuzz_ubjson']
_ZN8jsoncons13source_readerINS_12chars_sourceIhEEE4readINSt3__16vectorIhNS5_9allocatorIhEEEEEENS5_9enable_ifIXaaL_ZNS5_17integral_constantIbLb1EE5valueEEsr6nonstd7is_byteINT_10value_typeEEE5valueEmE4typeERS2_RSD_m 31 17 54.83% ['fuzz_cbor_noexcept']
_ZN8jsoncons13source_readerINS_12chars_sourceIhEEE4readINSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEEENS5_9enable_ifIXaaL_ZNS5_17integral_constantIbLb1EE5valueEEsr6nonstd7is_byteINT_10value_typeEEE5valueEmE4typeERS2_RSF_m 31 17 54.83% ['fuzz_cbor_noexcept']

Files and Directories in report

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

Files in report

Source file Reached by Covered by
[] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_options.hpp ['fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_reader.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_ubjson'] []
/src/jsoncons/./include/jsoncons/json_filter.hpp ['fuzz_bson', 'fuzz_msgpack', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/sink.hpp ['fuzz_ubjson_encoder', 'fuzz_csv_encoder', 'fuzz_bson_encoder', 'fuzz_cbor_encoder', 'fuzz_msgpack_encoder', 'fuzz_json_encoder'] []
/usr/local/bin/../include/c++/v1/string [] []
/src/jsoncons/./include/jsoncons/utility/bignum_common.hpp ['fuzz_bigint'] []
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp ['fuzz_csv', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/typed_array.hpp ['fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_cbor_typed_array', 'fuzz_cbor', 'fuzz_cbor_cursor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons_ext/bson/decode_bson.hpp ['fuzz_bson'] []
/src/jsoncons/./fuzzers/fuzz_bson_parser_max.cpp ['fuzz_bson_parser_max'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_error.hpp [] []
/src/jsoncons/./include/jsoncons/json_type.hpp ['fuzz_bson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/json_array.hpp [] []
/usr/local/bin/../include/c++/v1/stdlib.h [] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_cursor.hpp ['fuzz_cbor_typed_array', 'fuzz_cbor_cursor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp ['fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_msgpack', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source'] []
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp ['fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_cbor_typed_array', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_options.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_ubjson'] []
/src/jsoncons/./include/jsoncons/utility/detail/grisu3.hpp ['fuzz_json_cursor', 'fuzz_cbor_cursor'] []
/src/jsoncons/./fuzzers/fuzz_msgpack_parser_max.cpp ['fuzz_msgpack_parser_max'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp ['fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_cbor_typed_array', 'fuzz_cbor', 'fuzz_cbor_cursor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./fuzzers/fuzz_ubjson_encoder.cpp ['fuzz_ubjson_encoder'] []
/src/jsoncons/./fuzzers/fuzz_msgpack_encoder.cpp ['fuzz_msgpack_encoder'] []
/src/jsoncons/./include/jsoncons/generic_visitor.hpp ['fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_cbor_typed_array', 'fuzz_msgpack_encoder', 'fuzz_msgpack', 'fuzz_cbor', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./fuzzers/fuzz_cbor.cpp ['fuzz_cbor'] []
/src/jsoncons/./include/jsoncons/json_options.hpp ['fuzz_csv_encoder', 'fuzz_json_parser_max', 'fuzz_csv', 'fuzz_json_cursor', 'fuzz_parse', 'fuzz_json_encoder'] []
/src/jsoncons/./fuzzers/fuzz_cbor_parser_max.cpp ['fuzz_cbor_parser_max'] []
/src/jsoncons/./fuzzers/fuzz_json_encoder.cpp ['fuzz_json_encoder'] []
/src/jsoncons/./include/jsoncons/json_decoder.hpp ['fuzz_csv', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./fuzzers/fuzz_parse.cpp ['fuzz_parse'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp ['fuzz_bson_parser_max', 'fuzz_bson_encoder', 'fuzz_bson'] []
/src/jsoncons/./fuzzers/fuzz_cbor_cursor.cpp ['fuzz_cbor_cursor'] []
/src/jsoncons/./fuzzers/fuzz_json_cursor.cpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_typed_array_iterator.hpp ['fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_cbor_typed_array', 'fuzz_cbor', 'fuzz_cbor_cursor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_options.hpp ['fuzz_bson_parser_max', 'fuzz_bson_encoder', 'fuzz_bson'] []
/src/jsoncons/./include/jsoncons/key_value.hpp [] []
/src/jsoncons/./fuzzers/fuzz_csv.cpp ['fuzz_csv'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp ['fuzz_cbor_encoder'] []
/src/jsoncons/./include/jsoncons/ser_common.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_parser_max', 'fuzz_csv_encoder', 'fuzz_bson_encoder', 'fuzz_json_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_cbor_typed_array', 'fuzz_csv', 'fuzz_msgpack_encoder', 'fuzz_json_cursor', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_json_encoder', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./fuzzers/fuzz_bson_encoder.cpp ['fuzz_bson_encoder'] []
/src/jsoncons/./fuzzers/fuzz_bigint.cpp ['fuzz_bigint'] []
/src/jsoncons/./fuzzers/fuzz_csv_encoder.cpp ['fuzz_csv_encoder'] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp ['fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./fuzzers/fuzz_cbor_encoder.cpp ['fuzz_cbor_encoder'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_ubjson'] []
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_parser_max', 'fuzz_csv_encoder', 'fuzz_bigint', 'fuzz_bson_encoder', 'fuzz_json_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_cbor_typed_array', 'fuzz_csv', 'fuzz_msgpack_encoder', 'fuzz_json_cursor', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_json_encoder', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./fuzzers/fuzz_msgpack_decode_iterator_source.cpp ['fuzz_msgpack_decode_iterator_source'] []
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp ['fuzz_bson_parser_max', 'fuzz_csv_encoder', 'fuzz_bson_encoder', 'fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_cbor_typed_array', 'fuzz_json_cursor', 'fuzz_bson', 'fuzz_json_encoder', 'fuzz_cbor', 'fuzz_cbor_cursor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/json_error.hpp [] []
/src/jsoncons/./include/jsoncons/source_adaptor.hpp ['fuzz_csv_encoder', 'fuzz_json_parser_max', 'fuzz_csv', 'fuzz_json_cursor', 'fuzz_json_encoder'] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_error.hpp [] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_error.hpp [] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp ['fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_cbor_typed_array', 'fuzz_cbor', 'fuzz_cbor_cursor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/utility/bigdec.hpp ['fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_cbor_typed_array', 'fuzz_cbor', 'fuzz_cbor_cursor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/utility/bigint.hpp ['fuzz_bigint', 'fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_cbor_typed_array', 'fuzz_msgpack_encoder', 'fuzz_msgpack', 'fuzz_cbor', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/decode_msgpack.hpp ['fuzz_msgpack', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source'] []
/src/jsoncons/./fuzzers/fuzz_cbor_typed_array.cpp ['fuzz_cbor_typed_array'] []
/src/jsoncons/./include/jsoncons/json_visitor.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_parser_max', 'fuzz_csv_encoder', 'fuzz_bson_encoder', 'fuzz_json_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_cbor_typed_array', 'fuzz_csv', 'fuzz_msgpack_encoder', 'fuzz_json_cursor', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_json_encoder', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/utility/number_readers.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_csv_encoder', 'fuzz_json_parser_max', 'fuzz_csv', 'fuzz_json_cursor', 'fuzz_parse', 'fuzz_json_encoder', 'fuzz_ubjson', 'fuzz_cbor_cursor'] []
/src/jsoncons/./include/jsoncons/nonstd/compiler_support.hpp ['fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_cbor_typed_array', 'fuzz_json_cursor', 'fuzz_cbor', 'fuzz_cbor_cursor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/json_parser.hpp ['fuzz_csv_encoder', 'fuzz_json_parser_max', 'fuzz_csv', 'fuzz_json_cursor', 'fuzz_parse', 'fuzz_json_encoder'] []
/src/jsoncons/./include/jsoncons/utility/function_objects.hpp ['fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_cbor_typed_array', 'fuzz_cbor', 'fuzz_cbor_cursor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/decode_ubjson.hpp ['fuzz_ubjson'] []
/src/jsoncons/./include/jsoncons/nonstd/make_obj_using_allocator.hpp ['fuzz_json_cursor', 'fuzz_cbor_cursor'] []
/src/jsoncons/./include/jsoncons/staj_event.hpp ['fuzz_cbor_typed_array', 'fuzz_json_cursor', 'fuzz_cbor_cursor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/staj_cursor.hpp ['fuzz_cbor_typed_array', 'fuzz_json_cursor', 'fuzz_cbor_cursor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp ['fuzz_bigint', 'fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_cbor_typed_array', 'fuzz_msgpack_encoder', 'fuzz_msgpack', 'fuzz_cbor', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_encoder.hpp ['fuzz_ubjson_encoder'] []
/src/jsoncons/./include/jsoncons/source.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_parser_max', 'fuzz_csv_encoder', 'fuzz_bson_encoder', 'fuzz_json_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_cbor_typed_array', 'fuzz_csv', 'fuzz_msgpack_encoder', 'fuzz_json_cursor', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_json_encoder', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp ['fuzz_csv_encoder', 'fuzz_bigint', 'fuzz_json_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_cbor_typed_array', 'fuzz_csv', 'fuzz_msgpack_encoder', 'fuzz_json_cursor', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_json_encoder', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/json_cursor.hpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons/nonstd/span.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_parser_max', 'fuzz_csv_encoder', 'fuzz_bson_encoder', 'fuzz_json_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_cbor_typed_array', 'fuzz_csv', 'fuzz_msgpack_encoder', 'fuzz_json_cursor', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_json_encoder', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp ['fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_msgpack', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source'] []
/src/jsoncons/./include/jsoncons/utility/binary.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_parser_max', 'fuzz_bson_encoder', 'fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_cbor_typed_array', 'fuzz_msgpack_encoder', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./fuzzers/fuzz_json_parser_max.cpp ['fuzz_json_parser_max'] []
/src/jsoncons/./include/jsoncons/utility/conversion.hpp ['fuzz_json_cursor', 'fuzz_cbor_cursor'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_error.hpp [] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_error.hpp [] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_reader.hpp ['fuzz_bson_parser_max', 'fuzz_bson_encoder', 'fuzz_bson'] []
/src/jsoncons/./include/jsoncons/json_reader.hpp ['fuzz_json_parser_max', 'fuzz_json_encoder'] []
/src/jsoncons/./include/jsoncons/json_encoder.hpp ['fuzz_json_encoder'] []
/src/jsoncons/./fuzzers/fuzz_msgpack_decode_bytes_source.cpp ['fuzz_msgpack_decode_bytes_source'] []
/src/jsoncons/./include/jsoncons/basic_json.hpp ['fuzz_csv', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_oid.hpp ['fuzz_bson_parser_max', 'fuzz_bson_encoder', 'fuzz_bson'] []
/src/jsoncons/./include/jsoncons/allocator_holder.hpp ['fuzz_csv', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/usr/local/bin/../include/c++/v1/stdexcept ['fuzz_csv', 'fuzz_json_cursor', 'fuzz_cbor_cursor'] []
/src/jsoncons/./include/jsoncons/conv_error.hpp [] []
/src/jsoncons/./fuzzers/fuzz_bson.cpp ['fuzz_bson'] []
/src/jsoncons/./fuzzers/fuzz_ubjson_parser_max.cpp ['fuzz_ubjson_parser_max'] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_reader.hpp ['fuzz_csv_encoder', 'fuzz_csv'] []
/src/jsoncons/./fuzzers/fuzz_ubjson.cpp ['fuzz_ubjson'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_decimal128.hpp ['fuzz_bson_parser_max', 'fuzz_bson_encoder', 'fuzz_bson'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp ['fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_cbor_typed_array', 'fuzz_cbor', 'fuzz_cbor_cursor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/json_encoders.hpp [] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp ['fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_msgpack', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source'] []
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp ['fuzz_bson_parser_max', 'fuzz_csv_encoder', 'fuzz_bson_encoder', 'fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_cbor_typed_array', 'fuzz_csv', 'fuzz_msgpack_encoder', 'fuzz_json_cursor', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_cbor', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/sorted_json_object.hpp [] []
/src/jsoncons/./include/jsoncons/ordered_json_object.hpp [] []
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp ['fuzz_ubjson_parser_max', 'fuzz_ubjson_encoder', 'fuzz_bson_parser_max', 'fuzz_csv_encoder', 'fuzz_bson_encoder', 'fuzz_json_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack_parser_max', 'fuzz_cbor_typed_array', 'fuzz_csv', 'fuzz_msgpack_encoder', 'fuzz_json_cursor', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_json_encoder', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_encoder.hpp ['fuzz_csv_encoder'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp ['fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_cbor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./fuzzers/fuzz_msgpack.cpp ['fuzz_msgpack'] []
/src/jsoncons/./include/jsoncons_ext/cbor/decode_cbor.hpp ['fuzz_cbor', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_encoder.hpp ['fuzz_msgpack_encoder'] []
/usr/local/bin/../include/c++/v1/__exception/exception.h ['fuzz_csv_encoder', 'fuzz_csv', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./fuzzers/fuzz_cbor_noexcept.cpp ['fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons/json_exception.hpp ['fuzz_csv_encoder', 'fuzz_csv', 'fuzz_json_cursor', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_cbor', 'fuzz_ubjson', 'fuzz_cbor_cursor', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor_noexcept'] []
/src/jsoncons/./include/jsoncons_ext/jsonpointer/jsonpointer.hpp [] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_encoder.hpp ['fuzz_bson_encoder'] []

Directories in report

Directory
/src/jsoncons/./include/jsoncons/
/src/jsoncons/./include/jsoncons_ext/bson/
/src/jsoncons/./include/jsoncons/utility/detail/
/src/jsoncons/./fuzzers/
/src/jsoncons/./include/jsoncons/config/
/src/jsoncons/./include/jsoncons_ext/msgpack/
/usr/local/bin/../include/c++/v1/__exception/
/src/jsoncons/./include/jsoncons_ext/ubjson/
/usr/local/bin/../include/c++/v1/
/src/jsoncons/./include/jsoncons/utility/
/src/jsoncons/./include/jsoncons_ext/jsonpointer/
/src/jsoncons/./include/jsoncons_ext/cbor/
/src/jsoncons/./include/jsoncons/nonstd/
/src/jsoncons/./include/jsoncons_ext/csv/

Metadata section

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
fuzz_ubjson_parser_max fuzzerLogFile-0-A7kVPZIoFl.data fuzzerLogFile-0-A7kVPZIoFl.data.yaml fuzz_ubjson_parser_max.covreport
fuzz_ubjson_encoder fuzzerLogFile-0-7mUq1P6nlR.data fuzzerLogFile-0-7mUq1P6nlR.data.yaml fuzz_ubjson_encoder.covreport
fuzz_bson_parser_max fuzzerLogFile-0-Di8AMPlSrf.data fuzzerLogFile-0-Di8AMPlSrf.data.yaml fuzz_bson_parser_max.covreport
fuzz_csv_encoder fuzzerLogFile-0-30p7vwPVWG.data fuzzerLogFile-0-30p7vwPVWG.data.yaml fuzz_csv_encoder.covreport
fuzz_bigint fuzzerLogFile-0-hjMheU57c6.data fuzzerLogFile-0-hjMheU57c6.data.yaml fuzz_bigint.covreport
fuzz_bson_encoder fuzzerLogFile-0-ggxT4LmDQU.data fuzzerLogFile-0-ggxT4LmDQU.data.yaml fuzz_bson_encoder.covreport
fuzz_json_parser_max fuzzerLogFile-0-HhVbrj7WCo.data fuzzerLogFile-0-HhVbrj7WCo.data.yaml fuzz_json_parser_max.covreport
fuzz_cbor_encoder fuzzerLogFile-0-m7iRRrzpwQ.data fuzzerLogFile-0-m7iRRrzpwQ.data.yaml fuzz_cbor_encoder.covreport
fuzz_cbor_parser_max fuzzerLogFile-0-dfQYVLcP4R.data fuzzerLogFile-0-dfQYVLcP4R.data.yaml fuzz_cbor_parser_max.covreport
fuzz_msgpack_parser_max fuzzerLogFile-0-mdNMdVvcyF.data fuzzerLogFile-0-mdNMdVvcyF.data.yaml fuzz_msgpack_parser_max.covreport
fuzz_cbor_typed_array fuzzerLogFile-0-ipUZlkmsM6.data fuzzerLogFile-0-ipUZlkmsM6.data.yaml fuzz_cbor_typed_array.covreport
fuzz_csv fuzzerLogFile-0-X8ejqmQgOA.data fuzzerLogFile-0-X8ejqmQgOA.data.yaml fuzz_csv.covreport
fuzz_msgpack_encoder fuzzerLogFile-0-t7TeTRy3Gx.data fuzzerLogFile-0-t7TeTRy3Gx.data.yaml fuzz_msgpack_encoder.covreport
fuzz_json_cursor fuzzerLogFile-0-AZX0a3iEOG.data fuzzerLogFile-0-AZX0a3iEOG.data.yaml fuzz_json_cursor.covreport
fuzz_bson fuzzerLogFile-0-Gin9k8fjez.data fuzzerLogFile-0-Gin9k8fjez.data.yaml fuzz_bson.covreport
fuzz_msgpack fuzzerLogFile-0-pHtP4jTe1e.data fuzzerLogFile-0-pHtP4jTe1e.data.yaml fuzz_msgpack.covreport
fuzz_parse fuzzerLogFile-0-ZBhmYWg0KJ.data fuzzerLogFile-0-ZBhmYWg0KJ.data.yaml fuzz_parse.covreport
fuzz_json_encoder fuzzerLogFile-0-I6dptX1M4L.data fuzzerLogFile-0-I6dptX1M4L.data.yaml fuzz_json_encoder.covreport
fuzz_cbor fuzzerLogFile-0-QTwp0WhpGf.data fuzzerLogFile-0-QTwp0WhpGf.data.yaml fuzz_cbor.covreport
fuzz_ubjson fuzzerLogFile-0-0OjgJoL5lJ.data fuzzerLogFile-0-0OjgJoL5lJ.data.yaml fuzz_ubjson.covreport
fuzz_cbor_cursor fuzzerLogFile-0-Mb7ttvWTkV.data fuzzerLogFile-0-Mb7ttvWTkV.data.yaml fuzz_cbor_cursor.covreport
fuzz_msgpack_decode_iterator_source fuzzerLogFile-0-gfMvhuNeA3.data fuzzerLogFile-0-gfMvhuNeA3.data.yaml fuzz_msgpack_decode_iterator_source.covreport
fuzz_msgpack_decode_bytes_source fuzzerLogFile-0-LXbzttCPYn.data fuzzerLogFile-0-LXbzttCPYn.data.yaml fuzz_msgpack_decode_bytes_source.covreport
fuzz_cbor_noexcept fuzzerLogFile-0-F91slk83fY.data fuzzerLogFile-0-F91slk83fY.data.yaml fuzz_cbor_noexcept.covreport