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

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
193 213 12 :

['spdlog::details::os::sleep_for_millis(unsigned int)', 'spdlog::details::os::fopen_s(_IO_FILE**, std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator > const&)', 'spdlog::details::os::create_dir(std::__1::basic_string , std::__1::allocator > const&)', 'spdlog::details::os::dir_name(std::__1::basic_string , std::__1::allocator > const&)', 'spdlog::details::os::filename_to_str(std::__1::basic_string , std::__1::allocator > const&)', 'spdlog::throw_spdlog_ex(std::__1::basic_string , std::__1::allocator > const&, int)', 'fclose', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:v180000] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', '_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B7v180000ILi0EEEPKc', '__errno_location', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:v180000] , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator >&&)']

193 213 spdlog::details::file_helper::open(std::__1::basic_string ,std::__1::allocator >const&,bool) call site: 00000 /src/spdlog/include/spdlog/details/file_helper-inl.h:52
166 166 6 :

['spdlog::details::fmt_helper::pad2(int, fmt::v10::basic_memory_buffer >&)::{lambda()#1}::operator()() const', 'spdlog::details::fmt_helper::pad2(int, fmt::v10::basic_memory_buffer >&)::{lambda()#1}::operator()() const::FMT_COMPILE_STRING::operator fmt::v10::basic_string_view () const', 'fmt::v10::format_arg_store , std::__1::remove_cv ::type>::type> fmt::v10::make_format_args , int>(int&)', 'std::__1::back_insert_iterator > > fmt::v10::vformat_to > >, 0>(std::__1::back_insert_iterator > >, fmt::v10::basic_string_view , fmt::v10::basic_format_args >)', 'void fmt::v10::detail::check_format_string >&)::{lambda()#1}::operator()() const::FMT_COMPILE_STRING, 0>(spdlog::details::fmt_helper::pad2(int, fmt::v10::basic_memory_buffer >&)::{lambda()#1}::operator()() const::FMT_COMPILE_STRING)', 'std::__1::back_insert_iterator > > std::__1::back_inserter[abi:v180000] > >(fmt::v10::basic_memory_buffer >&)']

166 166 spdlog::details::fmt_helper::pad2(int,fmt::v10::basic_memory_buffer >&) call site: 00000 /src/spdlog/include/spdlog/details/fmt_helper.h:85
20 20 1 :

['void spdlog::details::fmt_helper::append_int (unsigned int, fmt::v10::basic_memory_buffer >&)']

20 20 voidspdlog::details::fmt_helper::pad3 (unsignedint,fmt::v10::basic_memory_buffer >&) call site: 00000 /src/spdlog/include/spdlog/details/fmt_helper.h:107
20 20 4 :

['std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+[abi:v180000] , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'spdlog::throw_spdlog_ex(std::__1::basic_string , std::__1::allocator >)']

20 20 spdlog::details::registry::throw_if_exists_(std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/spdlog/include/spdlog/details/registry-inl.h:249
4 8 7 :

['std::__1::basic_string , std::__1::allocator >::empty[abi:v180000]() const', 'spdlog::details::os::mkdir_(std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::basic_string , std::__1::allocator >::size[abi:v180000]() const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_string , std::__1::allocator >::find_first_of[abi:v180000](char const*, unsigned long) const', 'std::__1::basic_string , std::__1::allocator >::substr[abi:v180000](unsigned long, unsigned long) const', 'spdlog::details::os::path_exists(std::__1::basic_string , std::__1::allocator > const&)']

4 8 spdlog::details::os::create_dir(std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/spdlog/include/spdlog/details/os-inl.h:520
4 4 1 :

['spdlog::details::os::gmtime(long const&)']

4 4 spdlog::pattern_formatter::get_time_(spdlog::details::log_msgconst&) call site: 00000 /src/spdlog/include/spdlog/pattern_formatter-inl.h:990
2 2 3 :

['spdlog::logger::set_error_handler(std::__1::function , std::__1::allocator > const&)>)', 'std::__1::function , std::__1::allocator > const&)>::function(std::__1::function , std::__1::allocator > const&)> const&)', 'std::__1::function , std::__1::allocator > const&)>::~function()']

2 56 spdlog::details::registry::initialize_logger(std::__1::shared_ptr ) call site: 00000 /src/spdlog/include/spdlog/details/registry-inl.h:61
2 2 5 :

['_ZNSt3__110unique_ptrIN6spdlog7details14flag_formatterENS_14default_deleteIS3_EEEC2B7v180000INS1_21custom_flag_formatterENS4_IS8_EEvvEEONS0_IT_T0_EE', 'std::__1::unique_ptr >::~unique_ptr[abi:v180000]()', 'std::__1::unique_ptr >::operator->[abi:v180000]() const', 'spdlog::custom_flag_formatter::set_padding_info(spdlog::details::padding_info const&)', 'std::__1::__hash_map_iterator > >, void*>*> >::operator->[abi:v180000]() const']

2 2 voidspdlog::pattern_formatter::handle_flag_ (char,spdlog::details::padding_info) call site: 00000 /src/spdlog/include/spdlog/pattern_formatter-inl.h:1000
0 10 2 :

['std::__1::shared_ptr ::operator->[abi:v180000]() const', 'spdlog::logger::enable_backtrace(unsigned long)']

0 48 spdlog::details::registry::initialize_logger(std::__1::shared_ptr ) call site: 00000 /src/spdlog/include/spdlog/details/registry-inl.h:72
0 0 None 515 1032 spdlog::pattern_formatter::compile_pattern_(std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/spdlog/include/spdlog/pattern_formatter-inl.h:1294
0 0 None 515 1032 spdlog::pattern_formatter::compile_pattern_(std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/spdlog/include/spdlog/pattern_formatter-inl.h:1295
0 0 None 515 1032 spdlog::pattern_formatter::compile_pattern_(std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/spdlog/include/spdlog/pattern_formatter-inl.h:1303

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 __cxa_guard_acquire [call site] 00001
1 spdlog::file_event_handlers::file_event_handlers() [function] [call site] 00002
1 std::__1::shared_ptr<spdlog::logger> spdlog::basic_logger_mt<spdlog::synchronous_factory>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, spdlog::file_event_handlers const&) [function] [call site] 00003
2 std::__1::shared_ptr<spdlog::logger> spdlog::synchronous_factory::create<spdlog::sinks::basic_file_sink<std::__1::mutex>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool&, spdlog::file_event_handlers const&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool&, spdlog::file_event_handlers const&) [function] [call site] 00004
3 spdlog::details::registry::instance() [function] [call site] 00005
4 __cxa_guard_acquire [call site] 00006
4 spdlog::details::registry::registry() [function] [call site] 00007
5 spdlog::pattern_formatter::pattern_formatter(spdlog::pattern_time_type, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00008
6 spdlog::formatter::formatter() [function] [call site] 00009
6 spdlog::details::padding_info::padding_info() [function] [call site] 00010
6 std::__1::unique_ptr<spdlog::details::full_formatter, std::__1::default_delete<spdlog::details::full_formatter> > spdlog::details::make_unique<spdlog::details::full_formatter, spdlog::details::padding_info>(spdlog::details::padding_info&&) [function] [call site] 00011
7 spdlog::details::full_formatter::full_formatter(spdlog::details::padding_info) [function] [call site] 00012
8 spdlog::details::flag_formatter::flag_formatter(spdlog::details::padding_info) [function] [call site] 00013
8 fmt::v10::basic_memory_buffer<char, 250ul, std::__1::allocator<char> >::basic_memory_buffer(std::__1::allocator<char> const&) [function] [call site] 00014
9 fmt::v10::detail::buffer<char>::buffer(char*, unsigned long, unsigned long) [function] [call site] 00015
9 fmt::v10::detail::buffer<char>::set(char*, unsigned long) [function] [call site] 00016
8 spdlog::details::padding_info::padding_info() [function] [call site] 00017
8 spdlog::details::mdc_formatter<spdlog::details::null_scoped_padder>::mdc_formatter(spdlog::details::padding_info) [function] [call site] 00018
9 spdlog::details::flag_formatter::flag_formatter(spdlog::details::padding_info) [function] [call site] 00019
8 fmt::v10::basic_memory_buffer<char, 250ul, std::__1::allocator<char> >::~basic_memory_buffer() [function] [call site] 00020
9 fmt::v10::basic_memory_buffer<char, 250ul, std::__1::allocator<char> >::deallocate() [function] [call site] 00021
10 fmt::v10::detail::buffer<char>::data() [function] [call site] 00022
10 fmt::v10::detail::buffer<char>::capacity() const [function] [call site] 00023
9 __clang_call_terminate [call site] 00024
10 __cxa_begin_catch [call site] 00025
6 spdlog::formatter::~formatter() [function] [call site] 00026
1 spdlog::set_default_logger(std::__1::shared_ptr<spdlog::logger>) [function] [call site] 00027
2 spdlog::details::registry::instance() [function] [call site] 00028
1 spdlog::enable_backtrace(unsigned long) [function] [call site] 00029
2 spdlog::details::registry::instance() [function] [call site] 00030
1 void spdlog::debug<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00031
2 spdlog::default_logger_raw() [function] [call site] 00032
3 spdlog::details::registry::instance() [function] [call site] 00033
2 void spdlog::logger::debug<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00034
3 void spdlog::logger::log<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(spdlog::level::level_enum, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00035
4 spdlog::source_loc::source_loc() [function] [call site] 00036
4 fmt::v10::basic_string_view<char>::basic_string_view<std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00037
4 spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v10::basic_string_view<char>) [function] [call site] 00038
5 spdlog::logger::should_log(spdlog::level::level_enum) const [function] [call site] 00039
5 spdlog::details::backtracer::enabled() const [function] [call site] 00040
5 fmt::v10::basic_string_view<char>::basic_string_view<std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00041
5 spdlog::details::log_msg::log_msg(spdlog::source_loc, fmt::v10::basic_string_view<char>, spdlog::level::level_enum, fmt::v10::basic_string_view<char>) [function] [call site] 00042
6 spdlog::details::os::now() [function] [call site] 00043
6 spdlog::details::log_msg::log_msg(std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000l> > >, spdlog::source_loc, fmt::v10::basic_string_view<char>, spdlog::level::level_enum, fmt::v10::basic_string_view<char>) [function] [call site] 00044
7 spdlog::details::os::thread_id() [function] [call site] 00045
8 spdlog::details::os::_thread_id() [function] [call site] 00046
9 syscall [call site] 00047
5 spdlog::logger::log_it_(spdlog::details::log_msg const&, bool, bool) [function] [call site] 00048
6 spdlog::details::backtracer::push_back(spdlog::details::log_msg const&) [function] [call site] 00049
7 spdlog::details::log_msg_buffer::log_msg_buffer(spdlog::details::log_msg const&) [function] [call site] 00050
8 fmt::v10::basic_memory_buffer<char, 250ul, std::__1::allocator<char> >::basic_memory_buffer(std::__1::allocator<char> const&) [function] [call site] 00051
8 fmt::v10::basic_string_view<char>::begin() const [function] [call site] 00052
8 void fmt::v10::detail::buffer<char>::append<char>(char const*, char const*) [function] [call site] 00053
9 std::__1::make_unsigned<long>::type fmt::v10::detail::to_unsigned<long>(long) [function] [call site] 00054
10 fmt::v10::detail::assert_fail(char const*, int, char const*) [function] [call site] 00055
11 fprintf [call site] 00056
9 fmt::v10::detail::buffer<char>::try_reserve(unsigned long) [function] [call site] 00057
8 fmt::v10::basic_string_view<char>::begin() const [function] [call site] 00058
8 void fmt::v10::detail::buffer<char>::append<char>(char const*, char const*) [function] [call site] 00059
8 spdlog::details::log_msg_buffer::update_string_views() [function] [call site] 00060
9 fmt::v10::detail::buffer<char>::data() [function] [call site] 00061
9 fmt::v10::detail::buffer<char>::data() [function] [call site] 00062
8 fmt::v10::basic_memory_buffer<char, 250ul, std::__1::allocator<char> >::~basic_memory_buffer() [function] [call site] 00063
7 spdlog::details::circular_q<spdlog::details::log_msg_buffer>::push_back(spdlog::details::log_msg_buffer&&) [function] [call site] 00064
8 spdlog::details::log_msg_buffer::operator=(spdlog::details::log_msg_buffer&&) [function] [call site] 00065
9 fmt::v10::basic_memory_buffer<char, 250ul, std::__1::allocator<char> >::operator=(fmt::v10::basic_memory_buffer<char, 250ul, std::__1::allocator<char> >&&) [function] [call site] 00066
10 fmt::v10::detail::assert_fail(char const*, int, char const*) [function] [call site] 00067
10 fmt::v10::basic_memory_buffer<char, 250ul, std::__1::allocator<char> >::deallocate() [function] [call site] 00068
10 fmt::v10::basic_memory_buffer<char, 250ul, std::__1::allocator<char> >::move(fmt::v10::basic_memory_buffer<char, 250ul, std::__1::allocator<char> >&) [function] [call site] 00069
11 fmt::v10::detail::buffer<char>::data() [function] [call site] 00070
11 fmt::v10::detail::buffer<char>::size() const [function] [call site] 00071
11 fmt::v10::detail::buffer<char>::set(char*, unsigned long) [function] [call site] 00072
11 char* fmt::v10::detail::copy_str<char, char, char, 0>(char*, char*, char*) [function] [call site] 00073
12 std::__1::make_unsigned<long>::type fmt::v10::detail::to_unsigned<long>(long) [function] [call site] 00074
11 fmt::v10::detail::buffer<char>::set(char*, unsigned long) [function] [call site] 00075
11 fmt::v10::detail::buffer<char>::set(char*, unsigned long) [function] [call site] 00076
11 fmt::v10::detail::buffer<char>::clear() [function] [call site] 00077
11 fmt::v10::basic_memory_buffer<char, 250ul, std::__1::allocator<char> >::resize(unsigned long) [function] [call site] 00078
12 fmt::v10::detail::buffer<char>::try_resize(unsigned long) [function] [call site] 00079
13 fmt::v10::detail::buffer<char>::try_reserve(unsigned long) [function] [call site] 00080
10 __clang_call_terminate [call site] 00081
9 spdlog::details::log_msg_buffer::update_string_views() [function] [call site] 00082
7 spdlog::details::log_msg_buffer::~log_msg_buffer() [function] [call site] 00083
8 fmt::v10::basic_memory_buffer<char, 250ul, std::__1::allocator<char> >::~basic_memory_buffer() [function] [call site] 00084
1 spdlog::dump_backtrace() [function] [call site] 00085
2 spdlog::default_logger_raw() [function] [call site] 00086
2 spdlog::logger::dump_backtrace() [function] [call site] 00087
3 spdlog::logger::dump_backtrace_() [function] [call site] 00088
4 spdlog::details::backtracer::enabled() const [function] [call site] 00089
4 spdlog::logger::name() const [function] [call site] 00090
4 fmt::v10::basic_string_view<char>::basic_string_view<std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00091
4 spdlog::details::log_msg::log_msg(fmt::v10::basic_string_view<char>, spdlog::level::level_enum, fmt::v10::basic_string_view<char>) [function] [call site] 00092
5 spdlog::details::os::now() [function] [call site] 00093
5 spdlog::source_loc::source_loc() [function] [call site] 00094
5 spdlog::details::log_msg::log_msg(std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000l> > >, spdlog::source_loc, fmt::v10::basic_string_view<char>, spdlog::level::level_enum, fmt::v10::basic_string_view<char>) [function] [call site] 00095
4 spdlog::details::backtracer::foreach_pop(std::__1::function<void (spdlog::details::log_msg const&)>) [function] [call site] 00096
5 spdlog::details::circular_q<spdlog::details::log_msg_buffer>::empty() const [function] [call site] 00097
5 spdlog::details::circular_q<spdlog::details::log_msg_buffer>::front() [function] [call site] 00098
5 spdlog::details::circular_q<spdlog::details::log_msg_buffer>::pop_front() [function] [call site] 00099
4 spdlog::logger::name() const [function] [call site] 00100
4 fmt::v10::basic_string_view<char>::basic_string_view<std::__1::char_traits<char>, std::__1::allocator<char> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00101
4 spdlog::details::log_msg::log_msg(fmt::v10::basic_string_view<char>, spdlog::level::level_enum, fmt::v10::basic_string_view<char>) [function] [call site] 00102