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

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
153 0 EP call site: 00000 __assert_fail

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 cxxopts::Options::Options(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00001
2 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > cxxopts::toLocalString<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) [function] [call site] 00002
1 void add_fuzzed_option<int>(cxxopts::Options*, FuzzedDataProvider*) [function] [call site] 00003
2 __assert_fail [call site] 00004
2 __assert_fail [call site] 00005
2 cxxopts::Options::add_options(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00006
3 cxxopts::OptionAdder::OptionAdder(cxxopts::Options&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00007
2 std::__1::shared_ptr<cxxopts::Value> cxxopts::value<int>() [function] [call site] 00008
2 cxxopts::OptionAdder::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<cxxopts::Value const> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00009
3 cxxopts::values::parser_tool::split_option_names(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00010
4 __cxa_guard_acquire [call site] 00011
4 __cxa_atexit [call site] 00012
4 __cxa_guard_release [call site] 00013
4 void cxxopts::throw_or_mimic<cxxopts::exceptions::invalid_option_format>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00014
5 __cxa_allocate_exception [call site] 00015
5 cxxopts::exceptions::invalid_option_format::invalid_option_format(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00016
6 cxxopts::exceptions::specification::specification(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00017
7 cxxopts::exceptions::exception::exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00018
8 std::exception::exception[abi:ne180100]() [function] [call site] 00019
5 __cxa_throw [call site] 00020
5 cxxopts::exceptions::invalid_option_format::~invalid_option_format() [function] [call site] 00021
6 cxxopts::exceptions::specification::~specification() [function] [call site] 00022
7 cxxopts::exceptions::exception::~exception() [function] [call site] 00023
8 std::exception::~exception() [call site] 00024
5 __cxa_free_exception [call site] 00025
4 __cxa_guard_abort [call site] 00026
4 __cxa_guard_acquire [call site] 00027
4 __cxa_atexit [call site] 00028
4 __cxa_guard_release [call site] 00029
4 __cxa_guard_abort [call site] 00030
3 void cxxopts::throw_or_mimic<cxxopts::exceptions::invalid_option_format>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00031
3 cxxopts::Options::add_option(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<cxxopts::Value const> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00032
4 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > cxxopts::toLocalString<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) [function] [call site] 00033
4 cxxopts::Options::add_one_option(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<cxxopts::OptionDetails> const&) [function] [call site] 00034
5 void cxxopts::throw_or_mimic<cxxopts::exceptions::option_already_exists>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00035
6 cxxopts::exceptions::option_already_exists::option_already_exists(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00036
7 cxxopts::exceptions::specification::specification(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00037
6 cxxopts::exceptions::option_already_exists::~option_already_exists() [function] [call site] 00038
7 cxxopts::exceptions::specification::~specification() [function] [call site] 00039
4 cxxopts::Options::add_one_option(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<cxxopts::OptionDetails> const&) [function] [call site] 00040
4 cxxopts::HelpOptionDetails::~HelpOptionDetails() [function] [call site] 00041
2 cxxopts::OptionAdder::~OptionAdder() [function] [call site] 00042
1 void add_fuzzed_option<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(cxxopts::Options*, FuzzedDataProvider*) [function] [call site] 00043
2 std::__1::shared_ptr<cxxopts::Value> cxxopts::value<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >() [function] [call site] 00044
1 void add_fuzzed_option<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >(cxxopts::Options*, FuzzedDataProvider*) [function] [call site] 00045
2 std::__1::shared_ptr<cxxopts::Value> cxxopts::value<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >() [function] [call site] 00046
1 void add_fuzzed_option<float>(cxxopts::Options*, FuzzedDataProvider*) [function] [call site] 00047
2 std::__1::shared_ptr<cxxopts::Value> cxxopts::value<float>() [function] [call site] 00048
1 void add_fuzzed_option<double>(cxxopts::Options*, FuzzedDataProvider*) [function] [call site] 00049
2 std::__1::shared_ptr<cxxopts::Value> cxxopts::value<double>() [function] [call site] 00050
1 cxxopts::Options::allow_unrecognised_options() [function] [call site] 00051
1 cxxopts::Options::add_options(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00052
1 std::__1::shared_ptr<cxxopts::Value> cxxopts::value<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >() [function] [call site] 00053
1 cxxopts::OptionAdder::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<cxxopts::Value const> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00054
1 cxxopts::OptionAdder::~OptionAdder() [function] [call site] 00055
1 cxxopts::Options::parse_positional(std::initializer_list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >) [function] [call site] 00056
2 cxxopts::Options::parse_positional(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >) [function] [call site] 00057
1 cxxopts::Options::parse(int, char const* const*) [function] [call site] 00058
2 cxxopts::OptionParser::OptionParser(std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<cxxopts::OptionDetails>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<cxxopts::OptionDetails> > > > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, bool) [function] [call site] 00059
2 cxxopts::OptionParser::parse(int, char const* const*) [function] [call site] 00060
3 strcmp [call site] 00061
3 cxxopts::values::parser_tool::ParseArgument(char const*, bool&) [function] [call site] 00062
4 __cxa_guard_acquire [call site] 00063
4 __cxa_atexit [call site] 00064
4 __cxa_guard_release [call site] 00065
4 cxxopts::values::parser_tool::ArguDesc::ArguDesc() [function] [call site] 00066
4 __cxa_guard_abort [call site] 00067
4 cxxopts::values::parser_tool::ArguDesc::~ArguDesc() [function] [call site] 00068
3 void cxxopts::throw_or_mimic<cxxopts::exceptions::invalid_option_syntax>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00069
4 cxxopts::exceptions::invalid_option_syntax::invalid_option_syntax(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00070
5 cxxopts::exceptions::parsing::parsing(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00071
6 cxxopts::exceptions::exception::exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00072
4 cxxopts::exceptions::invalid_option_syntax::~invalid_option_syntax() [function] [call site] 00073
5 cxxopts::exceptions::parsing::~parsing() [function] [call site] 00074
6 cxxopts::exceptions::exception::~exception() [function] [call site] 00075
3 cxxopts::OptionParser::consume_positional(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::__wrap_iter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const*>&) [function] [call site] 00076
4 cxxopts::OptionDetails::value() const [function] [call site] 00077
4 cxxopts::OptionDetails::hash() const [function] [call site] 00078
4 cxxopts::OptionValue::count() const [function] [call site] 00079
4 cxxopts::OptionParser::add_to_option(std::__1::shared_ptr<cxxopts::OptionDetails> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00080
5 cxxopts::OptionDetails::hash() const [function] [call site] 00081
5 cxxopts::OptionValue::add(std::__1::shared_ptr<cxxopts::OptionDetails const> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00082
6 cxxopts::OptionValue::ensure_value(std::__1::shared_ptr<cxxopts::OptionDetails const> const&) [function] [call site] 00083
7 cxxopts::OptionDetails::make_storage() const [function] [call site] 00084
6 cxxopts::OptionDetails::long_names() const [function] [call site] 00085
5 cxxopts::OptionDetails::essential_name() const [function] [call site] 00086
4 cxxopts::OptionParser::add_to_option(std::__1::shared_ptr<cxxopts::OptionDetails> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00087
4 void cxxopts::throw_or_mimic<cxxopts::exceptions::no_such_option>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00088
5 cxxopts::exceptions::no_such_option::no_such_option(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00089
6 cxxopts::exceptions::parsing::parsing(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00090
5 cxxopts::exceptions::no_such_option::~no_such_option() [function] [call site] 00091
6 cxxopts::exceptions::parsing::~parsing() [function] [call site] 00092
3 void cxxopts::throw_or_mimic<cxxopts::exceptions::no_such_option>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00093
3 cxxopts::OptionParser::checked_parse_arg(int, char const* const*, int&, std::__1::shared_ptr<cxxopts::OptionDetails> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00094
4 cxxopts::OptionDetails::value() const [function] [call site] 00095
4 cxxopts::OptionDetails::value() const [function] [call site] 00096
4 cxxopts::OptionParser::parse_option(std::__1::shared_ptr<cxxopts::OptionDetails> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00097
5 cxxopts::OptionDetails::hash() const [function] [call site] 00098
5 cxxopts::OptionValue::parse(std::__1::shared_ptr<cxxopts::OptionDetails const> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00099
6 cxxopts::OptionValue::ensure_value(std::__1::shared_ptr<cxxopts::OptionDetails const> const&) [function] [call site] 00100
6 cxxopts::OptionDetails::long_names() const [function] [call site] 00101
5 cxxopts::OptionDetails::essential_name() const [function] [call site] 00102
4 void cxxopts::throw_or_mimic<cxxopts::exceptions::missing_argument>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00103
5 cxxopts::exceptions::missing_argument::missing_argument(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00104
6 cxxopts::exceptions::parsing::parsing(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00105
5 cxxopts::exceptions::missing_argument::~missing_argument() [function] [call site] 00106
6 cxxopts::exceptions::parsing::~parsing() [function] [call site] 00107
4 cxxopts::OptionDetails::value() const [function] [call site] 00108
4 cxxopts::OptionDetails::value() const [function] [call site] 00109
4 cxxopts::OptionParser::parse_option(std::__1::shared_ptr<cxxopts::OptionDetails> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00110
4 cxxopts::OptionParser::parse_option(std::__1::shared_ptr<cxxopts::OptionDetails> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00111
3 cxxopts::OptionDetails::value() const [function] [call site] 00112
3 cxxopts::OptionDetails::value() const [function] [call site] 00113
3 cxxopts::OptionParser::parse_option(std::__1::shared_ptr<cxxopts::OptionDetails> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00114
3 cxxopts::OptionParser::parse_option(std::__1::shared_ptr<cxxopts::OptionDetails> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00115
3 void cxxopts::throw_or_mimic<cxxopts::exceptions::option_requires_argument>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00116
4 cxxopts::exceptions::option_requires_argument::option_requires_argument(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00117
5 cxxopts::exceptions::parsing::parsing(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00118
4 cxxopts::exceptions::option_requires_argument::~option_requires_argument() [function] [call site] 00119
5 cxxopts::exceptions::parsing::~parsing() [function] [call site] 00120
3 void cxxopts::throw_or_mimic<cxxopts::exceptions::no_such_option>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00121
3 cxxopts::OptionParser::parse_option(std::__1::shared_ptr<cxxopts::OptionDetails> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00122
3 cxxopts::OptionParser::checked_parse_arg(int, char const* const*, int&, std::__1::shared_ptr<cxxopts::OptionDetails> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00123
3 cxxopts::values::parser_tool::ArguDesc::~ArguDesc() [function] [call site] 00124
3 cxxopts::OptionDetails::value() const [function] [call site] 00125
3 cxxopts::OptionDetails::hash() const [function] [call site] 00126
3 cxxopts::OptionValue::count() const [function] [call site] 00127
3 cxxopts::OptionValue::has_default() const [function] [call site] 00128
3 cxxopts::OptionParser::parse_default(std::__1::shared_ptr<cxxopts::OptionDetails> const&) [function] [call site] 00129
4 cxxopts::OptionDetails::hash() const [function] [call site] 00130
4 cxxopts::OptionValue::parse_default(std::__1::shared_ptr<cxxopts::OptionDetails const> const&) [function] [call site] 00131
5 cxxopts::OptionValue::ensure_value(std::__1::shared_ptr<cxxopts::OptionDetails const> const&) [function] [call site] 00132
5 cxxopts::OptionDetails::long_names() const [function] [call site] 00133
4 cxxopts::OptionDetails::essential_name() const [function] [call site] 00134
4 cxxopts::OptionDetails::value() const [function] [call site] 00135
3 cxxopts::OptionParser::parse_no_value(std::__1::shared_ptr<cxxopts::OptionDetails> const&) [function] [call site] 00136
4 cxxopts::OptionDetails::hash() const [function] [call site] 00137
4 cxxopts::OptionValue::parse_no_value(std::__1::shared_ptr<cxxopts::OptionDetails const> const&) [function] [call site] 00138
5 cxxopts::OptionDetails::long_names() const [function] [call site] 00139
3 cxxopts::OptionParser::consume_positional(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::__wrap_iter<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const*>&) [function] [call site] 00140
3 cxxopts::OptionParser::finalise_aliases() [function] [call site] 00141
4 cxxopts::OptionDetails::hash() const [function] [call site] 00142
4 cxxopts::OptionDetails::short_name() const [function] [call site] 00143
4 cxxopts::OptionDetails::long_names() const [function] [call site] 00144
4 cxxopts::OptionValue::OptionValue() [function] [call site] 00145
4 cxxopts::OptionValue::~OptionValue() [function] [call site] 00146
3 cxxopts::ParseResult::ParseResult(std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned long, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, unsigned long> > >&&, std::__1::unordered_map<unsigned long, cxxopts::OptionValue, std::__1::hash<unsigned long>, std::__1::equal_to<unsigned long>, std::__1::allocator<std::__1::pair<unsigned long const, cxxopts::OptionValue> > >&&, std::__1::vector<cxxopts::KeyValue, std::__1::allocator<cxxopts::KeyValue> >, std::__1::vector<cxxopts::KeyValue, std::__1::allocator<cxxopts::KeyValue> >, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&&) [function] [call site] 00147
3 cxxopts::ParseResult::~ParseResult() [function] [call site] 00148
2 cxxopts::OptionParser::~OptionParser() [function] [call site] 00149
1 cxxopts::ParseResult::~ParseResult() [function] [call site] 00150
1 cxxopts::Options::~Options() [function] [call site] 00151
1 __cxa_begin_catch [call site] 00152
1 __cxa_end_catch [call site] 00153