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_encoder /src/jsoncons/./fuzzers/fuzz_ubjson_encoder.cpp 175 136 8 14 742 446 fuzz_ubjson_encoder.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_ubjson_parser_max /src/jsoncons/./fuzzers/fuzz_ubjson_parser_max.cpp 164 96 8 12 720 426 fuzz_ubjson_parser_max.cpp
fuzz_json_cursor /src/jsoncons/./fuzzers/fuzz_json_cursor.cpp 328 168 12 23 2434 989 fuzz_json_cursor.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 /src/jsoncons/./fuzzers/fuzz_bson.cpp 326 735 10 26 1087 651 fuzz_bson.cpp
fuzz_parse /src/jsoncons/./fuzzers/fuzz_parse.cpp 302 694 10 16 1900 742 fuzz_parse.cpp
fuzz_msgpack_encoder /src/jsoncons/./fuzzers/fuzz_msgpack_encoder.cpp 344 288 12 18 1425 789 fuzz_msgpack_encoder.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_cbor_parser_max /src/jsoncons/./fuzzers/fuzz_cbor_parser_max.cpp 687 427 14 25 4733 2820 fuzz_cbor_parser_max.cpp
fuzz_msgpack /src/jsoncons/./fuzzers/fuzz_msgpack.cpp 488 863 14 26 1713 1033 fuzz_msgpack.cpp
fuzz_ubjson /src/jsoncons/./fuzzers/fuzz_ubjson.cpp 319 740 10 23 1025 688 fuzz_ubjson.cpp
fuzz_cbor /src/jsoncons/./fuzzers/fuzz_cbor.cpp 858 1065 16 34 5055 3101 fuzz_cbor.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_json_encoder /src/jsoncons/./fuzzers/fuzz_json_encoder.cpp 273 317 10 16 1956 744 fuzz_json_encoder.cpp
fuzz_cbor_typed_array /src/jsoncons/./fuzzers/fuzz_cbor_typed_array.cpp 721 517 16 27 4837 2918 fuzz_cbor_typed_array.cpp
fuzz_cbor_cursor /src/jsoncons/./fuzzers/fuzz_cbor_cursor.cpp 791 493 16 33 5311 3179 fuzz_cbor_cursor.cpp
fuzz_csv /src/jsoncons/./fuzzers/fuzz_csv.cpp 483 770 15 23 3500 1641 fuzz_csv.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 1068 1163 15 37 7778 4825 fuzz_cbor_noexcept.cpp
fuzz_cbor_encoder /src/jsoncons/./fuzzers/fuzz_cbor_encoder.cpp 720 533 14 27 4813 2879 fuzz_cbor_encoder.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_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_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_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] 15 7.89%
yellow [10:29] 11 5.78%
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_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] 1 0.24%
lawngreen 50+ 219 52.7%
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_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] 2 0.29%
yellow [10:29] 1 0.14%
greenyellow [30:49] 4 0.59%
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

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_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] 1 0.27%
greenyellow [30:49] 0 0.0%
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_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_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_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 137 10.4%
gold [1:9] 11 0.83%
yellow [10:29] 16 1.21%
greenyellow [30:49] 20 1.52%
lawngreen 50+ 1128 85.9%
All colors 1312 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 346 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00346 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 239 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00239
5 371 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00371
4 313 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00313 __cxa_allocate_exception
4 1306 LLVMFuzzerTestOneInput call site: 01306
3 39 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::parse(jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00039 __clang_call_terminate
3 76 jsoncons::stream_source >::read(unsigned char*, unsigned long) call site: 00076 __cxa_begin_catch
3 207 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&) call site: 00207
3 416 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00416 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
3 422 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00422
3 1067 jsoncons::basic_bigint >::trailing_zero_bits() const call site: 01067 __clang_call_terminate
3 1082 jsoncons::basic_bigint >::operator*=(jsoncons::basic_bigint >) call site: 01082 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2IiEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE

Runtime coverage analysis

Covered functions
499
Functions that are reachable but not covered
42
Reachable functions
687
Percentage of reachable functions covered
93.89%
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 7
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp 46
/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 3
/src/jsoncons/./include/jsoncons/utility/binary.hpp 13
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 7
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 88
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 8
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 2
/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 7
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/bit.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 8

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_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

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 160 11.1%
gold [1:9] 14 0.97%
yellow [10:29] 33 2.29%
greenyellow [30:49] 10 0.69%
lawngreen 50+ 1224 84.9%
All colors 1441 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 386 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00386 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 279 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00279
11 1143 jsoncons::basic_bigint >::operator*=(jsoncons::basic_bigint >) call site: 01143
6 467 jsoncons::basic_bigint >::operator>>=(unsigned long) call site: 00467
4 353 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00353 __cxa_allocate_exception
4 1354 _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: 01354
3 116 jsoncons::stream_source >::read(unsigned char*, unsigned long) call site: 00116 __cxa_begin_catch
3 247 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&) call site: 00247
3 456 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00456 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
3 462 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00462
3 1107 jsoncons::basic_bigint >::trailing_zero_bits() const call site: 01107 __clang_call_terminate
3 1122 jsoncons::basic_bigint >::operator*=(jsoncons::basic_bigint >) call site: 01122 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2IiEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE

Runtime coverage analysis

Covered functions
799
Functions that are reachable but not covered
68
Reachable functions
858
Percentage of reachable functions covered
92.07%
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 7
/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 6
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 5
/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 48
/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 88
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 8
/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 7
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/bit.hpp 2
/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_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_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_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 175 13.0%
gold [1:9] 3 0.22%
yellow [10:29] 6 0.44%
greenyellow [30:49] 1 0.07%
lawngreen 50+ 1160 86.2%
All colors 1345 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 342 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00342 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 235 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00235
12 470 jsoncons::nonstd::span jsoncons::typed_array_cast (jsoncons::nonstd::span ) call site: 00470 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIhEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 510 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: 00510 _ZN8jsoncons4cbor20typed_array_iterator11write_valueItEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 532 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: 00532 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIjEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 554 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: 00554 _ZN8jsoncons4cbor20typed_array_iterator11write_valueImEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 572 jsoncons::nonstd::span jsoncons::typed_array_cast (jsoncons::nonstd::span ) call site: 00572 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIaEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 595 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: 00595 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIsEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 617 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: 00617 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIiEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 639 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: 00639 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIlEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 682 _ZN8jsoncons6binary9byte_swapIfEENSt3__19enable_ifIXaasr3std17is_floating_pointIT_EE5valueeqstS4_Lm4EES4_E4typeES4_ call site: 00682 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIfEENSt3__19enable_ifIXsr17is_floating_pointIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 1002 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: 01002 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2IiEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE

Runtime coverage analysis

Covered functions
460
Functions that are reachable but not covered
50
Reachable functions
721
Percentage of reachable functions covered
93.07%
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 7
/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 53
/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 3
/src/jsoncons/./include/jsoncons/utility/binary.hpp 13
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 7
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 88
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 8
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 2
/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 7
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/bit.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 8

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 613 42.6%
gold [1:9] 305 21.2%
yellow [10:29] 111 7.71%
greenyellow [30:49] 66 4.58%
lawngreen 50+ 343 23.8%
All colors 1438 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
35 1372 void jsoncons::prettify_string , std::__1::allocator > >(char const*, int, int, int, int, std::__1::basic_string , std::__1::allocator >&) call site: 01372 snprintf
29 646 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00646 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIlEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
28 1267 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::begin_object(unsigned char, jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 01267 __cxa_allocate_exception
26 33 jsoncons::cbor::basic_cbor_cursor >, std::__1::allocator >::read_next(std::__1::error_code&) call site: 00033 __cxa_allocate_exception
24 461 _ZN8jsoncons21basic_generic_visitorIcE17byte_string_valueINS_16byte_string_viewEEEbRKT_NS_12semantic_tagERKNS_11ser_contextERNSt3__110error_codeENSB_9enable_ifIXsr6nonstd18is_bytes_view_likeIS4_EE5valueEiE4typeE call site: 00461 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIhEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
21 624 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00624 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIiEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
19 726 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_negative_integer(unsigned char, jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00726 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
18 561 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00561 _ZN8jsoncons4cbor20typed_array_iterator11write_valueImEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
18 995 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: 00995 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
17 487 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00487 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIhEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
15 443 void jsoncons::basic_bigint >::append_to_buffer , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&) const call site: 00443 _ZN8jsoncons21basic_generic_visitorIcE17byte_string_valueINS_16byte_string_viewEEEbRKT_NS_12semantic_tagERKNS_11ser_contextERNSt3__110error_codeENSB_9enable_ifIXsr6nonstd18is_bytes_view_likeIS4_EE5valueEiE4typeE
15 902 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_bigdecimal(unsigned char, std::__1::basic_string , std::__1::allocator >&, std::__1::error_code&) call site: 00902 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2IiEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE

Runtime coverage analysis

Covered functions
337
Functions that are reachable but not covered
178
Reachable functions
791
Percentage of reachable functions covered
77.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.
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 7
/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 49
/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 3
/src/jsoncons/./include/jsoncons/utility/binary.hpp 13
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 11
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 88
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 8
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 2
/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 7
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 15
/src/jsoncons/./include/jsoncons/nonstd/bit.hpp 2
/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_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_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 233 12.5%
gold [1:9] 25 1.34%
yellow [10:29] 5 0.26%
greenyellow [30:49] 26 1.39%
lawngreen 50+ 1575 84.4%
All colors 1864 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 1739 jsoncons::basic_staj_event ::send_event(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) const call site: 01739 __cxa_allocate_exception
19 1774 _ZN8jsoncons21basic_generic_visitorIcE17byte_string_valueINS_16byte_string_viewEEEbRKT_NS_12semantic_tagERKNS_11ser_contextENSt3__19enable_ifIXsr6nonstd18is_bytes_view_likeIS4_EE5valueEiE4typeE call site: 01774 __cxa_allocate_exception
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
11 1142 jsoncons::basic_bigint >::operator*=(jsoncons::basic_bigint >) call site: 01142
9 1809 jsoncons::basic_staj_event ::send_event(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) const call site: 01809 __cxa_allocate_exception
5 410 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00410
5 1763 jsoncons::basic_staj_event ::send_event(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) const call site: 01763 __cxa_allocate_exception
5 1795 jsoncons::basic_staj_event ::send_event(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) const call site: 01795 __cxa_allocate_exception
5 1802 jsoncons::basic_staj_event ::send_event(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) const call site: 01802 __cxa_allocate_exception
5 1827 jsoncons::cbor::basic_cbor_cursor , std::__1::allocator >::read_to(jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 01827 __cxa_allocate_exception
4 352 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00352 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
945
Functions that are reachable but not covered
74
Reachable functions
1068
Percentage of reachable functions covered
93.07%
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 7
/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 6
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 5
/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 103
/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 88
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 8
/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 7
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/bit.hpp 2
/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

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 497 37.0%
gold [1:9] 283 21.1%
yellow [10:29] 108 8.05%
greenyellow [30:49] 46 3.43%
lawngreen 50+ 407 30.3%
All colors 1341 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
51 1156 jsoncons::cbor::cbor_errc jsoncons::cbor::from_cbor_bigfloat >(jsoncons::basic_bigint >, long, jsoncons::basic_bigdec >&, unsigned long) call site: 01156 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2IiEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
30 1256 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_mdarray_header(jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 01256 __cxa_allocate_exception
20 1123 jsoncons::basic_bigint >::operator*=(jsoncons::basic_bigint >) call site: 01123 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEmLImEENS1_9enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueERS4_E4typeES7_
17 593 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00593 _ZN8jsoncons4cbor20typed_array_iterator11write_valueImEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
17 615 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00615 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIsEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
15 474 void jsoncons::basic_bigint >::append_to_buffer , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&) const call site: 00474 _ZN8jsoncons21basic_generic_visitorIcE17byte_string_valueINS_16byte_string_viewEEEbRKT_NS_12semantic_tagERKNS_11ser_contextERNSt3__110error_codeENSB_9enable_ifIXsr6nonstd18is_bytes_view_likeIS4_EE5valueEiE4typeE
13 678 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00678 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIlEENSt3__19enable_ifIXsr6nonstd17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
13 1031 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: 01031 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2IiEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
12 501 jsoncons::nonstd::span jsoncons::typed_array_cast (jsoncons::nonstd::span ) call site: 00501 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIhEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
11 398 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00398
11 524 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: 00524 _ZN8jsoncons6nonstd4spanIhLm18446744073709551615EEC2INSt3__16vectorIhNS4_9allocatorIhEEEEEERT_PNS4_9enable_ifIXaaaaaantsr7is_spanIS9_EE5valuentsr6nonstd12is_std_arrayIS9_EE5valuesr6nonstd21is_compatible_elementIS9_hEE5valuesr6nonstd17has_data_and_sizeIS9_EE5valueEvE4typeE
9 538 jsoncons::nonstd::span jsoncons::typed_array_cast (jsoncons::nonstd::span ) call site: 00538 _ZN8jsoncons4cbor20typed_array_iterator11write_valueItEENSt3__19enable_ifIXsr6nonstd19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE

Runtime coverage analysis

Covered functions
455
Functions that are reachable but not covered
113
Reachable functions
720
Percentage of reachable functions covered
84.31%
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 12
/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 46
/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 3
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 7
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 88
/src/jsoncons/./include/jsoncons/nonstd/u128.hpp 8
/src/jsoncons/./include/jsoncons/nonstd/more_type_traits.hpp 2
/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 7
/src/jsoncons/./include/jsoncons/utility/number_writers.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/bit.hpp 2
/src/jsoncons/./include/jsoncons/nonstd/expected.hpp 8

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::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 366
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'] 18 0 24 3 2 281 0 842 259
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%
2238 / 3190
Cyclomatic complexity statically reachable by fuzzers
77.0%
13002 / 16991

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_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_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_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_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_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.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_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_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_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_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 >::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', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const']

/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_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.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*=(jsoncons::basic_bigint >)', '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', '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_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_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)', '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&)', '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&)']

/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=['void jsoncons::prettify_string, std::__1::allocator > >(char const*, int, int, int, int, std::__1::basic_string, std::__1::allocator >&)', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::begin_object(unsigned char, jsoncons::basic_generic_visitor&, std::__1::error_code&)', 'jsoncons::cbor::basic_cbor_cursor >, std::__1::allocator >::read_next(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', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_negative_integer(unsigned char, 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::basic_cbor_parser >, std::__1::allocator >::read_bigfloat(unsigned char, std::__1::basic_string, std::__1::allocator >&, std::__1::error_code&)', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, 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_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', '_ZN8jsoncons21basic_generic_visitorIcE17byte_string_valueINS_16byte_string_viewEEEbRKT_NS_12semantic_tagERKNS_11ser_contextENSt3__19enable_ifIXsr6nonstd18is_bytes_view_likeIS4_EE5valueEiE4typeE', '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*=(jsoncons::basic_bigint >)', 'jsoncons::basic_staj_event::send_event(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&) const', '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', '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']

/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::cbor_errc jsoncons::cbor::from_cbor_bigfloat >(jsoncons::basic_bigint >, long, jsoncons::basic_bigdec >&, unsigned long)', 'jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_mdarray_header(jsoncons::basic_generic_visitor&, std::__1::error_code&)', 'jsoncons::basic_bigint >::operator*=(jsoncons::basic_bigint >)', '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::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_bigfloat(unsigned char, std::__1::basic_string, std::__1::allocator >&, std::__1::error_code&)', 'jsoncons::nonstd::span jsoncons::typed_array_cast(jsoncons::nonstd::span)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)']

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']
_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_csv', 'fuzz_json_parser_max', 'fuzz_parse', 'fuzz_json_cursor', 'fuzz_csv_encoder', 'fuzz_json_encoder']
jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor &,std::__1::error_code&) 40 19 47.5% ['fuzz_csv', 'fuzz_json_parser_max', 'fuzz_parse', 'fuzz_json_cursor', 'fuzz_csv_encoder', 'fuzz_json_encoder']
unsignedlongjsoncons::write_double::operator() ,std::__1::allocator >>(double,std::__1::basic_string ,std::__1::allocator >&) 72 19 26.38% ['fuzz_json_cursor', 'fuzz_csv_encoder', 'fuzz_cbor_cursor']
booljsoncons::dtoa_general ,std::__1::allocator >>(double,char,std::__1::basic_string ,std::__1::allocator >&,std::__1::integral_constant ) 33 18 54.54% ['fuzz_json_cursor', 'fuzz_csv_encoder', 'fuzz_cbor_cursor']
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']
jsoncons::basic_json >::swap(jsoncons::basic_json >&) 36 18 50.0% ['fuzz_bson', 'fuzz_msgpack_decode_bytes_source', 'fuzz_cbor', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_msgpack_decode_iterator_source', 'fuzz_ubjson', 'fuzz_cbor_noexcept']
jsoncons::bson::bson_error_category_impl::message(int)const 41 21 51.21% ['fuzz_bson']
unsignedlongjsoncons::write_double::operator() ,std::__1::allocator >>>(double,jsoncons::string_sink ,std::__1::allocator >>&) 72 19 26.38% ['fuzz_msgpack_decode_bytes_source', 'fuzz_cbor', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_msgpack_parser_max', 'fuzz_cbor_parser_max', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_encoder', 'fuzz_json_encoder', 'fuzz_cbor_noexcept']
booljsoncons::dtoa_general ,std::__1::allocator >>>(double,char,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::integral_constant ) 33 18 54.54% ['fuzz_msgpack_decode_bytes_source', 'fuzz_cbor', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_msgpack_parser_max', 'fuzz_cbor_parser_max', 'fuzz_msgpack_decode_iterator_source', 'fuzz_msgpack_encoder', 'fuzz_json_encoder', 'fuzz_cbor_noexcept']
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::msgpack::msgpack_error_category_impl::message(int)const 33 13 39.39% ['fuzz_msgpack_decode_bytes_source', 'fuzz_msgpack', 'fuzz_msgpack_decode_iterator_source']
jsoncons::ubjson::ubjson_error_category_impl::message(int)const 37 19 51.35% ['fuzz_ubjson']
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::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']
_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']
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&) 52 21 40.38% ['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']

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

Directories in report

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

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_encoder fuzzerLogFile-0-rXwQCEJ4Bb.data fuzzerLogFile-0-rXwQCEJ4Bb.data.yaml fuzz_ubjson_encoder.covreport
fuzz_bson_encoder fuzzerLogFile-0-xkjiAwjSBO.data fuzzerLogFile-0-xkjiAwjSBO.data.yaml fuzz_bson_encoder.covreport
fuzz_json_parser_max fuzzerLogFile-0-XKnmeEQkdb.data fuzzerLogFile-0-XKnmeEQkdb.data.yaml fuzz_json_parser_max.covreport
fuzz_ubjson_parser_max fuzzerLogFile-0-0PzfWZ2x4x.data fuzzerLogFile-0-0PzfWZ2x4x.data.yaml fuzz_ubjson_parser_max.covreport
fuzz_json_cursor fuzzerLogFile-0-ZOCMaESyAM.data fuzzerLogFile-0-ZOCMaESyAM.data.yaml fuzz_json_cursor.covreport
fuzz_bson_parser_max fuzzerLogFile-0-JMjliAxNhW.data fuzzerLogFile-0-JMjliAxNhW.data.yaml fuzz_bson_parser_max.covreport
fuzz_csv_encoder fuzzerLogFile-0-UmwdZ6bb5Q.data fuzzerLogFile-0-UmwdZ6bb5Q.data.yaml fuzz_csv_encoder.covreport
fuzz_bigint fuzzerLogFile-0-VIYQ1MIyO2.data fuzzerLogFile-0-VIYQ1MIyO2.data.yaml fuzz_bigint.covreport
fuzz_bson fuzzerLogFile-0-eQ5Ee4kQo3.data fuzzerLogFile-0-eQ5Ee4kQo3.data.yaml fuzz_bson.covreport
fuzz_parse fuzzerLogFile-0-kPLCHJebso.data fuzzerLogFile-0-kPLCHJebso.data.yaml fuzz_parse.covreport
fuzz_msgpack_encoder fuzzerLogFile-0-OrVwUXCwss.data fuzzerLogFile-0-OrVwUXCwss.data.yaml fuzz_msgpack_encoder.covreport
fuzz_msgpack_decode_iterator_source fuzzerLogFile-0-XzjMZapJcC.data fuzzerLogFile-0-XzjMZapJcC.data.yaml fuzz_msgpack_decode_iterator_source.covreport
fuzz_cbor_parser_max fuzzerLogFile-0-QQ8LsUesP0.data fuzzerLogFile-0-QQ8LsUesP0.data.yaml fuzz_cbor_parser_max.covreport
fuzz_msgpack fuzzerLogFile-0-myWwx21lN9.data fuzzerLogFile-0-myWwx21lN9.data.yaml fuzz_msgpack.covreport
fuzz_ubjson fuzzerLogFile-0-vHsAbucuys.data fuzzerLogFile-0-vHsAbucuys.data.yaml fuzz_ubjson.covreport
fuzz_cbor fuzzerLogFile-0-hrSBQtnOfk.data fuzzerLogFile-0-hrSBQtnOfk.data.yaml fuzz_cbor.covreport
fuzz_msgpack_parser_max fuzzerLogFile-0-ygOZHHBOV4.data fuzzerLogFile-0-ygOZHHBOV4.data.yaml fuzz_msgpack_parser_max.covreport
fuzz_json_encoder fuzzerLogFile-0-my4pfgv7lW.data fuzzerLogFile-0-my4pfgv7lW.data.yaml fuzz_json_encoder.covreport
fuzz_cbor_typed_array fuzzerLogFile-0-R2R42bpD5X.data fuzzerLogFile-0-R2R42bpD5X.data.yaml fuzz_cbor_typed_array.covreport
fuzz_cbor_cursor fuzzerLogFile-0-cpLZBeeMVF.data fuzzerLogFile-0-cpLZBeeMVF.data.yaml fuzz_cbor_cursor.covreport
fuzz_csv fuzzerLogFile-0-2REy55sOYi.data fuzzerLogFile-0-2REy55sOYi.data.yaml fuzz_csv.covreport
fuzz_msgpack_decode_bytes_source fuzzerLogFile-0-MQw2NpaBaK.data fuzzerLogFile-0-MQw2NpaBaK.data.yaml fuzz_msgpack_decode_bytes_source.covreport
fuzz_cbor_noexcept fuzzerLogFile-0-glxVvoocEI.data fuzzerLogFile-0-glxVvoocEI.data.yaml fuzz_cbor_noexcept.covreport
fuzz_cbor_encoder fuzzerLogFile-0-YPsZFLV02d.data fuzzerLogFile-0-YPsZFLV02d.data.yaml fuzz_cbor_encoder.covreport