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

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: script_fuzzer

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 979 57.9%
gold [1:9] 0 0.0%
yellow [10:29] 33 1.95%
greenyellow [30:49] 5 0.29%
lawngreen 50+ 672 39.7%
All colors 1689 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
104 434 void BT::Blackboard::set (std::__cxx11::basic_string , std::allocator > const&, int const&) call site: 00434 _ZN2BT3AnyC2IiEERKT_PNSt9enable_ifIXoosr3std11is_integralIS2_EE5valuesr3std7is_enumIS2_EE5valueEvE4typeE
86 309 BT::Blackboard::createEntryImpl(std::__cxx11::basic_string , std::allocator > const&, BT::TypeInfo const&) call site: 00309 __cxa_begin_catch
55 1050 LLVMFuzzerTestOneInput call site: 01050 _ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiEC2IJOS5_EJLm0EEJETpTnmJEEERSt5tupleIJDpT_EERSA_IJDpT1_EESt12_Index_tupleIJXspT0_EEESJ_IJXspT2_EEE
31 1263 BT::Scripting::ScriptParser::parseChainedComparison(std::shared_ptr ) call site: 01263
30 1128 BT::Scripting::tokenize(std::__cxx11::basic_string , std::allocator > const&) call site: 01128
30 1305 BT::Scripting::ScriptParser::parseChainedComparison(std::shared_ptr ) call site: 01305
26 679 void SafeAny::details::checkTruncation (double const&) call site: 00679 _ZN6nonstd13expected_lite8expectedIlNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS7_TnNSt9enable_ifIXaasr3std16is_constructibleIS7_OT_EE5valuesr3std14is_convertibleISC_S7_EE5valueEiE4typeELi0EEEONS0_15unexpected_typeISB_EE
24 553 BT::Blackboard::getEntry(std::__cxx11::basic_string , std::allocator > const&) const call site: 00553 __cxa_allocate_exception
23 79 LLVMFuzzerTestOneInput call site: 00079 strlen
22 785 nonstd::expected_lite::detail::storage_t , std::allocator >, true, true>::storage_t(bool) call site: 00785 _ZNK2BT3Any7convertImEEN6nonstd13expected_lite8expectedIT_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNSt9enable_ifIXsr3std13is_arithmeticIS5_EE5valueEvE4typeE
17 958 std::function >)> BT::GetAnyFromStringFunctor () call site: 00958
17 984 std::function >)> BT::GetAnyFromStringFunctor () call site: 00984 _ZN2BT3AnyC2IbEERKT_PNSt9enable_ifIXoosr3std11is_integralIS2_EE5valuesr3std7is_enumIS2_EE5valueEvE4typeE

Runtime coverage analysis

Covered functions
366
Functions that are reachable but not covered
1173
Reachable functions
1684
Percentage of reachable functions covered
30.34%
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/behaviortreecpp/fuzzing/script_fuzzer.cpp 1
/src/behaviortreecpp/include/behaviortree_cpp/scripting/script_parser.hpp 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h 21
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h 51
/src/behaviortreecpp/include/behaviortree_cpp/blackboard.h 9
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/atomicity.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h 3
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/shared_mutex 13
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unordered_map.h 8
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable.h 21
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable_policy.h 48
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 39
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 35
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/char_traits.h 3
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.tcc 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/type_traits.h 2
/src/behaviortreecpp/src/basic_types.cpp 4
/src/behaviortreecpp/src/blackboard.cpp 8
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 21
/src/behaviortreecpp/include/behaviortree_cpp/utils/safe_any.hpp 69
/src/behaviortreecpp/include/behaviortree_cpp/contrib/any.hpp 50
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/typeindex 1
/src/behaviortreecpp/include/behaviortree_cpp/basic_types.h 18
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h 34
/src/behaviortreecpp/include/behaviortree_cpp/utils/demangle_util.h 7
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/string_view 3
/src/behaviortreecpp/include/behaviortree_cpp/utils/strcat.hpp 8
/src/behaviortreecpp/include/behaviortree_cpp/exceptions.h 12
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/exception.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/alloc_traits.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/aligned_buffer.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h 17
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/mutex 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits 24
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/typeinfo 1
/src/behaviortreecpp/include/behaviortree_cpp/contrib/expected.hpp 134
/src/behaviortreecpp/include/behaviortree_cpp/utils/simple_string.hpp 11
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/string_conversions.h 9
/src/behaviortreecpp/include/behaviortree_cpp/utils/convert_impl.hpp 14
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tuple 7
/src/behaviortreecpp/src/script_parser.cpp 24
/src/behaviortreecpp/src/script_tokenizer.cpp 11
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h 48
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc 6
/src/behaviortreecpp/include/behaviortree_cpp/utils/locked_reference.hpp 5

Fuzzer: bb_fuzzer

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 2072 47.9%
gold [1:9] 160 3.70%
yellow [10:29] 87 2.01%
greenyellow [30:49] 13 0.30%
lawngreen 50+ 1986 45.9%
All colors 4318 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
86 403 BT::Blackboard::createEntryImpl(std::__cxx11::basic_string , std::allocator > const&, BT::TypeInfo const&) call site: 00403 __cxa_begin_catch
78 3177 nlohmann::json_abi_v3_11_3::detail::invalid_iterator::invalid_iterator(int, char const*) call site: 03177 _ZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES3_IhSaIhEEvE5eraseINS0_6detail9iter_implISD_EETnNSt9enable_ifIXoosr3std7is_sameIT_SH_EE5valuesr3std7is_sameISJ_NSG_IKSD_EEEE5valueEiE4typeELi0EEESJ_SJ_
74 2940 bool nlohmann::json_abi_v3_11_3::detail::parser , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>, nlohmann::json_abi_v3_11_3::detail::iterator_input_adapter<__gnu_cxx::__normal_iterator , std::allocator > > > >::sax_parse_internal , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> > >(nlohmann::json_abi_v3_11_3::detail::json_sax_dom_callback_parser , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> >*) call site: 02940 _ZN8nlohmann16json_abi_v3_11_36detail12out_of_range6createIPNS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES6_IhSaIhEEvEETnNSt9enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKSC_SJ_
56 1607 std::vector , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>, std::allocator , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> > >* nlohmann::json_abi_v3_11_3::basic_json , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>::create , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>, std::allocator , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> > >>() call site: 01607 _ZNSt5tupleIJPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEZN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorS5_blmdSaNS8_14adl_serializerESB_IhSaIhEEvE6createIS5_JRA1_KcEEEPT_DpOT0_EUlS6_E_EEC2IRS6_RKSP_TnNSt9enable_ifIXaaaaclsr4_TMCE23_MoveConstructibleTupleISK_T0_EEclsr4_TMCE31_ImplicitlyMoveConvertibleTupleISK_SW_EEntsr7is_sameINSt9remove_cvINSt16remove_referenceISK_E4typeEE4typeESt15allocator_arg_tEE5valueEbE4typeELb1EEEOSK_OSW_
54 162 BlackboardFuzzer::generateKey[abi:cxx11]() call site: 00162 __clang_call_terminate
54 1412 BT::Blackboard::addSubtreeRemapping(std::basic_string_view >, std::basic_string_view >) call site: 01412
50 2888 nlohmann::json_abi_v3_11_3::basic_json , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> nlohmann::json_abi_v3_11_3::basic_json , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>::parse , std::allocator >&>(std::__cxx11::basic_string , std::allocator >&, std::function , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>&)>, bool, bool) call site: 02888
46 3130 nlohmann::json_abi_v3_11_3::basic_json , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>::basic_json(nlohmann::json_abi_v3_11_3::basic_json , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> const&) call site: 03130 _ZNK8nlohmann16json_abi_v3_11_36detail9iter_implINS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES5_IhSaIhEEvEEEneISG_TnNSt9enable_ifIXoosr3std7is_sameIT_SG_EE5valuesr3std7is_sameISJ_NS2_IKSF_EEEE5valueEDnE4typeELDn0EEEbRKSJ_
41 2398 std::vector > linb::any_cast > >(linb::any const&) call site: 02398 __clang_call_terminate
36 3091 nlohmann::json_abi_v3_11_3::basic_json , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>::basic_json(nlohmann::json_abi_v3_11_3::basic_json , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> const&) call site: 03091 _ZNSt5tupleIJPN8nlohmann16json_abi_v3_11_327byte_container_with_subtypeISt6vectorIhSaIhEEEEZNS1_10basic_jsonISt3mapS3_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS1_14adl_serializerES5_vE6createIS6_JRKS6_EEEPT_DpOT0_EUlS7_E_EEC2IRS7_RKSQ_TnNSt9enable_ifIXaaaaclsr4_TMCE23_MoveConstructibleTupleISL_T0_EEclsr4_TMCE31_ImplicitlyMoveConvertibleTupleISL_SX_EEntsr7is_sameINSt9remove_cvINSt16remove_referenceISL_E4typeEE4typeESt15allocator_arg_tEE5valueEbE4typeELb1EEEOSL_OSX_
34 71 BlackboardFuzzer::BlackboardFuzzer(FuzzedDataProvider&) call site: 00071
29 2769 nlohmann::json_abi_v3_11_3::detail::lexer , std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>, nlohmann::json_abi_v3_11_3::detail::iterator_input_adapter<__gnu_cxx::__normal_iterator , std::allocator > > > >::get() call site: 02769

Runtime coverage analysis

Covered functions
933
Functions that are reachable but not covered
2479
Reachable functions
4143
Percentage of reachable functions covered
40.16%
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/behaviortreecpp/fuzzing/bb_fuzzer.cpp 9
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h 199
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 32
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 137
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h 14
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h 33
/src/behaviortreecpp/include/behaviortree_cpp/blackboard.h 15
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/atomicity.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h 3
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/shared_mutex 13
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unordered_map.h 15
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable.h 42
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable_policy.h 78
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc 36
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 85
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h 73
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 50
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h 7
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/char_traits.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.tcc 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/type_traits.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/alloc_traits.h 8
/src/behaviortreecpp/src/basic_types.cpp 3
/src/behaviortreecpp/src/blackboard.cpp 14
/src/behaviortreecpp/include/behaviortree_cpp/utils/safe_any.hpp 117
/src/behaviortreecpp/include/behaviortree_cpp/contrib/any.hpp 84
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/typeindex 1
/src/behaviortreecpp/include/behaviortree_cpp/basic_types.h 31
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h 56
/src/behaviortreecpp/include/behaviortree_cpp/utils/demangle_util.h 7
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/string_view 1
/src/behaviortreecpp/include/behaviortree_cpp/utils/strcat.hpp 6
/src/behaviortreecpp/include/behaviortree_cpp/exceptions.h 11
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/exception.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h 9
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/aligned_buffer.h 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/mutex 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits 24
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/typeinfo 1
/src/behaviortreecpp/include/behaviortree_cpp/contrib/expected.hpp 224
/src/behaviortreecpp/include/behaviortree_cpp/utils/simple_string.hpp 11
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/string_conversions.h 9
/src/behaviortreecpp/include/behaviortree_cpp/utils/convert_impl.hpp 21
/src/behaviortreecpp/include/behaviortree_cpp/utils/locked_reference.hpp 5
/src/behaviortreecpp/include/behaviortree_cpp/contrib/json.hpp 444
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_ptr.h 84
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tuple 52
/src/behaviortreecpp/src/json_export.cpp 3
/src/behaviortreecpp/include/behaviortree_cpp/json_export.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h 3
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_bvector.h 40
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/array 13

Fuzzer: bt_fuzzer

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 948 45.1%
gold [1:9] 46 2.18%
yellow [10:29] 1 0.04%
greenyellow [30:49] 4 0.19%
lawngreen 50+ 1102 52.4%
All colors 2101 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
87 390 BT::BehaviorTreeFactory::registerBuilder(BT::TreeNodeManifest const&, std::function > (std::__cxx11::basic_string , std::allocator > const&, BT::NodeConfig const&)> const&) call site: 00390 __clang_call_terminate
72 282 BT::BehaviorTreeFactory::registerBuilder(BT::TreeNodeManifest const&, std::function > (std::__cxx11::basic_string , std::allocator > const&, BT::NodeConfig const&)> const&) call site: 00282 __cxa_begin_catch
62 105 void BT::BehaviorTreeFactory::registerNodeType (std::__cxx11::basic_string , std::allocator > const&, std::unordered_map , std::allocator >, BT::PortInfo, std::hash , std::allocator > >, std::equal_to , std::allocator > >, std::allocator , std::allocator > const, BT::PortInfo> > > const&) call site: 00105 __clang_call_terminate
49 173 linb::any::clear() call site: 00173 __clang_call_terminate
38 722 BT::ParallelNode::providedPorts[abi:cxx11]() call site: 00722 _ZNSt4pairINSt8__detail14_Node_iteratorIS_IKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEEbEC2ISC_bTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISG_SH_EEEbE4typeELb1EEEOSG_OSH_
36 1880 BT::TreeNode::resetStatus() call site: 01880 _ZN9__gnu_cxx17__normal_iteratorIPKSt8weak_ptrISt8functionIFvNSt6chrono10time_pointINS3_3_V212system_clockENS3_8durationIlSt5ratioILl1ELl1000000000EEEEEERKN2BT8TreeNodeENSC_10NodeStatusESG_EEESt6vectorISJ_SaISJ_EEEC2IPSJ_EERKNS0_IT_NS_11__enable_ifIXsr3std10__are_sameISS_SR_EE7__valueESO_E6__typeEEE
33 2 BT::BehaviorTreeFactory::BehaviorTreeFactory() call site: 00002
33 356 BT::BehaviorTreeFactory::registerBuilder(BT::TreeNodeManifest const&, std::function > (std::__cxx11::basic_string , std::allocator > const&, BT::NodeConfig const&)> const&) call site: 00356 __clang_call_terminate
28 644 std::pair , std::allocator >, BT::PortInfo> BT::CreatePort (BT::PortDirection, std::basic_string_view >, std::basic_string_view >) call site: 00644 __clang_call_terminate
23 72 BT::BehaviorTreeFactory::BehaviorTreeFactory() call site: 00072 strlen
23 1781 BT::BehaviorTreeFactory::createTreeFromText(std::__cxx11::basic_string , std::allocator > const&, std::shared_ptr ) call site: 01781 _ZZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N2BT16TreeNodeManifestEESaISA_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSC_18_Mod_range_hashingENSC_20_Default_ranged_hashENSC_20_Prime_rehash_policyENSC_17_Hashtable_traitsILb1ELb0ELb1EEEE18_M_assign_elementsIRKSN_ZNSN_aSESQ_EUlRKNSC_17_ReuseOrAllocNodeISaINSC_10_Hash_nodeISA_Lb1EEEEEEPKST_E_EEvOT_RKT0_ENKUlPST_E_clB5cxx11ES16_
23 2050 LLVMFuzzerTestOneInput call site: 02050

Runtime coverage analysis

Covered functions
915
Functions that are reachable but not covered
1490
Reachable functions
2384
Percentage of reachable functions covered
37.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/behaviortreecpp/fuzzing/bt_fuzzer.cpp 2
/src/behaviortreecpp/src/bt_factory.cpp 15
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unordered_map.h 23
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable.h 61
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable_policy.h 97
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 19
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 52
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h 12
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h 41
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_ptr.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tuple 5
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/atomicity.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h 3
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 41
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/char_traits.h 3
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.tcc 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/type_traits.h 2
/src/behaviortreecpp/include/behaviortree_cpp/bt_factory.h 162
/src/behaviortreecpp/include/behaviortree_cpp/basic_types.h 87
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/alloc_traits.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 26
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/aligned_buffer.h 8
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h 11
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h 212
/src/behaviortreecpp/include/behaviortree_cpp/utils/safe_any.hpp 8
/src/behaviortreecpp/include/behaviortree_cpp/contrib/any.hpp 12
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h 32
/src/behaviortreecpp/include/behaviortree_cpp/behavior_tree.h 39
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h 36
/src/behaviortreecpp/include/behaviortree_cpp/exceptions.h 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/exception.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/string_view 2
/src/behaviortreecpp/include/behaviortree_cpp/utils/strcat.hpp 4
/src/behaviortreecpp/include/behaviortree_cpp/tree_node.h 3
/src/behaviortreecpp/include/behaviortree_cpp/controls/parallel_node.h 1
/src/behaviortreecpp/src/basic_types.cpp 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/typeindex 1
/src/behaviortreecpp/include/behaviortree_cpp/utils/demangle_util.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/string_conversions.h 1
/src/behaviortreecpp/include/behaviortree_cpp/controls/parallel_all_node.h 1
/src/behaviortreecpp/include/behaviortree_cpp/controls/try_catch_node.h 1
/src/behaviortreecpp/include/behaviortree_cpp/decorators/retry_node.h 1
/src/behaviortreecpp/include/behaviortree_cpp/decorators/repeat_node.h 1
/src/behaviortreecpp/include/behaviortree_cpp/decorators/timeout_node.h 1
/src/behaviortreecpp/include/behaviortree_cpp/decorators/delay_node.h 1
/src/behaviortreecpp/include/behaviortree_cpp/decorators/run_once_node.h 1
/src/behaviortreecpp/include/behaviortree_cpp/actions/script_node.h 1
/src/behaviortreecpp/include/behaviortree_cpp/actions/script_condition.h 1
/src/behaviortreecpp/include/behaviortree_cpp/actions/set_blackboard_node.h 1
/src/behaviortreecpp/include/behaviortree_cpp/actions/sleep_node.h 1
/src/behaviortreecpp/include/behaviortree_cpp/actions/unset_blackboard_node.h 1
/src/behaviortreecpp/src/decorators/subtree_node.cpp 1
/src/behaviortreecpp/include/behaviortree_cpp/decorators/script_precondition.h 1
/src/behaviortreecpp/include/behaviortree_cpp/controls/switch_node.h 10
/src/behaviortreecpp/include/behaviortree_cpp/decorators/loop_node.h 4
/src/behaviortreecpp/include/behaviortree_cpp/actions/updated_action.h 1
/src/behaviortreecpp/include/behaviortree_cpp/decorators/updated_decorator.h 1
/src/behaviortreecpp/include/behaviortree_cpp/blackboard.h 3
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/shared_mutex 2
/src/behaviortreecpp/3rdparty/tinyxml2/tinyxml2.cpp 33
/src/behaviortreecpp/3rdparty/tinyxml2/tinyxml2.h 46
/src/behaviortreecpp/src/tree_node.cpp 3
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/array 2
/src/behaviortreecpp/include/behaviortree_cpp/scripting/script_parser.hpp 1
/src/behaviortreecpp/src/behavior_tree.cpp 1
/src/behaviortreecpp/src/control_node.cpp 1
/src/behaviortreecpp/src/decorator_node.cpp 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h 2
/src/behaviortreecpp/include/behaviortree_cpp/utils/signal.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc 1
/src/behaviortreecpp/src/xml_parsing.cpp 3

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
std::_Function_handler const&,std::shared_ptr ,std::__cxx11::basic_string ,std::allocator >,tinyxml2::XMLElementconst*,int),BT::XMLParser::PImpl::recursivelyCreateSubtree(std::__cxx11::basic_string ,std::allocator >const&,std::__cxx11::basic_string ,std::allocator >const&,std::__cxx11::basic_string ,std::allocator >const&,BT::Tree&,std::shared_ptr ,std::shared_ptr const&,std::unordered_set ,std::allocator >,std::hash ,std::allocator >>,std::equal_to ,std::allocator >>,std::allocator ,std::allocator >>>&)::$_0>::_M_invoke(std::_Any_dataconst&,std::shared_ptr const&,std::shared_ptr &&,std::__cxx11::basic_string ,std::allocator >&&,tinyxml2::XMLElementconst*&&,int&&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h 6 ['N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A'] 20 0 35 5 5 2309 0 4475 1675

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

Functions statically reachable by fuzzers
37.0%
3829 / 10438
Cyclomatic complexity statically reachable by fuzzers
40.0%
15168 / 37848

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/behaviortreecpp/fuzzing/script_fuzzer.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 BT::Blackboard::set(std::__cxx11::basic_string, std::allocator > const&, int const&)', 'BT::Blackboard::createEntryImpl(std::__cxx11::basic_string, std::allocator > const&, BT::TypeInfo const&)', 'LLVMFuzzerTestOneInput', 'BT::Scripting::ScriptParser::parseChainedComparison(std::shared_ptr)', 'BT::Scripting::tokenize(std::__cxx11::basic_string, std::allocator > const&)', 'BT::Scripting::ScriptParser::parseChainedComparison(std::shared_ptr)', 'void SafeAny::details::checkTruncation(double const&)', 'BT::Blackboard::getEntry(std::__cxx11::basic_string, std::allocator > const&) const', 'nonstd::expected_lite::detail::storage_t, std::allocator >, true, true>::storage_t(bool)']

/src/behaviortreecpp/fuzzing/bb_fuzzer.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=['BT::Blackboard::createEntryImpl(std::__cxx11::basic_string, std::allocator > const&, BT::TypeInfo const&)', 'nlohmann::json_abi_v3_11_3::detail::invalid_iterator::invalid_iterator(int, char const*)', 'bool nlohmann::json_abi_v3_11_3::detail::parser, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>, nlohmann::json_abi_v3_11_3::detail::iterator_input_adapter<__gnu_cxx::__normal_iterator, std::allocator > > > >::sax_parse_internal, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> > >(nlohmann::json_abi_v3_11_3::detail::json_sax_dom_callback_parser, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> >*)', 'std::vector, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>, std::allocator, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> > >* nlohmann::json_abi_v3_11_3::basic_json, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>::create, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>, std::allocator, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> > >>()', 'BlackboardFuzzer::generateKey[abi:cxx11]()', 'BT::Blackboard::addSubtreeRemapping(std::basic_string_view >, std::basic_string_view >)', 'nlohmann::json_abi_v3_11_3::basic_json, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> nlohmann::json_abi_v3_11_3::basic_json, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>::parse, std::allocator >&>(std::__cxx11::basic_string, std::allocator >&, std::function, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>&)>, bool, bool)', 'nlohmann::json_abi_v3_11_3::basic_json, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>::basic_json(nlohmann::json_abi_v3_11_3::basic_json, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> const&)', 'std::vector > linb::any_cast > >(linb::any const&)', 'nlohmann::json_abi_v3_11_3::basic_json, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void>::basic_json(nlohmann::json_abi_v3_11_3::basic_json, std::allocator >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::vector >, void> const&)']

/src/behaviortreecpp/fuzzing/bt_fuzzer.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=['BT::BehaviorTreeFactory::registerBuilder(BT::TreeNodeManifest const&, std::function > (std::__cxx11::basic_string, std::allocator > const&, BT::NodeConfig const&)> const&)', 'BT::BehaviorTreeFactory::registerBuilder(BT::TreeNodeManifest const&, std::function > (std::__cxx11::basic_string, std::allocator > const&, BT::NodeConfig const&)> const&)', 'void BT::BehaviorTreeFactory::registerNodeType(std::__cxx11::basic_string, std::allocator > const&, std::unordered_map, std::allocator >, BT::PortInfo, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, BT::PortInfo> > > const&)', 'linb::any::clear()', 'BT::ParallelNode::providedPorts[abi:cxx11]()', 'BT::TreeNode::resetStatus()', 'BT::BehaviorTreeFactory::BehaviorTreeFactory()', 'BT::BehaviorTreeFactory::registerBuilder(BT::TreeNodeManifest const&, std::function > (std::__cxx11::basic_string, std::allocator > const&, BT::NodeConfig const&)> const&)', 'std::pair, std::allocator >, BT::PortInfo> BT::CreatePort(BT::PortDirection, std::basic_string_view >, std::basic_string_view >)', 'BT::BehaviorTreeFactory::BehaviorTreeFactory()']

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
nonstd::expected_lite::expected ,std::allocator >>BT::Any::tryCast ()const 33 18 54.54% ['bb_fuzzer', 'script_fuzzer']
nlohmann::json_abi_v3_11_3::detail::serializer ,std::allocator >,bool,long,unsignedlong,double,std::allocator,nlohmann::json_abi_v3_11_3::adl_serializer,std::vector >,void>>::dump(nlohmann::json_abi_v3_11_3::basic_json ,std::allocator >,bool,long,unsignedlong,double,std::allocator,nlohmann::json_abi_v3_11_3::adl_serializer,std::vector >,void>const&,bool,bool,unsignedint,unsignedint) 215 95 44.18% ['bb_fuzzer']
nlohmann::json_abi_v3_11_3::basic_json ,std::allocator >,bool,long,unsignedlong,double,std::allocator,nlohmann::json_abi_v3_11_3::adl_serializer,std::vector >,void>::json_value::json_value(nlohmann::json_abi_v3_11_3::detail::value_t) 60 17 28.33% ['bb_fuzzer']
nlohmann::json_abi_v3_11_3::detail::parser ,std::allocator >,bool,long,unsignedlong,double,std::allocator,nlohmann::json_abi_v3_11_3::adl_serializer,std::vector >,void>,nlohmann::json_abi_v3_11_3::detail::iterator_input_adapter<__gnu_cxx::__normal_iterator ,std::allocator >>>>::parse(bool,nlohmann::json_abi_v3_11_3::basic_json ,std::allocator >,bool,long,unsignedlong,double,std::allocator,nlohmann::json_abi_v3_11_3::adl_serializer,std::vector >,void>&) 40 16 40.0% ['bb_fuzzer']
nlohmann::json_abi_v3_11_3::detail::parser ,std::allocator >,bool,long,unsignedlong,double,std::allocator,nlohmann::json_abi_v3_11_3::adl_serializer,std::vector >,void>,nlohmann::json_abi_v3_11_3::detail::iterator_input_adapter >::parse(bool,nlohmann::json_abi_v3_11_3::basic_json ,std::allocator >,bool,long,unsignedlong,double,std::allocator,nlohmann::json_abi_v3_11_3::adl_serializer,std::vector >,void>&) 40 16 40.0% ['bb_fuzzer']
boolBT::isCastingSafe (std::type_indexconst&,intconst&) 47 23 48.93% ['bb_fuzzer', 'script_fuzzer']
nonstd::expected_lite::expected ,std::allocator >>BT::Any::tryCast ()const 33 18 54.54% ['bb_fuzzer', 'script_fuzzer']
boolBT::isCastingSafe (std::type_indexconst&,doubleconst&) 47 23 48.93% ['bb_fuzzer', 'script_fuzzer']
boolBT::isCastingSafe (std::type_indexconst&,unsignedlongconst&) 47 23 48.93% ['bb_fuzzer']
boolBT::isCastingSafe (std::type_indexconst&,floatconst&) 47 23 48.93% ['bb_fuzzer']
nonstd::expected_lite::expected ,std::allocator >>BT::TreeNode::getInputStamped ,std::allocator >>(std::__cxx11::basic_string ,std::allocator >const&,std::__cxx11::basic_string ,std::allocator >&)const 110 17 15.45% ['bt_fuzzer']
BT::BehaviorTreeFactory::instantiateTreeNode(std::__cxx11::basic_string ,std::allocator >const&,std::__cxx11::basic_string ,std::allocator >const&,BT::NodeConfigconst&)const 81 40 49.38% ['bt_fuzzer']

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/behaviortreecpp/include/behaviortree_cpp/actions/always_failure_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/list.tcc [] []
/src/behaviortreecpp/fuzzing/bb_fuzzer.cpp ['bb_fuzzer'] ['bb_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream ['script_fuzzer', 'bb_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/thread [] []
/src/behaviortreecpp/src/control_node.cpp ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/controls/parallel_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/xml_parsing.cpp ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/3rdparty/tinyxml2/tinyxml2.cpp ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/controls/sequence_with_memory_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/fs_path.h [] []
/src/behaviortreecpp/src/blackboard.cpp ['script_fuzzer', 'bb_fuzzer'] ['script_fuzzer', 'bb_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocated_ptr.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/inverter_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/simple_string.hpp ['script_fuzzer', 'bb_fuzzer'] ['script_fuzzer', 'bb_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/behavior_tree.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/utils/shared_library.h [] []
/src/behaviortreecpp/src/controls/reactive_fallback.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_uninitialized.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_function.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/string_view ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/variant [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.tcc ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/typeinfo ['script_fuzzer', 'bb_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_ptr.h ['bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/actions/updated_action.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/updated_action.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/decorators/subtree_node.cpp ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/json_export.cpp ['bb_fuzzer'] ['bb_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/utils/demangle_util.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer']
/src/behaviortreecpp/src/basic_types.cpp ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/typeindex ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/exceptions.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h ['bb_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/updated_decorator.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/decorator_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/sstream.tcc [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/retry_node.h ['bt_fuzzer'] ['bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/type_traits.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/scripting/operators.hpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/wakeup_signal.hpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/always_success_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unordered_set.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/functional_hash.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/keep_running_until_failure_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/mutex ['script_fuzzer', 'bb_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/condition_node.cpp [] []
/src/behaviortreecpp/fuzzing/bt_fuzzer.cpp ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/utils/strcat.hpp ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer']
/src/behaviortreecpp/src/script_parser.cpp ['script_fuzzer'] ['script_fuzzer']
/src/behaviortreecpp/src/controls/sequence_node.cpp [] []
/src/behaviortreecpp/src/controls/try_catch_node.cpp [] []
/src/behaviortreecpp/src/controls/fallback_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/contrib/any.hpp ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer']
/src/behaviortreecpp/src/decorators/timeout_node.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/utility [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/atomicity.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/test_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/repeat_node.h ['bt_fuzzer'] ['bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/alloc_traits.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/enable_special_members.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/exception.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/unset_blackboard_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/shared_library.cpp [] []
/src/behaviortreecpp/src/controls/reactive_sequence.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/shared_library_UNIX.cpp [] []
/src/behaviortreecpp/src/bt_factory.cpp ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/fuzzing/script_fuzzer.cpp ['script_fuzzer'] ['script_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_ios.h [] []
/src/behaviortreecpp/src/actions/test_node.cpp [] []
/src/behaviortreecpp/3rdparty/tinyxml2/tinyxml2.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/controls/fallback_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/condition_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/contrib/json.hpp ['bb_fuzzer'] ['bb_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/controls/switch_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/decorators/subtree_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/scripting/script_parser.hpp ['script_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/behavior_tree.cpp ['bt_fuzzer'] ['bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_bvector.h ['bb_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_deque.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/sstream [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/array ['bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/tree_node.cpp ['bt_fuzzer'] ['bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/charconv [] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/script_condition.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/controls/while_do_else_node.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_algobase.h [] []
/src/behaviortreecpp/src/controls/if_then_else_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/set_blackboard_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/actions/sleep_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/bt_parser.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/run_once_node.h ['bt_fuzzer'] ['bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/basic_types.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/aligned_buffer.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic [] []
/src/behaviortreecpp/include/behaviortree_cpp/tree_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/controls/parallel_all_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/locked_reference.hpp ['script_fuzzer', 'bb_fuzzer'] ['script_fuzzer', 'bb_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/json_export.h ['bb_fuzzer'] ['bb_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/script_tokenizer.cpp ['script_fuzzer'] ['script_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/controls/reactive_sequence.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_futex.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/control_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/action_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/controls/if_then_else_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unordered_map.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/delay_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/controls/reactive_fallback.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/bt_factory.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/controls/switch_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/script_precondition.h ['bt_fuzzer'] ['bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/char_traits.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/condition_variable [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_list.h [] []
/src/behaviortreecpp/src/decorators/inverter_node.cpp [] []
/src/behaviortreecpp/src/decorators/updated_decorator.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/controls/parallel_all_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/decorator_node.cpp ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/actions/script_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/controls/while_do_else_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/polymorphic_cast_registry.hpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/streambuf [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/decorators/delay_node.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/system_error [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable_policy.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/deque.tcc [] []
/src/behaviortreecpp/include/behaviortree_cpp/leaf_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/signal.h ['bt_fuzzer'] ['bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/exception_ptr.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/future [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/3rdparty/minicoro/minicoro.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/predefined_ops.h [] []
/src/behaviortreecpp/src/controls/parallel_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/safe_any.hpp ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer']
/src/behaviortreecpp/src/controls/sequence_with_memory_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/force_success_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/contrib/expected.hpp ['script_fuzzer', 'bb_fuzzer'] ['script_fuzzer', 'bb_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/string_conversions.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/chrono [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/force_failure_node.h [] []
/src/behaviortreecpp/src/action_node.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tuple ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/decorators/retry_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/controls/sequence_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits ['script_fuzzer', 'bb_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/timeout_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/controls/try_catch_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/actions/sleep_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/timer_queue.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/blackboard.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_base.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/wildcards.hpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/convert_impl.hpp ['script_fuzzer', 'bb_fuzzer'] ['script_fuzzer', 'bb_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_queue.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/shared_mutex ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/decorators/repeat_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/loop_node.h ['bt_fuzzer'] ['bt_fuzzer']

Directories in report

Directory
/src/behaviortreecpp/src/
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/
/src/behaviortreecpp/include/behaviortree_cpp/actions/
/src/behaviortreecpp/src/controls/
/src/behaviortreecpp/include/behaviortree_cpp/utils/
/src/behaviortreecpp/3rdparty/tinyxml2/
/src/behaviortreecpp/include/behaviortree_cpp/contrib/
/src/behaviortreecpp/include/behaviortree_cpp/
/src/behaviortreecpp/fuzzing/
/src/behaviortreecpp/src/actions/
/src/behaviortreecpp/src/decorators/
/src/behaviortreecpp/3rdparty/minicoro/
/src/behaviortreecpp/include/behaviortree_cpp/scripting/
/src/behaviortreecpp/include/behaviortree_cpp/controls/
/src/behaviortreecpp/include/behaviortree_cpp/decorators/
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/