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 1110 59.2%
gold [1:9] 0 0.0%
yellow [10:29] 33 1.76%
greenyellow [30:49] 2 0.10%
lawngreen 50+ 727 38.8%
All colors 1872 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
117 606 void BT::Blackboard::set (std::__cxx11::basic_string , std::allocator > const&, int const&) call site: 00606 _ZN2BT3AnyC2IiEERKT_PNSt9enable_ifIXoosr3std11is_integralIS2_EE5valuesr3std7is_enumIS2_EE5valueEvE4typeE
101 232 BT::(anonymous namespace)::GetRetiredEntries() call site: 00232 _ZN9__gnu_cxx17__normal_iteratorIPKPN2BT10Blackboard5EntryESt6vectorIS4_SaIS4_EEEC2IPS4_EERKNS0_IT_NS_11__enable_ifIXsr3std10__are_sameISD_SC_EE7__valueES9_E6__typeEEE
86 492 BT::Blackboard::createEntryImpl(std::__cxx11::basic_string , std::allocator > const&, BT::TypeInfo const&) call site: 00492 __cxa_begin_catch
55 1212 LLVMFuzzerTestOneInput call site: 01212 _ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiEC2IJOS5_EJLm0EEJETpTnmJEEERSt5tupleIJDpT_EERSA_IJDpT1_EESt12_Index_tupleIJXspT0_EEESJ_IJXspT2_EEE
31 1437 BT::Scripting::ScriptParser::parseChainedComparison(std::shared_ptr ) call site: 01437
30 1290 BT::Scripting::tokenize(std::__cxx11::basic_string , std::allocator > const&) call site: 01290
30 1479 BT::Scripting::ScriptParser::parseChainedComparison(std::shared_ptr ) call site: 01479
26 825 void SafeAny::details::checkTruncation (double const&) call site: 00825 _ZN6nonstd13expected_lite8expectedIlNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS7_TnNSt9enable_ifIXaasr3std16is_constructibleIS7_OT_EE5valuesr3std14is_convertibleISC_S7_EE5valueEiE4typeELi0EEEONS0_15unexpected_typeISB_EE
25 1113 std::function >)> BT::GetAnyFromStringFunctor () call site: 01113
23 79 LLVMFuzzerTestOneInput call site: 00079 strlen
22 445 BT::(anonymous namespace)::MakeEntry(BT::TypeInfo const&) call site: 00445 __clang_call_terminate
22 931 nonstd::expected_lite::detail::storage_t , std::allocator >, true, true>::storage_t(bool) call site: 00931 _ZNK2BT3Any7convertImEEN6nonstd13expected_lite8expectedIT_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPNSt9enable_ifIXsr3std13is_arithmeticIS5_EE5valueEvE4typeE

Runtime coverage analysis

Covered functions
368
Functions that are reachable but not covered
1312
Reachable functions
1845
Percentage of reachable functions covered
28.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/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 22
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h 59
/src/behaviortreecpp/include/behaviortree_cpp/blackboard.h 11
/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 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/shared_mutex 12
/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 47
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 13
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 49
/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 5
/src/behaviortreecpp/src/blackboard.cpp 14
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 26
/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 19
/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/std_mutex.h 5
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h 69
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_base.h 2
/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/stl_iterator.h 27
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc 9
/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 10
/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/ext/alloc_traits.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/chrono 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocated_ptr.h 3
/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/aligned_buffer.h 4
/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 12
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/string_conversions.h 5
/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
/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 2168 48.7%
gold [1:9] 65 1.46%
yellow [10:29] 100 2.24%
greenyellow [30:49] 89 2.00%
lawngreen 50+ 2024 45.5%
All colors 4446 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
99 342 BT::(anonymous namespace)::GetRetiredEntries() call site: 00342 _ZN9__gnu_cxx17__normal_iteratorIPKPN2BT10Blackboard5EntryESt6vectorIS4_SaIS4_EEEC2IPS4_EERKNS0_IT_NS_11__enable_ifIXsr3std10__are_sameISD_SC_EE7__valueES9_E6__typeEEE
86 584 BT::Blackboard::createEntryImpl(std::__cxx11::basic_string , std::allocator > const&, BT::TypeInfo const&) call site: 00584 __cxa_begin_catch
78 3285 nlohmann::json_abi_v3_11_3::detail::invalid_iterator::invalid_iterator(int, char const*) call site: 03285 _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 3048 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: 03048 _ZN8nlohmann16json_abi_v3_11_36detail12out_of_range6createIPNS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES6_IhSaIhEEvEETnNSt9enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKSC_SJ_
56 1769 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: 01769 _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 1575 BT::Blackboard::addSubtreeRemapping(std::basic_string_view >, std::basic_string_view >) call site: 01575
50 2996 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: 02996
46 3238 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: 03238 _ZNK8nlohmann16json_abi_v3_11_36detail9iter_implINS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES5_IhSaIhEEvEEEneISG_TnNSt9enable_ifIXoosr3std7is_sameIT_SG_EE5valuesr3std7is_sameISJ_NS2_IKSF_EEEE5valueEDnE4typeELDn0EEEbRKSJ_
41 2509 std::vector > linb::any_cast > >(linb::any const&) call site: 02509 __clang_call_terminate
36 3199 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: 03199 _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

Runtime coverage analysis

Covered functions
955
Functions that are reachable but not covered
2549
Reachable functions
4250
Percentage of reachable functions covered
40.02%
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 205
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 34
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 141
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h 15
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h 41
/src/behaviortreecpp/include/behaviortree_cpp/blackboard.h 17
/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 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/shared_mutex 12
/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 87
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h 79
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 49
/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 4
/src/behaviortreecpp/src/blackboard.cpp 20
/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 34
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h 60
/src/behaviortreecpp/include/behaviortree_cpp/utils/demangle_util.h 7
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h 5
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_base.h 2
/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/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 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/chrono 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocated_ptr.h 3
/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/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 216
/src/behaviortreecpp/include/behaviortree_cpp/utils/simple_string.hpp 12
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/string_conversions.h 5
/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 451
/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 960 45.1%
gold [1:9] 31 1.45%
yellow [10:29] 19 0.89%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1116 52.4%
All colors 2126 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 738 BT::ParallelNode::providedPorts[abi:cxx11]() call site: 00738 _ZNSt4pairINSt8__detail14_Node_iteratorIS_IKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEEbEC2ISC_bTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISG_SH_EEEbE4typeELb1EEEOSG_OSH_
36 1898 BT::TreeNode::resetStatus() call site: 01898 _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 669 std::pair , std::allocator >, BT::PortInfo> BT::CreatePort (BT::PortDirection, std::basic_string_view >, std::basic_string_view >) call site: 00669 __clang_call_terminate
23 72 BT::BehaviorTreeFactory::BehaviorTreeFactory() call site: 00072 strlen
23 1800 BT::BehaviorTreeFactory::createTreeFromText(std::__cxx11::basic_string , std::allocator > const&, std::shared_ptr ) call site: 01800 _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 2074 LLVMFuzzerTestOneInput call site: 02074

Runtime coverage analysis

Covered functions
930
Functions that are reachable but not covered
1496
Reachable functions
2398
Percentage of reachable functions covered
37.61%
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 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/string_view 2
/src/behaviortreecpp/include/behaviortree_cpp/utils/strcat.hpp 5
/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 7
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/string_conversions.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/typeindex 1
/src/behaviortreecpp/include/behaviortree_cpp/utils/demangle_util.h 6
/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/include/behaviortree_cpp/utils/wakeup_signal.hpp 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_base.h 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 2618 0 5256 1869

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

Functions statically reachable by fuzzers
37.0%
3899 / 10608
Cyclomatic complexity statically reachable by fuzzers
40.0%
15628 / 38727

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::(anonymous namespace)::GetRetiredEntries()', '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&)', 'std::function >)> BT::GetAnyFromStringFunctor()']

/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::(anonymous namespace)::GetRetiredEntries()', '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&)']

/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']
nonstd::expected_lite::expected ,std::allocator >>BT::Any::tryCast ()const 33 18 54.54% ['bb_fuzzer', 'script_fuzzer']
voidBT::Blackboard::set (std::__cxx11::basic_string ,std::allocator >const&,longconst&) 73 18 24.65% ['bt_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 94 41 43.61% ['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
[] []
/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/include/behaviortree_cpp/tree_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/script_parser.cpp ['script_fuzzer'] ['script_fuzzer']
/src/behaviortreecpp/src/condition_node.cpp [] []
/src/behaviortreecpp/src/tree_node.cpp ['bt_fuzzer'] ['bt_fuzzer']
/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/script_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/controls/parallel_all_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/3rdparty/minicoro/minicoro.h [] []
/src/behaviortreecpp/src/behavior_tree.cpp ['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/controls/while_do_else_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/typeinfo ['script_fuzzer', 'bb_fuzzer'] []
/src/behaviortreecpp/src/json_export.cpp ['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/include/behaviortree_cpp/utils/safe_any.hpp ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] ['script_fuzzer', 'bb_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'] []
/src/behaviortreecpp/include/behaviortree_cpp/behavior_tree.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/action_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/set_blackboard_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/scripting/operators.hpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_list.h [] []
/src/behaviortreecpp/src/controls/sequence_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/retry_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/utils/simple_string.hpp ['script_fuzzer', 'bb_fuzzer'] ['script_fuzzer', 'bb_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/decorator_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_uninitialized.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/control_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/type_traits.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/decorators/subtree_node.cpp ['bt_fuzzer'] ['bt_fuzzer']
/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/condition_variable [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_ptr.h ['bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/sleep_node.h ['bt_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/controls/reactive_sequence.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/leaf_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/controls/fallback_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/loop_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/contrib/json.hpp ['bb_fuzzer'] ['bb_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/action_node.h [] []
/src/behaviortreecpp/src/controls/parallel_all_node.cpp [] []
/src/behaviortreecpp/src/basic_types.cpp ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/decorators/subtree_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/controls/reactive_fallback.h [] []
/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/stl_pair.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/controls/if_then_else_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/shared_library.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/controls/sequence_with_memory_node.h [] []
/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/ext/aligned_buffer.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/decorators/timeout_node.cpp [] []
/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/thread [] []
/src/behaviortreecpp/src/controls/reactive_fallback.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable_policy.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/controls/fallback_node.cpp [] []
/src/behaviortreecpp/src/decorators/repeat_node.cpp [] []
/src/behaviortreecpp/fuzzing/script_fuzzer.cpp ['script_fuzzer'] ['script_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic ['script_fuzzer', 'bb_fuzzer', 'bt_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'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/string_view ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/force_failure_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/functional_hash.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/test_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/fs_path.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/script_condition.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/utils/demangle_util.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/unique_lock.h ['script_fuzzer', 'bb_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/bits/deque.tcc [] []
/src/behaviortreecpp/src/blackboard.cpp ['script_fuzzer', 'bb_fuzzer'] ['script_fuzzer', 'bb_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/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_futex.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/run_once_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/decorators/retry_node.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/charconv [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/convert_impl.hpp ['script_fuzzer', 'bb_fuzzer'] ['script_fuzzer', 'bb_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/json_export.h ['bb_fuzzer'] ['bb_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/decorators/keep_running_until_failure_node.h [] []
/src/behaviortreecpp/fuzzing/bb_fuzzer.cpp ['bb_fuzzer'] ['bb_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/controls/parallel_node.h ['bt_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/unordered_set.h [] []
/src/behaviortreecpp/src/actions/sleep_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/contrib/expected.hpp ['script_fuzzer', 'bb_fuzzer'] ['script_fuzzer', 'bb_fuzzer']
/src/behaviortreecpp/src/decorators/delay_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/updated_action.h ['bt_fuzzer'] ['bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/future [] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/always_failure_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocated_ptr.h ['script_fuzzer', 'bb_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/scripting/script_parser.hpp ['script_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/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/src/actions/updated_action.cpp [] []
/src/behaviortreecpp/src/decorator_node.cpp ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/controls/try_catch_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/3rdparty/tinyxml2/tinyxml2.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/shared_library.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/sstream [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/list.tcc [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_function.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/wakeup_signal.hpp ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/controls/try_catch_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/timer_queue.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/exception_ptr.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/alloc_traits.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/string_conversions.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/xml_parsing.cpp ['bt_fuzzer'] ['bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits ['script_fuzzer', 'bb_fuzzer'] []
/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/bits/sstream.tcc [] []
/src/behaviortreecpp/include/behaviortree_cpp/contrib/any.hpp ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] ['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/mutex ['script_fuzzer', 'bb_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/typeindex ['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/bits/stl_construct.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_ios.h [] []
/src/behaviortreecpp/src/decorators/inverter_node.cpp [] []
/src/behaviortreecpp/src/controls/parallel_node.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/streambuf [] []
/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/bits/ptr_traits.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/controls/if_then_else_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/always_success_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/controls/sequence_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/script_precondition.h ['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/actions/test_node.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/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/chrono ['script_fuzzer', 'bb_fuzzer'] []
/src/behaviortreecpp/src/controls/reactive_sequence.cpp [] []
/src/behaviortreecpp/src/decorators/updated_decorator.cpp [] []
/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/bits/vector.tcc ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/repeat_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/fuzzing/bt_fuzzer.cpp ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/controls/sequence_with_memory_node.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_base.h ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/bt_factory.cpp ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/condition_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/timeout_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/bt_factory.h ['bt_fuzzer'] ['bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/variant [] []
/src/behaviortreecpp/src/shared_library_UNIX.cpp [] []
/src/behaviortreecpp/3rdparty/tinyxml2/tinyxml2.cpp ['bt_fuzzer'] ['bt_fuzzer']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/utility [] []
/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/predefined_ops.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_bvector.h ['bb_fuzzer'] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/updated_decorator.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/utils/wildcards.hpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/utils/polymorphic_cast_registry.hpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/decorators/inverter_node.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/actions/unset_blackboard_node.h ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/include/behaviortree_cpp/decorators/force_success_node.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/array ['bb_fuzzer', 'bt_fuzzer'] []
/src/behaviortreecpp/src/control_node.cpp ['bt_fuzzer'] ['bt_fuzzer']
/src/behaviortreecpp/src/script_tokenizer.cpp ['script_fuzzer'] ['script_fuzzer']
/src/behaviortreecpp/src/controls/switch_node.cpp [] []
/src/behaviortreecpp/include/behaviortree_cpp/bt_parser.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tuple ['script_fuzzer', 'bb_fuzzer', 'bt_fuzzer'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_algobase.h [] []
/src/behaviortreecpp/include/behaviortree_cpp/controls/switch_node.h ['bt_fuzzer'] ['bt_fuzzer']

Directories in report

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