Fuzz introspector
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues
Report generation date: 2025-06-13

Project overview: brpc

High level conclusions

Reachability and coverage overview

Functions statically reachable by fuzzers
8.0%
2454 / 31308
Cyclomatic complexity statically reachable by fuzzers
7.00%
9673 / 141717
Runtime code coverage of functions
26.0%
8152 / 31308

Warning: The number of runtime covered functions are larger than the number of reachable functions. This means that Fuzz Introspector found there are more functions covered at runtime than what is considered reachable based on the static analysis. This is a limitation in the analysis as anything covered at runtime is by definition reachable by the fuzzers.
This is likely due to a limitation in the static analysis. In this case, the count of functions covered at runtime is the true value, which means this is what should be considered "achieved" by the fuzzer.

Use the project functions table below to query all functions that were not covered at runtime.

Fuzzer details

Fuzzer: fuzz_butil

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 1804 85.1%
gold [1:9] 179 8.45%
yellow [10:29] 10 0.47%
greenyellow [30:49] 1 0.04%
lawngreen 50+ 124 5.85%
All colors 2118 100

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
15360 34382 18 :

['logging::LogStream& logging::LogStream::operator<< (char const (&) [13])', 'logging::LogMessage::stream()', 'bvar::VarEntry* butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::seek , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&) const', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'std::enable_if ::type butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::erase , std::allocator >, false>(std::__cxx11::basic_string , std::allocator > const&, bvar::VarEntry*)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'std::__cxx11::basic_string , std::allocator >* logging::CheckEQImpl (unsigned long const&, unsigned long const&, char const*)', 'bvar::get_var_map(std::__cxx11::basic_string , std::allocator > const&)', 'std::lock_guard ::lock_guard(pthread_mutex_t&)', 'logging::LogMessage::LogMessage(char const*, int, char const*, std::__cxx11::basic_string , std::allocator >*)', 'logging::LogStream::SetCheck()', 'std::__cxx11::basic_string , std::allocator >::clear()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'std::lock_guard ::~lock_guard()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [2])', 'logging::LogStream& logging::LogStream::operator<< , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

15360 34382 bvar::Variable::hide() call site: 00000 /src/brpc/src/bvar/variable.cpp:188
11396 11396 8 :

['logging::LogMessage::stream()', 'butil::optional , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::NewBucketsInfo>::optional(butil::nullopt_t)', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [20])']

11396 11438 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::new_buckets_and_thumbnail(unsignedlong,unsignedlong) call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:730
11392 11392 7 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [21])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

11392 11392 bvar::detail::AgentCombiner ::get_or_create_tls_agent() call site: 00000 /src/brpc/src/bvar/detail/combiner.h:307
11392 11392 7 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [21])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

11392 11392 bvar::Reducer ::operator<<(bvar::detail::Sampler*const&) call site: 00000 /src/brpc/src/bvar/reducer.h:191
11390 11390 6 :

['logging::LogMessage::stream()', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

11390 11390 butil::Hash(charconst*,unsignedlong) call site: 00000 /src/brpc/src/butil/hash.h:23
68 72 5 :

['butil::SingleThreadedPool<56ul, 1024ul, 16ul, butil::PtAllocator>::back(void*)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::is_valid() const', 'butil::bit_array_clear(unsigned long*, unsigned long)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::destroy_element()', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::set_invalid()']

68 72 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::clear() call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:513
12 12 1 :

['dlsym']

12 12 bthread::init_sys_mutex_lock() call site: 00000 /src/brpc/src/bthread/mutex.cpp:447
10 10 4 :

['logging::LogStream& logging::LogStream::operator<< (int const&)', 'logging::LogStream::SetCheck()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [12])']

11398 11398 bvar::detail::AgentGroup ::Agent>::get_or_create_tls_agent(int) call site: 00000 /src/brpc/src/bvar/detail/agent_group.h:131
10 10 1 :

['butil::internal::WaitForInstance(long*)']

10 10 Singleton ,butil::ThreadIdNameManager>::get() call site: 00000 /src/brpc/src/butil/memory/singleton.h:255
6 6 3 :

['void butil::ignore_result (long const&)', '_exit', 'write']

6 6 boolbutil::RegisterFlagValidatorOrDieImpl (boolconst*,bool(*)(charconst*,bool)) call site: 00000 /src/brpc/src/butil/reloadable_flags.h:67
6 6 3 :

['void butil::ignore_result (long const&)', '_exit', 'write']

6 6 boolbutil::RegisterFlagValidatorOrDieImpl (intconst*,bool(*)(charconst*,int)) call site: 00000 /src/brpc/src/butil/reloadable_flags.h:67
6 6 3 :

['void butil::ignore_result (long const&)', '_exit', 'write']

6 6 boolbutil::RegisterFlagValidatorOrDieImpl (unsignedintconst*,bool(*)(charconst*,unsignedint)) call site: 00000 /src/brpc/src/butil/reloadable_flags.h:67

Runtime coverage analysis

Covered functions
545
Functions that are reachable but not covered
1681
Reachable functions
2116
Percentage of reachable functions covered
20.56%
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/brpc/test/fuzzing/fuzz_butil.cpp 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 11
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 66
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 27
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h 1
/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/bits/char_traits.h 3
/src/brpc/src/butil/strings/string_piece.h 13
/src/brpc/src/butil/base64.cc 2
/src/brpc/src/butil/third_party/modp_b64/modp_b64.cc 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 33
/src/brpc/src/butil/crc32c.h 1
/src/brpc/src/butil/crc32c.cc 3
/src/brpc/src/butil/hash.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits 4
/src/brpc/src/butil/logging.h 44
/src/brpc/src/butil/logging.cc 26
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/sstream 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_ios.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream 7
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/streambuf 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/sstream.tcc 1
/src/brpc/src/butil/debug/stack_trace_posix.cc 9
/src/brpc/src/butil/numerics/safe_conversions.h 1
/src/brpc/src/butil/numerics/safe_conversions_impl.h 4
/src/brpc/src/butil/debug/stack_trace.cc 3
/src/brpc/src/butil/third_party/symbolize/symbolize.cc 25
/src/brpc/src/butil/third_party/symbolize/demangle.cc 63
/src/brpc/src/butil/containers/doubly_buffered_data.h 16
/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 34
/src/brpc/src/butil/memory/singleton.h 6
/src/brpc/src/butil/atomicops_internals_x86_gcc.h 4
/src/brpc/src/butil/atomicops.h 19
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic 5
/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/bits/stl_vector.h 134
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc 17
/src/brpc/src/bthread/mutex.cpp 12
/src/brpc/src/butil/scoped_lock.h 2
/src/brpc/src/bvar/collector.h 3
/src/brpc/src/butil/fast_rand.cpp 5
/src/brpc/src/butil/time.h 7
/src/brpc/src/bvar/collector.cpp 14
/src/brpc/src/butil/memory/singleton_on_pthread_once.h 6
/src/brpc/src/bvar/reducer.h 8
/src/brpc/src/bvar/variable.h 2
/src/brpc/src/bvar/variable.cpp 8
/src/brpc/src/butil/containers/flat_map_inl.h 19
/src/brpc/src/butil/containers/flat_map.h 23
/src/brpc/src/butil/single_threaded_pool.h 8
/src/brpc/src/butil/containers/optional.h 7
/src/brpc/src/butil/memory/scope_guard.h 8
/src/brpc/src/butil/memory/manual_constructor.h 7
/src/brpc/src/butil/memory/aligned_memory.h 5
/src/brpc/src/butil/bit_array.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h 34
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/alloc_traits.h 1
/src/brpc/src/butil/errno.cpp 2
/src/brpc/src/bthread/key.cpp 21
/src/brpc/src/butil/debug/stack_trace.h 1
/src/brpc/src/butil/object_pool.h 3
/src/brpc/src/butil/object_pool_inl.h 13
/src/brpc/src/butil/thread_local.cpp 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h 1
/src/brpc/src/butil/containers/linked_list.h 27
/src/brpc/src/bvar/detail/combiner.h 26
/src/brpc/src/bvar/detail/agent_group.h 12
/src/brpc/src/butil/synchronization/lock.h 10
/src/brpc/src/bvar/detail/call_op_returning_void.h 2
/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 1
/src/brpc/src/bthread/task_group.cpp 1
/src/brpc/src/bthread/task_group.h 1
/src/brpc/src/butil/thread_key.h 2
/src/brpc/src/butil/thread_key.cpp 4
/src/brpc/src/bthread/types.h 1
/src/brpc/src/butil/threading/platform_thread_linux.cc 1
/src/brpc/src/butil/threading/thread_id_name_manager.cc 3
/src/brpc/src/butil/memory/singleton.cc 1
/src/brpc/src/butil/threading/platform_thread_posix.cc 2
/src/brpc/src/bvar/passive_status.h 7
/src/brpc/src/bvar/window.h 6
/src/brpc/src/bvar/detail/sampler.h 4
/src/brpc/src/bvar/detail/sampler.cpp 11
/src/brpc/src/butil/containers/bounded_queue.h 8
/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/bits/stl_tree.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_deque.h 19
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/deque.tcc 1
/src/brpc/src/butil/strings/string_piece.cc 4
/src/brpc/src/butil/debug/alias.cc 1
/src/brpc/src/butil/debug/debugger_posix.cc 3
/src/brpc/src/butil/hash.cc 1
/src/brpc/src/butil/third_party/superfasthash/superfasthash.c 1
/src/brpc/src/butil/sha1_portable.cc 13

Fuzzer: fuzz_json

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 483 48.8%
gold [1:9] 5 0.50%
yellow [10:29] 14 1.41%
greenyellow [30:49] 15 1.51%
lawngreen 50+ 471 47.6%
All colors 988 100

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
15360 34382 18 :

['logging::LogStream& logging::LogStream::operator<< (char const (&) [13])', 'logging::LogMessage::stream()', 'bvar::VarEntry* butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::seek , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&) const', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'std::enable_if ::type butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::erase , std::allocator >, false>(std::__cxx11::basic_string , std::allocator > const&, bvar::VarEntry*)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'std::__cxx11::basic_string , std::allocator >* logging::CheckEQImpl (unsigned long const&, unsigned long const&, char const*)', 'bvar::get_var_map(std::__cxx11::basic_string , std::allocator > const&)', 'std::lock_guard ::lock_guard(pthread_mutex_t&)', 'logging::LogMessage::LogMessage(char const*, int, char const*, std::__cxx11::basic_string , std::allocator >*)', 'logging::LogStream::SetCheck()', 'std::__cxx11::basic_string , std::allocator >::clear()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'std::lock_guard ::~lock_guard()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [2])', 'logging::LogStream& logging::LogStream::operator<< , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

15360 34382 bvar::Variable::hide() call site: 00000 /src/brpc/src/bvar/variable.cpp:188
11396 11396 8 :

['logging::LogMessage::stream()', 'butil::optional , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::NewBucketsInfo>::optional(butil::nullopt_t)', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [20])']

11396 11438 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::new_buckets_and_thumbnail(unsignedlong,unsignedlong) call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:730
11392 11392 7 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [21])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

11392 11392 bvar::detail::AgentCombiner ::get_or_create_tls_agent() call site: 00000 /src/brpc/src/bvar/detail/combiner.h:307
11392 11392 7 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [21])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

11392 11392 bvar::Reducer ::operator<<(bvar::detail::Sampler*const&) call site: 00000 /src/brpc/src/bvar/reducer.h:191
68 72 5 :

['butil::SingleThreadedPool<56ul, 1024ul, 16ul, butil::PtAllocator>::back(void*)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::is_valid() const', 'butil::bit_array_clear(unsigned long*, unsigned long)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::destroy_element()', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::set_invalid()']

68 72 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::clear() call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:513
12 12 1 :

['dlsym']

12 12 bthread::init_sys_mutex_lock() call site: 00000 /src/brpc/src/bthread/mutex.cpp:447
10 10 4 :

['logging::LogStream& logging::LogStream::operator<< (int const&)', 'logging::LogStream::SetCheck()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [12])']

11398 11398 bvar::detail::AgentGroup ::Agent>::get_or_create_tls_agent(int) call site: 00000 /src/brpc/src/bvar/detail/agent_group.h:131
10 10 1 :

['butil::internal::WaitForInstance(long*)']

10 10 Singleton ,butil::ThreadIdNameManager>::get() call site: 00000 /src/brpc/src/butil/memory/singleton.h:255
6 6 3 :

['void butil::ignore_result (long const&)', '_exit', 'write']

6 6 boolbutil::RegisterFlagValidatorOrDieImpl (boolconst*,bool(*)(charconst*,bool)) call site: 00000 /src/brpc/src/butil/reloadable_flags.h:67
6 6 3 :

['void butil::ignore_result (long const&)', '_exit', 'write']

6 6 boolbutil::RegisterFlagValidatorOrDieImpl (intconst*,bool(*)(charconst*,int)) call site: 00000 /src/brpc/src/butil/reloadable_flags.h:67
6 6 3 :

['void butil::ignore_result (long const&)', '_exit', 'write']

6 6 boolbutil::RegisterFlagValidatorOrDieImpl (unsignedintconst*,bool(*)(charconst*,unsignedint)) call site: 00000 /src/brpc/src/butil/reloadable_flags.h:67
4 4 1 :

['std::__cxx11::basic_string , std::allocator >::append(std::__cxx11::basic_string , std::allocator > const&, unsigned long, unsigned long)']

4 4 json2pb::decode_name(std::__cxx11::basic_string ,std::allocator >const&,std::__cxx11::basic_string ,std::allocator >&) call site: 00000 /src/brpc/src/json2pb/encode_decode.cpp:106

Runtime coverage analysis

Covered functions
734
Functions that are reachable but not covered
338
Reachable functions
783
Percentage of reachable functions covered
56.83%
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/brpc/test/fuzzing/fuzz_json.cpp 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 27
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 3
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 11
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/char_traits.h 3
/src/brpc/build/test/addressbook1.pb.cc 3
/usr/include/google/protobuf/message.h 3
/usr/include/google/protobuf/message_lite.h 2
/usr/include/google/protobuf/metadata.h 1
/usr/include/google/protobuf/metadata_lite.h 4
/usr/include/google/protobuf/generated_message_util.h 2
/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
/usr/include/google/protobuf/repeated_field.h 17
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 5
/usr/include/google/protobuf/unknown_field_set.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/type_traits.h 1
/src/brpc/src/json2pb/json_to_pb.cpp 15
/src/brpc/src/butil/third_party/rapidjson/document.h 95
/src/brpc/src/butil/third_party/rapidjson/internal/stack.h 16
/src/brpc/src/butil/third_party/rapidjson/error/error.h 7
/src/brpc/src/butil/third_party/rapidjson/error/../allocators.h 8
/src/brpc/src/butil/third_party/rapidjson/error/../rapidjson.h 6
/src/brpc/src/butil/third_party/rapidjson/reader.h 38
/src/brpc/src/butil/third_party/rapidjson/error/../encodings.h 1
/src/brpc/src/butil/third_party/rapidjson/internal/strtod.h 2
/src/brpc/src/butil/third_party/rapidjson/internal/pow10.h 1
/src/brpc/src/butil/third_party/rapidjson/error/en.h 1
/src/brpc/src/butil/string_printf.cpp 3
/usr/include/google/protobuf/descriptor.h 13
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h 17
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h 9
/usr/include/google/protobuf/stubs/once.h 2
/src/brpc/src/butil/strings/string_piece.h 6
/src/brpc/src/butil/strings/string_number_conversions.cc 22
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits 7
/src/brpc/src/butil/base64.cc 1
/src/brpc/src/butil/third_party/modp_b64/modp_b64.cc 1
/src/brpc/src/json2pb/encode_decode.cpp 2
/src/brpc/src/butil/third_party/rapidjson/internal/strfunc.h 1
/src/brpc/src/json2pb/protobuf_map.cpp 1

Fuzzer: fuzz_hpack

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 2346 65.3%
gold [1:9] 288 8.02%
yellow [10:29] 72 2.00%
greenyellow [30:49] 12 0.33%
lawngreen 50+ 873 24.3%
All colors 3591 100

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
5127 5127 1 :

['butil::IOBuf::push_back(char)']

5127 5127 butil::IOBuf::append(voidconst*,unsignedlong) call site: 00000 /src/brpc/src/butil/iobuf.cpp:1232
172 34382 18 :

['logging::LogStream& logging::LogStream::operator<< (char const (&) [13])', 'logging::LogMessage::stream()', 'bvar::VarEntry* butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::seek , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&) const', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'std::enable_if ::type butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::erase , std::allocator >, false>(std::__cxx11::basic_string , std::allocator > const&, bvar::VarEntry*)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'std::__cxx11::basic_string , std::allocator >* logging::CheckEQImpl (unsigned long const&, unsigned long const&, char const*)', 'bvar::get_var_map(std::__cxx11::basic_string , std::allocator > const&)', 'std::lock_guard ::lock_guard(pthread_mutex_t&)', 'logging::LogMessage::LogMessage(char const*, int, char const*, std::__cxx11::basic_string , std::allocator >*)', 'logging::LogStream::SetCheck()', 'std::__cxx11::basic_string , std::allocator >::clear()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'std::lock_guard ::~lock_guard()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [2])', 'logging::LogStream& logging::LogStream::operator<< , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

172 34382 bvar::Variable::hide() call site: 00000 /src/brpc/src/bvar/variable.cpp:188
131 137 6 :

['std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char const*)', 'std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char)', 'butil::BasicStringPiece , std::allocator > >::empty() const', 'butil::BasicStringPiece , std::allocator > >::operator[](unsigned long) const', 'butil::BasicStringPiece , std::allocator > >::size() const', 'logging::PrintLogPrefixAsJSON(std::ostream&, int, butil::BasicStringPiece , std::allocator > >, butil::BasicStringPiece , std::allocator > >, int, timeval)']

131 187 logging::PrintLog(std::ostream&,int,charconst*,int,charconst*,butil::BasicStringPiece ,std::allocator >>const&) call site: 00000 /src/brpc/src/butil/logging.cc:974
72 76 5 :

['butil::bit_array_clear(unsigned long*, unsigned long)', 'butil::SingleThreadedPool<80ul, 1024ul, 16ul, butil::PtAllocator>::back(void*)', 'butil::FlatMap ::Bucket::is_valid() const', 'butil::FlatMap ::Bucket::set_invalid()', 'butil::FlatMap ::Bucket::destroy_element()']

72 76 butil::FlatMap ::clear() call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:513
68 72 5 :

['butil::bit_array_clear(unsigned long*, unsigned long)', 'butil::FlatMap , std::allocator >, unsigned long, butil::CaseIgnoredHasher, butil::CaseIgnoredEqual, false, butil::PtAllocator, false>::Bucket::is_valid() const', 'butil::FlatMap , std::allocator >, unsigned long, butil::CaseIgnoredHasher, butil::CaseIgnoredEqual, false, butil::PtAllocator, false>::Bucket::set_invalid()', 'butil::FlatMap , std::allocator >, unsigned long, butil::CaseIgnoredHasher, butil::CaseIgnoredEqual, false, butil::PtAllocator, false>::Bucket::destroy_element()', 'butil::SingleThreadedPool<48ul, 1024ul, 16ul, butil::PtAllocator>::back(void*)']

68 72 butil::FlatMap ,std::allocator >,unsignedlong,butil::CaseIgnoredHasher,butil::CaseIgnoredEqual,false,butil::PtAllocator,false>::clear() call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:513
68 72 5 :

['butil::SingleThreadedPool<56ul, 1024ul, 16ul, butil::PtAllocator>::back(void*)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::is_valid() const', 'butil::bit_array_clear(unsigned long*, unsigned long)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::destroy_element()', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::set_invalid()']

68 72 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::clear() call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:513
27 47 2 :

['google::SafeAppendString(char const*, char*, int)', 'google::SafeAppendHexNumber(unsigned long, char*, int)']

27 47 google::SymbolizeAndDemangle(void*,char*,int,unsignedlong*) call site: 00000 /src/brpc/src/butil/third_party/symbolize/symbolize.cc:764
21 21 1 :

['butil::fast_rand_less_than(unsigned long)']

21 21 butil::IsIOBufProfilerSamplable() call site: 00000 /src/brpc/src/butil/iobuf_profiler.cpp:77
18 18 1 :

['butil::iobuf::acquire_blockref_array()']

18 5067 voidbutil::IOBuf::_push_or_move_back_ref_to_smallview (butil::IOBuf::BlockRefconst&) call site: 00000 /src/brpc/src/butil/iobuf.cpp:622
12 11402 9 :

['logging::LogMessage::stream()', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogStream::SetCheck()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogStream& logging::LogStream::operator<< (bthread_key_t const&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [42])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

12 11402 bthread::KeyTable::set_data(bthread_key_t,void*) call site: 00000 /src/brpc/src/bthread/key.cpp:198
12 12 1 :

['dlsym']

12 12 bthread::init_sys_mutex_lock() call site: 00000 /src/brpc/src/bthread/mutex.cpp:447
10 10 1 :

['butil::internal::WaitForInstance(long*)']

10 10 Singleton ,butil::ThreadIdNameManager>::get() call site: 00000 /src/brpc/src/butil/memory/singleton.h:255

Runtime coverage analysis

Covered functions
885
Functions that are reachable but not covered
2056
Reachable functions
3347
Percentage of reachable functions covered
38.57%
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/brpc/test/fuzzing/fuzz_hpack.cpp 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 14
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 89
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 30
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h 1
/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/bits/char_traits.h 3
/src/brpc/src/butil/iobuf_inl.h 14
/src/brpc/src/brpc/details/hpack.cpp 34
/src/brpc/src/brpc/describable.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h 163
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 45
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h 40
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc 19
/src/brpc/src/butil/containers/bounded_queue.h 20
/src/brpc/src/butil/containers/flat_map_inl.h 103
/src/brpc/src/butil/containers/flat_map.h 130
/src/brpc/src/butil/single_threaded_pool.h 32
/src/brpc/src/butil/containers/case_ignored_flat_map.h 4
/src/brpc/src/butil/memory/manual_constructor.h 47
/src/brpc/src/butil/memory/aligned_memory.h 23
/src/brpc/src/brpc/details/hpack.h 5
/src/brpc/src/butil/bit_array.h 2
/src/brpc/src/butil/logging.h 82
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/sstream 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_ios.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream 8
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/streambuf 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/sstream.tcc 1
/src/brpc/src/butil/logging.cc 26
/src/brpc/src/butil/debug/stack_trace_posix.cc 9
/src/brpc/src/butil/numerics/safe_conversions.h 1
/src/brpc/src/butil/numerics/safe_conversions_impl.h 4
/src/brpc/src/bthread/key.cpp 21
/src/brpc/src/butil/scoped_lock.h 2
/src/brpc/src/bthread/mutex.cpp 12
/src/brpc/src/bvar/collector.h 3
/src/brpc/src/butil/fast_rand.cpp 7
/src/brpc/src/butil/time.h 7
/src/brpc/src/bvar/collector.cpp 14
/src/brpc/src/butil/atomicops.h 28
/src/brpc/src/butil/memory/singleton_on_pthread_once.h 6
/src/brpc/src/butil/atomicops_internals_x86_gcc.h 8
/src/brpc/src/bvar/reducer.h 8
/src/brpc/src/bvar/variable.h 2
/src/brpc/src/bvar/variable.cpp 8
/src/brpc/src/butil/containers/optional.h 42
/src/brpc/src/butil/memory/scope_guard.h 28
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/alloc_traits.h 1
/src/brpc/src/butil/errno.cpp 2
/src/brpc/src/butil/debug/stack_trace.h 1
/src/brpc/src/butil/object_pool.h 5
/src/brpc/src/butil/object_pool_inl.h 24
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic 13
/src/brpc/src/butil/thread_local.cpp 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h 1
/src/brpc/src/butil/third_party/symbolize/symbolize.cc 25
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits 5
/src/brpc/src/butil/third_party/symbolize/demangle.cc 63
/src/brpc/src/butil/containers/linked_list.h 27
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_base.h 4
/src/brpc/src/butil/debug/stack_trace.cc 3
/src/brpc/src/bvar/detail/combiner.h 26
/src/brpc/src/bvar/detail/agent_group.h 12
/src/brpc/src/butil/synchronization/lock.h 10
/src/brpc/src/bvar/detail/call_op_returning_void.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h 40
/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 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h 18
/src/brpc/src/butil/threading/platform_thread_linux.cc 1
/src/brpc/src/butil/threading/thread_id_name_manager.cc 3
/src/brpc/src/butil/memory/singleton.h 8
/src/brpc/src/butil/memory/singleton.cc 1
/src/brpc/src/butil/threading/platform_thread_posix.cc 2
/src/brpc/src/bvar/passive_status.h 7
/src/brpc/src/butil/strings/string_piece.h 12
/src/brpc/src/bvar/window.h 6
/src/brpc/src/bvar/detail/sampler.h 4
/src/brpc/src/bvar/detail/sampler.cpp 11
/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/bits/stl_tree.h 2
/src/brpc/src/bthread/task_group.cpp 1
/src/brpc/src/bthread/task_group.h 1
/src/brpc/src/butil/thread_key.h 2
/src/brpc/src/butil/thread_key.cpp 4
/src/brpc/src/bthread/types.h 1
/src/brpc/src/butil/containers/doubly_buffered_data.h 16
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_deque.h 26
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/deque.tcc 4
/src/brpc/src/butil/strings/string_piece.cc 4
/src/brpc/src/butil/debug/alias.cc 1
/src/brpc/src/butil/debug/debugger_posix.cc 3
/src/brpc/src/butil/iobuf.cpp 27
/src/brpc/src/butil/iobuf_profiler.cpp 8
/src/brpc/src/butil/strings/string_number_conversions.cc 15
/src/brpc/src/butil/iobuf_profiler.h 8
/src/brpc/src/butil/threading/simple_thread.cc 3
/src/brpc/src/butil/threading/platform_thread.h 3
/src/brpc/src/butil/threading/simple_thread.h 3
/src/brpc/src/butil/synchronization/waitable_event_posix.cc 5
/src/brpc/src/butil/memory/ref_counted.h 8
/src/brpc/src/butil/memory/ref_counted.cc 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_list.h 9
/src/brpc/src/butil/atomic_ref_count.h 5
/src/brpc/src/butil/containers/mpsc_queue.h 8
/src/brpc/src/butil/hash.cc 1
/src/brpc/src/butil/third_party/superfasthash/superfasthash.c 1
/src/brpc/src/butil/containers/hash_tables.h 1
/src/brpc/src/butil/iobuf.h 8
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h 1
/src/brpc/src/butil/threading/thread_restrictions.h 2
/src/brpc/src/butil/threading/thread_restrictions.cc 1
/src/brpc/src/butil/lazy_instance.h 5
/src/brpc/src/butil/lazy_instance.cc 2
/src/brpc/src/butil/threading/thread_local.h 6
/src/brpc/src/butil/threading/thread_local_posix.cc 3
/src/brpc/src/butil/at_exit.cc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_stack.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/list.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/aligned_buffer.h 2

Fuzzer: fuzz_redis

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 2150 68.5%
gold [1:9] 230 7.33%
yellow [10:29] 59 1.88%
greenyellow [30:49] 35 1.11%
lawngreen 50+ 662 21.1%
All colors 3136 100

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
5136 5136 1 :

['butil::IOBuf::_cut_by_char(butil::IOBuf*, char)']

5136 5136 butil::IOBuf::cut_until(butil::IOBuf*,charconst*) call site: 00000 /src/brpc/src/butil/iobuf_inl.h:95
5127 5127 1 :

['butil::IOBuf::push_back(char)']

5127 5127 butil::IOBuf::append(voidconst*,unsignedlong) call site: 00000 /src/brpc/src/butil/iobuf.cpp:1232
3877 34382 18 :

['logging::LogStream& logging::LogStream::operator<< (char const (&) [13])', 'logging::LogMessage::stream()', 'bvar::VarEntry* butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::seek , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&) const', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'std::enable_if ::type butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::erase , std::allocator >, false>(std::__cxx11::basic_string , std::allocator > const&, bvar::VarEntry*)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'std::__cxx11::basic_string , std::allocator >* logging::CheckEQImpl (unsigned long const&, unsigned long const&, char const*)', 'bvar::get_var_map(std::__cxx11::basic_string , std::allocator > const&)', 'std::lock_guard ::lock_guard(pthread_mutex_t&)', 'logging::LogMessage::LogMessage(char const*, int, char const*, std::__cxx11::basic_string , std::allocator >*)', 'logging::LogStream::SetCheck()', 'std::__cxx11::basic_string , std::allocator >::clear()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'std::lock_guard ::~lock_guard()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [2])', 'logging::LogStream& logging::LogStream::operator<< , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

3877 34382 bvar::Variable::hide() call site: 00000 /src/brpc/src/bvar/variable.cpp:188
131 137 6 :

['std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char const*)', 'std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char)', 'butil::BasicStringPiece , std::allocator > >::empty() const', 'butil::BasicStringPiece , std::allocator > >::operator[](unsigned long) const', 'butil::BasicStringPiece , std::allocator > >::size() const', 'logging::PrintLogPrefixAsJSON(std::ostream&, int, butil::BasicStringPiece , std::allocator > >, butil::BasicStringPiece , std::allocator > >, int, timeval)']

131 187 logging::PrintLog(std::ostream&,int,charconst*,int,charconst*,butil::BasicStringPiece ,std::allocator >>const&) call site: 00000 /src/brpc/src/butil/logging.cc:974
68 72 5 :

['butil::SingleThreadedPool<56ul, 1024ul, 16ul, butil::PtAllocator>::back(void*)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::is_valid() const', 'butil::bit_array_clear(unsigned long*, unsigned long)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::destroy_element()', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::set_invalid()']

68 72 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::clear() call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:513
27 47 2 :

['google::SafeAppendString(char const*, char*, int)', 'google::SafeAppendHexNumber(unsigned long, char*, int)']

27 47 google::SymbolizeAndDemangle(void*,char*,int,unsignedlong*) call site: 00000 /src/brpc/src/butil/third_party/symbolize/symbolize.cc:764
21 21 1 :

['butil::fast_rand_less_than(unsigned long)']

21 21 butil::IsIOBufProfilerSamplable() call site: 00000 /src/brpc/src/butil/iobuf_profiler.cpp:77
18 10110 2 :

['butil::IOBuf::Block::dec_ref()', 'butil::iobuf::acquire_blockref_array()']

18 10110 voidbutil::IOBuf::_push_or_move_back_ref_to_smallview (butil::IOBuf::BlockRefconst&) call site: 00000 /src/brpc/src/butil/iobuf.cpp:615
18 18 1 :

['butil::iobuf::acquire_blockref_array()']

18 5067 voidbutil::IOBuf::_push_or_move_back_ref_to_smallview (butil::IOBuf::BlockRefconst&) call site: 00000 /src/brpc/src/butil/iobuf.cpp:622
12 11402 9 :

['logging::LogMessage::stream()', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogStream::SetCheck()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogStream& logging::LogStream::operator<< (bthread_key_t const&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [42])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

12 11402 bthread::KeyTable::set_data(bthread_key_t,void*) call site: 00000 /src/brpc/src/bthread/key.cpp:198
12 12 1 :

['dlsym']

12 12 bthread::init_sys_mutex_lock() call site: 00000 /src/brpc/src/bthread/mutex.cpp:447
10 11400 9 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (unsigned long const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [12])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [14])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

10 11400 butil::iobuf::create_block(unsignedlong) call site: 00000 /src/brpc/src/butil/iobuf.cpp:342

Runtime coverage analysis

Covered functions
812
Functions that are reachable but not covered
1978
Reachable functions
2974
Percentage of reachable functions covered
33.49%
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/brpc/test/fuzzing/fuzz_redis.cpp 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 14
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 88
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 25
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h 1
/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/bits/char_traits.h 3
/src/brpc/src/butil/iobuf_inl.h 14
/src/brpc/src/butil/iobuf.cpp 36
/src/brpc/src/butil/logging.cc 26
/src/brpc/src/butil/logging.h 69
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/sstream 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_ios.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream 7
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/streambuf 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/sstream.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 44
/src/brpc/src/butil/debug/stack_trace_posix.cc 9
/src/brpc/src/butil/numerics/safe_conversions.h 1
/src/brpc/src/butil/numerics/safe_conversions_impl.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits 6
/src/brpc/src/butil/debug/stack_trace.cc 3
/src/brpc/src/butil/third_party/symbolize/symbolize.cc 25
/src/brpc/src/butil/third_party/symbolize/demangle.cc 63
/src/brpc/src/butil/containers/doubly_buffered_data.h 16
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h 18
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h 40
/src/brpc/src/butil/memory/singleton.h 8
/src/brpc/src/butil/atomicops_internals_x86_gcc.h 8
/src/brpc/src/butil/atomicops.h 28
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic 13
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_base.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h 166
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc 19
/src/brpc/src/bthread/mutex.cpp 12
/src/brpc/src/butil/scoped_lock.h 2
/src/brpc/src/bvar/collector.h 3
/src/brpc/src/butil/fast_rand.cpp 7
/src/brpc/src/butil/time.h 7
/src/brpc/src/bvar/collector.cpp 14
/src/brpc/src/butil/memory/singleton_on_pthread_once.h 6
/src/brpc/src/bvar/reducer.h 8
/src/brpc/src/bvar/variable.h 2
/src/brpc/src/bvar/variable.cpp 8
/src/brpc/src/butil/containers/flat_map_inl.h 69
/src/brpc/src/butil/containers/flat_map.h 86
/src/brpc/src/butil/single_threaded_pool.h 20
/src/brpc/src/butil/containers/optional.h 28
/src/brpc/src/butil/memory/scope_guard.h 20
/src/brpc/src/butil/memory/manual_constructor.h 33
/src/brpc/src/butil/memory/aligned_memory.h 17
/src/brpc/src/butil/bit_array.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h 37
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/alloc_traits.h 2
/src/brpc/src/butil/errno.cpp 2
/src/brpc/src/bthread/key.cpp 21
/src/brpc/src/butil/debug/stack_trace.h 1
/src/brpc/src/butil/object_pool.h 5
/src/brpc/src/butil/object_pool_inl.h 24
/src/brpc/src/butil/thread_local.cpp 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h 1
/src/brpc/src/butil/containers/linked_list.h 27
/src/brpc/src/bvar/detail/combiner.h 26
/src/brpc/src/bvar/detail/agent_group.h 12
/src/brpc/src/butil/synchronization/lock.h 10
/src/brpc/src/bvar/detail/call_op_returning_void.h 2
/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 1
/src/brpc/src/bthread/task_group.cpp 1
/src/brpc/src/bthread/task_group.h 1
/src/brpc/src/butil/thread_key.h 2
/src/brpc/src/butil/thread_key.cpp 4
/src/brpc/src/bthread/types.h 1
/src/brpc/src/butil/threading/platform_thread_linux.cc 1
/src/brpc/src/butil/threading/thread_id_name_manager.cc 3
/src/brpc/src/butil/memory/singleton.cc 1
/src/brpc/src/butil/threading/platform_thread_posix.cc 2
/src/brpc/src/bvar/passive_status.h 7
/src/brpc/src/butil/strings/string_piece.h 13
/src/brpc/src/bvar/window.h 6
/src/brpc/src/bvar/detail/sampler.h 4
/src/brpc/src/bvar/detail/sampler.cpp 11
/src/brpc/src/butil/containers/bounded_queue.h 8
/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/bits/stl_tree.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_deque.h 26
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/deque.tcc 4
/src/brpc/src/butil/strings/string_piece.cc 4
/src/brpc/src/butil/debug/alias.cc 1
/src/brpc/src/butil/debug/debugger_posix.cc 3
/src/brpc/src/butil/iobuf_profiler.cpp 8
/src/brpc/src/butil/strings/string_number_conversions.cc 15
/src/brpc/src/butil/iobuf_profiler.h 8
/src/brpc/src/butil/threading/simple_thread.cc 3
/src/brpc/src/butil/threading/platform_thread.h 3
/src/brpc/src/butil/threading/simple_thread.h 3
/src/brpc/src/butil/synchronization/waitable_event_posix.cc 5
/src/brpc/src/butil/memory/ref_counted.h 8
/src/brpc/src/butil/memory/ref_counted.cc 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_list.h 9
/src/brpc/src/butil/atomic_ref_count.h 5
/src/brpc/src/butil/containers/mpsc_queue.h 8
/src/brpc/src/butil/hash.cc 1
/src/brpc/src/butil/third_party/superfasthash/superfasthash.c 1
/src/brpc/src/butil/containers/hash_tables.h 1
/src/brpc/src/butil/iobuf.h 7
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h 1
/src/brpc/src/butil/threading/thread_restrictions.h 2
/src/brpc/src/butil/threading/thread_restrictions.cc 1
/src/brpc/src/butil/lazy_instance.h 5
/src/brpc/src/butil/lazy_instance.cc 2
/src/brpc/src/butil/threading/thread_local.h 6
/src/brpc/src/butil/threading/thread_local_posix.cc 3
/src/brpc/src/butil/at_exit.cc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_stack.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/list.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/aligned_buffer.h 2
/src/brpc/src/butil/arena.cpp 5
/src/brpc/src/brpc/redis_command.cpp 3
/src/brpc/src/butil/arena.h 2
/src/brpc/src/brpc/redis_command.h 1
/src/brpc/src/brpc/redis_reply.h 2
/src/brpc/src/brpc/redis_reply.cpp 1

Fuzzer: fuzz_uri

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 151 50.8%
gold [1:9] 0 0.0%
yellow [10:29] 9 3.03%
greenyellow [30:49] 2 0.67%
lawngreen 50+ 135 45.4%
All colors 297 100

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
19154 34382 18 :

['logging::LogStream& logging::LogStream::operator<< (char const (&) [13])', 'logging::LogMessage::stream()', 'bvar::VarEntry* butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::seek , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&) const', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'std::enable_if ::type butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::erase , std::allocator >, false>(std::__cxx11::basic_string , std::allocator > const&, bvar::VarEntry*)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'std::__cxx11::basic_string , std::allocator >* logging::CheckEQImpl (unsigned long const&, unsigned long const&, char const*)', 'bvar::get_var_map(std::__cxx11::basic_string , std::allocator > const&)', 'std::lock_guard ::lock_guard(pthread_mutex_t&)', 'logging::LogMessage::LogMessage(char const*, int, char const*, std::__cxx11::basic_string , std::allocator >*)', 'logging::LogStream::SetCheck()', 'std::__cxx11::basic_string , std::allocator >::clear()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'std::lock_guard ::~lock_guard()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [2])', 'logging::LogStream& logging::LogStream::operator<< , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

19154 34382 bvar::Variable::hide() call site: 00000 /src/brpc/src/bvar/variable.cpp:188
11396 11396 8 :

['logging::LogMessage::stream()', 'butil::optional , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::NewBucketsInfo>::optional(butil::nullopt_t)', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [20])']

11396 11438 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::new_buckets_and_thumbnail(unsignedlong,unsignedlong) call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:730
11392 11392 7 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [21])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

11392 11392 bvar::detail::AgentCombiner ::get_or_create_tls_agent() call site: 00000 /src/brpc/src/bvar/detail/combiner.h:307
11392 11392 7 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [21])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

11392 11392 bvar::Reducer ::operator<<(bvar::detail::Sampler*const&) call site: 00000 /src/brpc/src/bvar/reducer.h:191
128 128 2 :

['butil::string_printf[abi:cxx11](char const*, ...)', 'std::__cxx11::basic_string , std::allocator >::operator=(std::__cxx11::basic_string , std::allocator >&&)']

168 168 brpc::AdaptiveMaxConcurrency::AdaptiveMaxConcurrency(int) call site: 00000 /src/brpc/src/brpc/adaptive_max_concurrency.cpp:38
68 72 5 :

['butil::FlatMap , std::allocator >, std::__cxx11::basic_string , std::allocator >, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::set_invalid()', 'butil::bit_array_clear(unsigned long*, unsigned long)', 'butil::FlatMap , std::allocator >, std::__cxx11::basic_string , std::allocator >, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::destroy_element()', 'butil::SingleThreadedPool<72ul, 1024ul, 16ul, butil::PtAllocator>::back(void*)', 'butil::FlatMap , std::allocator >, std::__cxx11::basic_string , std::allocator >, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::is_valid() const']

68 72 butil::FlatMap ,std::allocator >,std::__cxx11::basic_string ,std::allocator >,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::clear() call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:513
68 72 5 :

['butil::SingleThreadedPool<56ul, 1024ul, 16ul, butil::PtAllocator>::back(void*)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::is_valid() const', 'butil::bit_array_clear(unsigned long*, unsigned long)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::destroy_element()', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::set_invalid()']

68 72 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::clear() call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:513
12 12 1 :

['dlsym']

12 12 bthread::init_sys_mutex_lock() call site: 00000 /src/brpc/src/bthread/mutex.cpp:447
10 10 4 :

['logging::LogStream& logging::LogStream::operator<< (int const&)', 'logging::LogStream::SetCheck()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [12])']

11398 11398 bvar::detail::AgentGroup ::Agent>::get_or_create_tls_agent(int) call site: 00000 /src/brpc/src/bvar/detail/agent_group.h:131
10 10 1 :

['butil::internal::WaitForInstance(long*)']

10 10 Singleton ,butil::ThreadIdNameManager>::get() call site: 00000 /src/brpc/src/butil/memory/singleton.h:255
6 6 3 :

['void butil::ignore_result (long const&)', '_exit', 'write']

6 6 boolbutil::RegisterFlagValidatorOrDieImpl (boolconst*,bool(*)(charconst*,bool)) call site: 00000 /src/brpc/src/butil/reloadable_flags.h:67
6 6 3 :

['void butil::ignore_result (long const&)', '_exit', 'write']

6 6 boolbutil::RegisterFlagValidatorOrDieImpl (intconst*,bool(*)(charconst*,int)) call site: 00000 /src/brpc/src/butil/reloadable_flags.h:67

Runtime coverage analysis

Covered functions
1073
Functions that are reachable but not covered
231
Reachable functions
361
Percentage of reachable functions covered
36.01%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/brpc/test/fuzzing/fuzz_uri.cpp 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 5
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 14
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 19
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h 3
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/type_traits.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/char_traits.h 4
/src/brpc/src/brpc/uri.cpp 7
/src/brpc/src/butil/status.h 4
/src/brpc/src/butil/containers/flat_map_inl.h 3
/src/brpc/src/butil/containers/flat_map.h 8
/src/brpc/src/butil/single_threaded_pool.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 5
/src/brpc/src/brpc/uri.h 1
/src/brpc/src/butil/memory/manual_constructor.h 2
/src/brpc/src/butil/memory/aligned_memory.h 2
/src/brpc/src/butil/bit_array.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unordered_set.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable.h 13
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable_policy.h 29
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/aligned_buffer.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h 1
/src/brpc/src/butil/status.cpp 2
/src/brpc/src/butil/strings/string_piece.h 19
/src/brpc/src/brpc/rtmp.cpp 4
/src/brpc/src/butil/strings/string_piece.cc 6
/src/brpc/src/butil/string_splitter_inl.h 7

Fuzzer: fuzz_esp

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 5030 86.9%
gold [1:9] 378 6.53%
yellow [10:29] 55 0.95%
greenyellow [30:49] 8 0.13%
lawngreen 50+ 315 5.44%
All colors 5786 100

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
19154 34382 18 :

['logging::LogStream& logging::LogStream::operator<< (char const (&) [13])', 'logging::LogMessage::stream()', 'bvar::VarEntry* butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::seek , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&) const', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'std::enable_if ::type butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::erase , std::allocator >, false>(std::__cxx11::basic_string , std::allocator > const&, bvar::VarEntry*)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'std::__cxx11::basic_string , std::allocator >* logging::CheckEQImpl (unsigned long const&, unsigned long const&, char const*)', 'bvar::get_var_map(std::__cxx11::basic_string , std::allocator > const&)', 'std::lock_guard ::lock_guard(pthread_mutex_t&)', 'logging::LogMessage::LogMessage(char const*, int, char const*, std::__cxx11::basic_string , std::allocator >*)', 'logging::LogStream::SetCheck()', 'std::__cxx11::basic_string , std::allocator >::clear()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'std::lock_guard ::~lock_guard()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [2])', 'logging::LogStream& logging::LogStream::operator<< , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

19154 34382 bvar::Variable::hide() call site: 00000 /src/brpc/src/bvar/variable.cpp:188
11400 11400 9 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (unsigned long const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [12])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [14])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

11400 11400 butil::iobuf::create_block(unsignedlong) call site: 00000 /src/brpc/src/butil/iobuf.cpp:342
11396 11396 8 :

['logging::LogMessage::stream()', 'butil::optional , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::NewBucketsInfo>::optional(butil::nullopt_t)', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [20])']

11396 11438 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::new_buckets_and_thumbnail(unsignedlong,unsignedlong) call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:730
11392 11392 7 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [21])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

11392 11392 bvar::detail::AgentCombiner ::get_or_create_tls_agent() call site: 00000 /src/brpc/src/bvar/detail/combiner.h:307
11392 11392 7 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [21])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

11392 11392 bvar::Reducer ::operator<<(bvar::detail::Sampler*const&) call site: 00000 /src/brpc/src/bvar/reducer.h:191
5127 5127 1 :

['butil::IOBuf::push_back(char)']

5127 5127 butil::IOBuf::append(voidconst*,unsignedlong) call site: 00000 /src/brpc/src/butil/iobuf.cpp:1232
128 128 2 :

['butil::string_printf[abi:cxx11](char const*, ...)', 'std::__cxx11::basic_string , std::allocator >::operator=(std::__cxx11::basic_string , std::allocator >&&)']

168 168 brpc::AdaptiveMaxConcurrency::AdaptiveMaxConcurrency(int) call site: 00000 /src/brpc/src/brpc/adaptive_max_concurrency.cpp:38
68 72 5 :

['butil::SingleThreadedPool<56ul, 1024ul, 16ul, butil::PtAllocator>::back(void*)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::is_valid() const', 'butil::bit_array_clear(unsigned long*, unsigned long)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::destroy_element()', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::set_invalid()']

68 72 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::clear() call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:513
21 21 1 :

['butil::fast_rand_less_than(unsigned long)']

21 21 butil::IsIOBufProfilerSamplable() call site: 00000 /src/brpc/src/butil/iobuf_profiler.cpp:77
18 18 1 :

['butil::iobuf::acquire_blockref_array()']

18 5067 voidbutil::IOBuf::_push_or_move_back_ref_to_smallview (butil::IOBuf::BlockRefconst&) call site: 00000 /src/brpc/src/butil/iobuf.cpp:622
18 18 1 :

['butil::iobuf::acquire_blockref_array()']

18 5064 voidbutil::IOBuf::_push_or_move_back_ref_to_smallview (butil::IOBuf::BlockRefconst&) call site: 00000 /src/brpc/src/butil/iobuf.cpp:622
12 12 1 :

['dlsym']

12 12 bthread::init_sys_mutex_lock() call site: 00000 /src/brpc/src/bthread/mutex.cpp:447

Runtime coverage analysis

Covered functions
1084
Functions that are reachable but not covered
2287
Reachable functions
2987
Percentage of reachable functions covered
23.43%
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/brpc/test/fuzzing/fuzz_esp.cpp 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 28
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 186
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 32
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h 1
/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/bits/char_traits.h 4
/src/brpc/src/butil/iobuf_inl.h 11
/src/brpc/src/butil/iobuf.cpp 33
/src/brpc/src/butil/logging.cc 35
/src/brpc/src/butil/logging.h 99
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/sstream 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_ios.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/streambuf 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/sstream.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 95
/src/brpc/src/butil/debug/stack_trace_posix.cc 9
/src/brpc/src/butil/numerics/safe_conversions.h 1
/src/brpc/src/butil/numerics/safe_conversions_impl.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits 6
/src/brpc/src/butil/debug/stack_trace.cc 3
/src/brpc/src/butil/third_party/symbolize/symbolize.cc 25
/src/brpc/src/butil/third_party/symbolize/demangle.cc 63
/src/brpc/src/butil/containers/doubly_buffered_data.h 16
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h 40
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h 72
/src/brpc/src/butil/memory/singleton.h 8
/src/brpc/src/butil/atomicops_internals_x86_gcc.h 8
/src/brpc/src/butil/atomicops.h 98
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic 46
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_base.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h 368
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc 41
/src/brpc/src/bthread/mutex.cpp 23
/src/brpc/src/butil/scoped_lock.h 4
/src/brpc/src/bvar/collector.h 3
/src/brpc/src/butil/fast_rand.cpp 9
/src/brpc/src/butil/time.h 12
/src/brpc/src/bvar/collector.cpp 14
/src/brpc/src/butil/memory/singleton_on_pthread_once.h 6
/src/brpc/src/bvar/reducer.h 17
/src/brpc/src/bvar/variable.h 4
/src/brpc/src/bvar/variable.cpp 8
/src/brpc/src/butil/containers/flat_map_inl.h 85
/src/brpc/src/butil/containers/flat_map.h 106
/src/brpc/src/butil/single_threaded_pool.h 26
/src/brpc/src/butil/containers/optional.h 35
/src/brpc/src/butil/memory/scope_guard.h 28
/src/brpc/src/butil/memory/manual_constructor.h 40
/src/brpc/src/butil/memory/aligned_memory.h 23
/src/brpc/src/butil/bit_array.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h 81
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/alloc_traits.h 1
/src/brpc/src/butil/errno.cpp 2
/src/brpc/src/bthread/key.cpp 24
/src/brpc/src/butil/debug/stack_trace.h 1
/src/brpc/src/butil/object_pool.h 17
/src/brpc/src/butil/object_pool_inl.h 95
/src/brpc/src/butil/thread_local.cpp 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h 1
/src/brpc/src/butil/containers/linked_list.h 61
/src/brpc/src/bvar/detail/combiner.h 69
/src/brpc/src/bvar/detail/agent_group.h 36
/src/brpc/src/butil/synchronization/lock.h 10
/src/brpc/src/bvar/detail/call_op_returning_void.h 6
/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 1
/src/brpc/src/bthread/task_group.cpp 25
/src/brpc/src/bthread/task_group.h 13
/src/brpc/src/butil/thread_key.h 2
/src/brpc/src/butil/thread_key.cpp 4
/src/brpc/src/bthread/types.h 1
/src/brpc/src/butil/threading/platform_thread_linux.cc 1
/src/brpc/src/butil/threading/thread_id_name_manager.cc 3
/src/brpc/src/butil/memory/singleton.cc 1
/src/brpc/src/butil/threading/platform_thread_posix.cc 2
/src/brpc/src/bvar/passive_status.h 11
/src/brpc/src/butil/strings/string_piece.h 21
/src/brpc/src/bvar/window.h 19
/src/brpc/src/bvar/detail/sampler.h 14
/src/brpc/src/bvar/detail/sampler.cpp 11
/src/brpc/src/butil/containers/bounded_queue.h 33
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_deque.h 51
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/deque.tcc 6
/src/brpc/src/butil/strings/string_piece.cc 9
/src/brpc/src/butil/debug/alias.cc 1
/src/brpc/src/butil/debug/debugger_posix.cc 3
/src/brpc/src/butil/iobuf_profiler.cpp 8
/src/brpc/src/butil/strings/string_number_conversions.cc 15
/src/brpc/src/butil/iobuf_profiler.h 8
/src/brpc/src/butil/threading/simple_thread.cc 3
/src/brpc/src/butil/threading/platform_thread.h 3
/src/brpc/src/butil/threading/simple_thread.h 3
/src/brpc/src/butil/synchronization/waitable_event_posix.cc 5
/src/brpc/src/butil/memory/ref_counted.h 8
/src/brpc/src/butil/memory/ref_counted.cc 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_list.h 9
/src/brpc/src/butil/atomic_ref_count.h 5
/src/brpc/src/butil/containers/mpsc_queue.h 8
/src/brpc/src/butil/hash.cc 1
/src/brpc/src/butil/third_party/superfasthash/superfasthash.c 1
/src/brpc/src/butil/containers/hash_tables.h 1
/src/brpc/src/butil/iobuf.h 5
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h 1
/src/brpc/src/butil/threading/thread_restrictions.h 2
/src/brpc/src/butil/threading/thread_restrictions.cc 1
/src/brpc/src/butil/lazy_instance.h 5
/src/brpc/src/butil/lazy_instance.cc 2
/src/brpc/src/butil/threading/thread_local.h 6
/src/brpc/src/butil/threading/thread_local_posix.cc 3
/src/brpc/src/butil/at_exit.cc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_stack.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/list.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/aligned_buffer.h 2
/src/brpc/src/brpc/policy/esp_protocol.cpp 1
/src/brpc/src/brpc/parse_result.h 4
/src/brpc/src/brpc/policy/most_common_message.h 2
/src/brpc/src/brpc/input_message_base.h 1
/src/brpc/src/brpc/destroyable.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_ptr.h 27
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tuple 20
/src/brpc/src/brpc/socket.h 2
/src/brpc/src/brpc/input_messenger.cpp 1
/src/brpc/src/brpc/socket_id.h 1
/src/brpc/src/brpc/socket.cpp 4
/src/brpc/src/brpc/versioned_ref_with_id.h 17
/src/brpc/src/butil/shared_object.h 1
/src/brpc/src/brpc/socket_inl.h 2
/src/brpc/src/brpc/event_dispatcher.h 2
/src/brpc/src/brpc/event_dispatcher.cpp 4
/src/brpc/src/bvar/latency_recorder.h 5
/src/brpc/src/bvar/latency_recorder.cpp 17
/src/brpc/src/bvar/recorder.h 17
/src/brpc/src/bvar/detail/percentile.cpp 8
/src/brpc/src/bvar/detail/percentile.h 34
/src/brpc/src/bvar/vector.h 2
/src/brpc/src/brpc/event_dispatcher_epoll.cpp 5
/src/brpc/src/butil/fd_utility.cpp 1
/src/brpc/src/bthread/bthread.cpp 1
/src/brpc/src/bthread/task_group_inl.h 7
/src/brpc/src/butil/resource_pool.h 15
/src/brpc/src/butil/resource_pool_inl.h 49
/src/brpc/src/bthread/butex.cpp 18
/src/brpc/src/bthread/errno.cpp 1
/src/brpc/src/bthread/sys_futex.h 2
/src/brpc/src/bthread/task_control.cpp 13
/src/brpc/src/bthread/task_control.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/array 4
/src/brpc/src/bthread/work_stealing_queue.h 7
/src/brpc/src/butil/compat.h 1
/src/brpc/src/bthread/parking_lot.h 6
/src/brpc/src/bthread/remote_task_queue.h 6
/src/brpc/src/bthread/stack_inl.h 20
/src/brpc/src/bthread/stack.h 3
/src/brpc/src/bthread/stack.cpp 1
/src/brpc/src/butil/third_party/dynamic_annotations/dynamic_annotations.c 2
/src/brpc/src/bthread/task_meta.h 5
/src/brpc/src/bthread/butex.h 1
/src/brpc/src/bthread/mutex.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h 4
/src/brpc/src/butil/string_printf.cpp 3
/src/brpc/src/butil/macros.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward/hash_fun.h 1
/src/brpc/src/bthread/timer_thread.cpp 8
/src/brpc/src/bthread/id.cpp 11
/src/brpc/src/bthread/list_of_abafree_id.h 1
/src/brpc/src/brpc/authenticator.h 1

Fuzzer: fuzz_sofa

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 5112 84.9%
gold [1:9] 440 7.31%
yellow [10:29] 59 0.98%
greenyellow [30:49] 1 0.01%
lawngreen 50+ 404 6.71%
All colors 6016 100

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
16099 27497 13 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [14])', 'logging::LogStream& logging::LogStream::operator<< (unsigned long const&)', 'brpc::Socket::remote_side() const', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogStream& logging::LogStream::operator<< (butil::EndPoint const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [11])', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [7])', 'logging::GetMinLogLevel()', 'butil::EndPoint::~EndPoint()']

16099 27501 brpc::policy::ParseSofaMessage(butil::IOBuf*,brpc::Socket*,bool,voidconst*) call site: 00000 /src/brpc/src/brpc/policy/sofa_pbrpc_protocol.cpp:189
5127 5127 1 :

['butil::IOBuf::push_back(char)']

5127 5127 butil::IOBuf::append(voidconst*,unsignedlong) call site: 00000 /src/brpc/src/butil/iobuf.cpp:1232
3970 34382 18 :

['logging::LogStream& logging::LogStream::operator<< (char const (&) [13])', 'logging::LogMessage::stream()', 'bvar::VarEntry* butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::seek , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&) const', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'std::enable_if ::type butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::erase , std::allocator >, false>(std::__cxx11::basic_string , std::allocator > const&, bvar::VarEntry*)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'std::__cxx11::basic_string , std::allocator >* logging::CheckEQImpl (unsigned long const&, unsigned long const&, char const*)', 'bvar::get_var_map(std::__cxx11::basic_string , std::allocator > const&)', 'std::lock_guard ::lock_guard(pthread_mutex_t&)', 'logging::LogMessage::LogMessage(char const*, int, char const*, std::__cxx11::basic_string , std::allocator >*)', 'logging::LogStream::SetCheck()', 'std::__cxx11::basic_string , std::allocator >::clear()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'std::lock_guard ::~lock_guard()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [2])', 'logging::LogStream& logging::LogStream::operator<< , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

3970 34382 bvar::Variable::hide() call site: 00000 /src/brpc/src/bvar/variable.cpp:188
131 137 6 :

['std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char const*)', 'std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char)', 'butil::BasicStringPiece , std::allocator > >::empty() const', 'butil::BasicStringPiece , std::allocator > >::operator[](unsigned long) const', 'butil::BasicStringPiece , std::allocator > >::size() const', 'logging::PrintLogPrefixAsJSON(std::ostream&, int, butil::BasicStringPiece , std::allocator > >, butil::BasicStringPiece , std::allocator > >, int, timeval)']

131 187 logging::PrintLog(std::ostream&,int,charconst*,int,charconst*,butil::BasicStringPiece ,std::allocator >>const&) call site: 00000 /src/brpc/src/butil/logging.cc:974
128 128 2 :

['butil::string_printf[abi:cxx11](char const*, ...)', 'std::__cxx11::basic_string , std::allocator >::operator=(std::__cxx11::basic_string , std::allocator >&&)']

168 168 brpc::AdaptiveMaxConcurrency::AdaptiveMaxConcurrency(int) call site: 00000 /src/brpc/src/brpc/adaptive_max_concurrency.cpp:38
68 72 5 :

['butil::SingleThreadedPool<56ul, 1024ul, 16ul, butil::PtAllocator>::back(void*)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::is_valid() const', 'butil::bit_array_clear(unsigned long*, unsigned long)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::destroy_element()', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::set_invalid()']

68 72 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::clear() call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:513
21 21 1 :

['butil::fast_rand_less_than(unsigned long)']

21 21 butil::IsIOBufProfilerSamplable() call site: 00000 /src/brpc/src/butil/iobuf_profiler.cpp:77
18 18 1 :

['butil::iobuf::acquire_blockref_array()']

18 5067 voidbutil::IOBuf::_push_or_move_back_ref_to_smallview (butil::IOBuf::BlockRefconst&) call site: 00000 /src/brpc/src/butil/iobuf.cpp:622
18 18 1 :

['butil::iobuf::acquire_blockref_array()']

18 5064 voidbutil::IOBuf::_push_or_move_back_ref_to_smallview (butil::IOBuf::BlockRefconst&) call site: 00000 /src/brpc/src/butil/iobuf.cpp:622
14 11402 9 :

['logging::LogMessage::stream()', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogStream::SetCheck()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogStream& logging::LogStream::operator<< (bthread_key_t const&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [42])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

14 11402 bthread::KeyTable::set_data(bthread_key_t,void*) call site: 00000 /src/brpc/src/bthread/key.cpp:198
12 12 1 :

['dlsym']

12 12 bthread::init_sys_mutex_lock() call site: 00000 /src/brpc/src/bthread/mutex.cpp:447
10 10 4 :

['logging::LogStream& logging::LogStream::operator<< (int const&)', 'logging::LogStream::SetCheck()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [12])']

10 11398 bvar::detail::AgentGroup ::Agent>::get_or_create_tls_agent(int) call site: 00000 /src/brpc/src/bvar/detail/agent_group.h:131

Runtime coverage analysis

Covered functions
1166
Functions that are reachable but not covered
2391
Reachable functions
3244
Percentage of reachable functions covered
26.29%
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/brpc/test/fuzzing/fuzz_sofa.cpp 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 30
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 195
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 32
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h 2
/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/bits/char_traits.h 4
/src/brpc/src/butil/iobuf_inl.h 11
/src/brpc/src/butil/iobuf.cpp 35
/src/brpc/src/butil/logging.cc 35
/src/brpc/src/butil/logging.h 102
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/sstream 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_ios.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/streambuf 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/sstream.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 100
/src/brpc/src/butil/debug/stack_trace_posix.cc 9
/src/brpc/src/butil/numerics/safe_conversions.h 1
/src/brpc/src/butil/numerics/safe_conversions_impl.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits 6
/src/brpc/src/butil/debug/stack_trace.cc 3
/src/brpc/src/butil/third_party/symbolize/symbolize.cc 25
/src/brpc/src/butil/third_party/symbolize/demangle.cc 63
/src/brpc/src/butil/containers/doubly_buffered_data.h 16
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h 40
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h 72
/src/brpc/src/butil/memory/singleton.h 8
/src/brpc/src/butil/atomicops_internals_x86_gcc.h 8
/src/brpc/src/butil/atomicops.h 103
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic 47
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_base.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h 382
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc 43
/src/brpc/src/bthread/mutex.cpp 23
/src/brpc/src/butil/scoped_lock.h 4
/src/brpc/src/bvar/collector.h 3
/src/brpc/src/butil/fast_rand.cpp 9
/src/brpc/src/butil/time.h 12
/src/brpc/src/bvar/collector.cpp 14
/src/brpc/src/butil/memory/singleton_on_pthread_once.h 9
/src/brpc/src/bvar/reducer.h 17
/src/brpc/src/bvar/variable.h 4
/src/brpc/src/bvar/variable.cpp 8
/src/brpc/src/butil/containers/flat_map_inl.h 85
/src/brpc/src/butil/containers/flat_map.h 106
/src/brpc/src/butil/single_threaded_pool.h 26
/src/brpc/src/butil/containers/optional.h 35
/src/brpc/src/butil/memory/scope_guard.h 28
/src/brpc/src/butil/memory/manual_constructor.h 40
/src/brpc/src/butil/memory/aligned_memory.h 23
/src/brpc/src/butil/bit_array.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h 84
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/alloc_traits.h 1
/src/brpc/src/butil/errno.cpp 2
/src/brpc/src/bthread/key.cpp 24
/src/brpc/src/butil/debug/stack_trace.h 1
/src/brpc/src/butil/object_pool.h 17
/src/brpc/src/butil/object_pool_inl.h 95
/src/brpc/src/butil/thread_local.cpp 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h 1
/src/brpc/src/butil/containers/linked_list.h 61
/src/brpc/src/bvar/detail/combiner.h 69
/src/brpc/src/bvar/detail/agent_group.h 36
/src/brpc/src/butil/synchronization/lock.h 10
/src/brpc/src/bvar/detail/call_op_returning_void.h 6
/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
/src/brpc/src/bthread/task_group.cpp 25
/src/brpc/src/bthread/task_group.h 13
/src/brpc/src/butil/thread_key.h 2
/src/brpc/src/butil/thread_key.cpp 4
/src/brpc/src/bthread/types.h 1
/src/brpc/src/butil/threading/platform_thread_linux.cc 1
/src/brpc/src/butil/threading/thread_id_name_manager.cc 3
/src/brpc/src/butil/memory/singleton.cc 1
/src/brpc/src/butil/threading/platform_thread_posix.cc 2
/src/brpc/src/bvar/passive_status.h 11
/src/brpc/src/butil/strings/string_piece.h 21
/src/brpc/src/bvar/window.h 19
/src/brpc/src/bvar/detail/sampler.h 14
/src/brpc/src/bvar/detail/sampler.cpp 11
/src/brpc/src/butil/containers/bounded_queue.h 33
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h 8
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_deque.h 51
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/deque.tcc 6
/src/brpc/src/butil/strings/string_piece.cc 9
/src/brpc/src/butil/debug/alias.cc 1
/src/brpc/src/butil/debug/debugger_posix.cc 3
/src/brpc/src/butil/iobuf_profiler.cpp 8
/src/brpc/src/butil/strings/string_number_conversions.cc 15
/src/brpc/src/butil/iobuf_profiler.h 8
/src/brpc/src/butil/threading/simple_thread.cc 3
/src/brpc/src/butil/threading/platform_thread.h 3
/src/brpc/src/butil/threading/simple_thread.h 3
/src/brpc/src/butil/synchronization/waitable_event_posix.cc 5
/src/brpc/src/butil/memory/ref_counted.h 8
/src/brpc/src/butil/memory/ref_counted.cc 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_list.h 9
/src/brpc/src/butil/atomic_ref_count.h 5
/src/brpc/src/butil/containers/mpsc_queue.h 8
/src/brpc/src/butil/hash.cc 1
/src/brpc/src/butil/third_party/superfasthash/superfasthash.c 1
/src/brpc/src/butil/containers/hash_tables.h 1
/src/brpc/src/butil/iobuf.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h 1
/src/brpc/src/butil/threading/thread_restrictions.h 2
/src/brpc/src/butil/threading/thread_restrictions.cc 1
/src/brpc/src/butil/lazy_instance.h 5
/src/brpc/src/butil/lazy_instance.cc 2
/src/brpc/src/butil/threading/thread_local.h 6
/src/brpc/src/butil/threading/thread_local_posix.cc 3
/src/brpc/src/butil/at_exit.cc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_stack.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/list.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/aligned_buffer.h 4
/src/brpc/src/brpc/policy/sofa_pbrpc_protocol.cpp 4
/src/brpc/src/brpc/parse_result.h 4
/src/brpc/src/brpc/socket.h 3
/src/brpc/src/butil/endpoint.cpp 6
/src/brpc/src/butil/details/extended_endpoint.hpp 9
/src/brpc/src/butil/resource_pool.h 18
/src/brpc/src/butil/resource_pool_inl.h 58
/src/brpc/src/butil/endpoint.h 2
/usr/include/x86_64-linux-gnu/bits/byteswap.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unordered_set.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable.h 8
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable_policy.h 13
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h 8
/src/brpc/src/brpc/policy/most_common_message.h 2
/src/brpc/src/brpc/input_message_base.h 1
/src/brpc/src/brpc/destroyable.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_ptr.h 27
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tuple 20
/src/brpc/src/brpc/input_messenger.cpp 1
/src/brpc/src/brpc/socket_id.h 1
/src/brpc/src/brpc/socket.cpp 4
/src/brpc/src/brpc/versioned_ref_with_id.h 17
/src/brpc/src/butil/shared_object.h 1
/src/brpc/src/brpc/socket_inl.h 2
/src/brpc/src/brpc/event_dispatcher.h 2
/src/brpc/src/brpc/event_dispatcher.cpp 4
/src/brpc/src/bvar/latency_recorder.h 5
/src/brpc/src/bvar/latency_recorder.cpp 17
/src/brpc/src/bvar/recorder.h 17
/src/brpc/src/bvar/detail/percentile.cpp 8
/src/brpc/src/bvar/detail/percentile.h 34
/src/brpc/src/bvar/vector.h 2
/src/brpc/src/brpc/event_dispatcher_epoll.cpp 5
/src/brpc/src/butil/fd_utility.cpp 1
/src/brpc/src/bthread/bthread.cpp 1
/src/brpc/src/bthread/task_group_inl.h 7
/src/brpc/src/bthread/butex.cpp 18
/src/brpc/src/bthread/errno.cpp 1
/src/brpc/src/bthread/sys_futex.h 2
/src/brpc/src/bthread/task_control.cpp 13
/src/brpc/src/bthread/task_control.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/array 4
/src/brpc/src/bthread/work_stealing_queue.h 7
/src/brpc/src/butil/compat.h 1
/src/brpc/src/bthread/parking_lot.h 6
/src/brpc/src/bthread/remote_task_queue.h 6
/src/brpc/src/bthread/stack_inl.h 20
/src/brpc/src/bthread/stack.h 3
/src/brpc/src/bthread/stack.cpp 1
/src/brpc/src/butil/third_party/dynamic_annotations/dynamic_annotations.c 2
/src/brpc/src/bthread/task_meta.h 5
/src/brpc/src/bthread/butex.h 1
/src/brpc/src/bthread/mutex.h 1
/src/brpc/src/butil/string_printf.cpp 3
/src/brpc/src/butil/macros.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward/hash_fun.h 1
/src/brpc/src/bthread/timer_thread.cpp 8
/src/brpc/src/bthread/id.cpp 11
/src/brpc/src/bthread/list_of_abafree_id.h 1
/src/brpc/src/brpc/authenticator.h 1

Fuzzer: fuzz_hulu

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 5116 84.9%
gold [1:9] 454 7.54%
yellow [10:29] 58 0.96%
greenyellow [30:49] 4 0.06%
lawngreen 50+ 389 6.46%
All colors 6021 100

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
16099 16099 5 :

['logging::LogStream& logging::LogStream::operator<< (char const (&) [14])', 'brpc::Socket::remote_side() const', 'logging::LogStream& logging::LogStream::operator<< (butil::EndPoint const&)', 'butil::EndPoint::~EndPoint()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [7])']

16099 27501 brpc::policy::ParseHuluMessage(butil::IOBuf*,brpc::Socket*,bool,voidconst*) call site: 00000 /src/brpc/src/brpc/policy/hulu_pbrpc_protocol.cpp:195
5127 5127 1 :

['butil::IOBuf::push_back(char)']

5127 5127 butil::IOBuf::append(voidconst*,unsignedlong) call site: 00000 /src/brpc/src/butil/iobuf.cpp:1232
3970 34382 18 :

['logging::LogStream& logging::LogStream::operator<< (char const (&) [13])', 'logging::LogMessage::stream()', 'bvar::VarEntry* butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::seek , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&) const', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'std::enable_if ::type butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::erase , std::allocator >, false>(std::__cxx11::basic_string , std::allocator > const&, bvar::VarEntry*)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'std::__cxx11::basic_string , std::allocator >* logging::CheckEQImpl (unsigned long const&, unsigned long const&, char const*)', 'bvar::get_var_map(std::__cxx11::basic_string , std::allocator > const&)', 'std::lock_guard ::lock_guard(pthread_mutex_t&)', 'logging::LogMessage::LogMessage(char const*, int, char const*, std::__cxx11::basic_string , std::allocator >*)', 'logging::LogStream::SetCheck()', 'std::__cxx11::basic_string , std::allocator >::clear()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'std::lock_guard ::~lock_guard()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [2])', 'logging::LogStream& logging::LogStream::operator<< , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

3970 34382 bvar::Variable::hide() call site: 00000 /src/brpc/src/bvar/variable.cpp:188
131 137 6 :

['std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char const*)', 'std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char)', 'butil::BasicStringPiece , std::allocator > >::empty() const', 'butil::BasicStringPiece , std::allocator > >::operator[](unsigned long) const', 'butil::BasicStringPiece , std::allocator > >::size() const', 'logging::PrintLogPrefixAsJSON(std::ostream&, int, butil::BasicStringPiece , std::allocator > >, butil::BasicStringPiece , std::allocator > >, int, timeval)']

131 187 logging::PrintLog(std::ostream&,int,charconst*,int,charconst*,butil::BasicStringPiece ,std::allocator >>const&) call site: 00000 /src/brpc/src/butil/logging.cc:974
128 128 2 :

['butil::string_printf[abi:cxx11](char const*, ...)', 'std::__cxx11::basic_string , std::allocator >::operator=(std::__cxx11::basic_string , std::allocator >&&)']

168 168 brpc::AdaptiveMaxConcurrency::AdaptiveMaxConcurrency(int) call site: 00000 /src/brpc/src/brpc/adaptive_max_concurrency.cpp:38
68 72 5 :

['butil::SingleThreadedPool<56ul, 1024ul, 16ul, butil::PtAllocator>::back(void*)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::is_valid() const', 'butil::bit_array_clear(unsigned long*, unsigned long)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::destroy_element()', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::set_invalid()']

68 72 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::clear() call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:513
21 21 1 :

['butil::fast_rand_less_than(unsigned long)']

21 21 butil::IsIOBufProfilerSamplable() call site: 00000 /src/brpc/src/butil/iobuf_profiler.cpp:77
18 10110 2 :

['butil::IOBuf::Block::dec_ref()', 'butil::iobuf::acquire_blockref_array()']

18 10110 voidbutil::IOBuf::_push_or_move_back_ref_to_smallview (butil::IOBuf::BlockRefconst&) call site: 00000 /src/brpc/src/butil/iobuf.cpp:615
18 18 1 :

['butil::iobuf::acquire_blockref_array()']

18 5067 voidbutil::IOBuf::_push_or_move_back_ref_to_smallview (butil::IOBuf::BlockRefconst&) call site: 00000 /src/brpc/src/butil/iobuf.cpp:622
14 11402 9 :

['logging::LogMessage::stream()', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogStream::SetCheck()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogStream& logging::LogStream::operator<< (bthread_key_t const&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [42])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

14 11402 bthread::KeyTable::set_data(bthread_key_t,void*) call site: 00000 /src/brpc/src/bthread/key.cpp:198
12 12 1 :

['dlsym']

12 12 bthread::init_sys_mutex_lock() call site: 00000 /src/brpc/src/bthread/mutex.cpp:447
10 11400 9 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (unsigned long const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [12])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [14])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

10 11400 butil::iobuf::create_block(unsignedlong) call site: 00000 /src/brpc/src/butil/iobuf.cpp:342

Runtime coverage analysis

Covered functions
1165
Functions that are reachable but not covered
2392
Reachable functions
3242
Percentage of reachable functions covered
26.22%
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/brpc/test/fuzzing/fuzz_hulu.cpp 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 30
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 195
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 32
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h 2
/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/bits/char_traits.h 4
/src/brpc/src/butil/iobuf_inl.h 11
/src/brpc/src/butil/iobuf.cpp 35
/src/brpc/src/butil/logging.cc 35
/src/brpc/src/butil/logging.h 102
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/sstream 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_ios.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/streambuf 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/sstream.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 100
/src/brpc/src/butil/debug/stack_trace_posix.cc 9
/src/brpc/src/butil/numerics/safe_conversions.h 1
/src/brpc/src/butil/numerics/safe_conversions_impl.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits 6
/src/brpc/src/butil/debug/stack_trace.cc 3
/src/brpc/src/butil/third_party/symbolize/symbolize.cc 25
/src/brpc/src/butil/third_party/symbolize/demangle.cc 63
/src/brpc/src/butil/containers/doubly_buffered_data.h 16
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h 40
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h 72
/src/brpc/src/butil/memory/singleton.h 8
/src/brpc/src/butil/atomicops_internals_x86_gcc.h 8
/src/brpc/src/butil/atomicops.h 103
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic 47
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_base.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h 382
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc 43
/src/brpc/src/bthread/mutex.cpp 23
/src/brpc/src/butil/scoped_lock.h 4
/src/brpc/src/bvar/collector.h 3
/src/brpc/src/butil/fast_rand.cpp 9
/src/brpc/src/butil/time.h 12
/src/brpc/src/bvar/collector.cpp 14
/src/brpc/src/butil/memory/singleton_on_pthread_once.h 9
/src/brpc/src/bvar/reducer.h 17
/src/brpc/src/bvar/variable.h 4
/src/brpc/src/bvar/variable.cpp 8
/src/brpc/src/butil/containers/flat_map_inl.h 85
/src/brpc/src/butil/containers/flat_map.h 106
/src/brpc/src/butil/single_threaded_pool.h 26
/src/brpc/src/butil/containers/optional.h 35
/src/brpc/src/butil/memory/scope_guard.h 28
/src/brpc/src/butil/memory/manual_constructor.h 40
/src/brpc/src/butil/memory/aligned_memory.h 23
/src/brpc/src/butil/bit_array.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h 84
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/alloc_traits.h 1
/src/brpc/src/butil/errno.cpp 2
/src/brpc/src/bthread/key.cpp 24
/src/brpc/src/butil/debug/stack_trace.h 1
/src/brpc/src/butil/object_pool.h 17
/src/brpc/src/butil/object_pool_inl.h 95
/src/brpc/src/butil/thread_local.cpp 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h 1
/src/brpc/src/butil/containers/linked_list.h 61
/src/brpc/src/bvar/detail/combiner.h 69
/src/brpc/src/bvar/detail/agent_group.h 36
/src/brpc/src/butil/synchronization/lock.h 10
/src/brpc/src/bvar/detail/call_op_returning_void.h 6
/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
/src/brpc/src/bthread/task_group.cpp 25
/src/brpc/src/bthread/task_group.h 13
/src/brpc/src/butil/thread_key.h 2
/src/brpc/src/butil/thread_key.cpp 4
/src/brpc/src/bthread/types.h 1
/src/brpc/src/butil/threading/platform_thread_linux.cc 1
/src/brpc/src/butil/threading/thread_id_name_manager.cc 3
/src/brpc/src/butil/memory/singleton.cc 1
/src/brpc/src/butil/threading/platform_thread_posix.cc 2
/src/brpc/src/bvar/passive_status.h 11
/src/brpc/src/butil/strings/string_piece.h 21
/src/brpc/src/bvar/window.h 19
/src/brpc/src/bvar/detail/sampler.h 14
/src/brpc/src/bvar/detail/sampler.cpp 11
/src/brpc/src/butil/containers/bounded_queue.h 33
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h 8
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_deque.h 51
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/deque.tcc 6
/src/brpc/src/butil/strings/string_piece.cc 9
/src/brpc/src/butil/debug/alias.cc 1
/src/brpc/src/butil/debug/debugger_posix.cc 3
/src/brpc/src/butil/iobuf_profiler.cpp 8
/src/brpc/src/butil/strings/string_number_conversions.cc 15
/src/brpc/src/butil/iobuf_profiler.h 8
/src/brpc/src/butil/threading/simple_thread.cc 3
/src/brpc/src/butil/threading/platform_thread.h 3
/src/brpc/src/butil/threading/simple_thread.h 3
/src/brpc/src/butil/synchronization/waitable_event_posix.cc 5
/src/brpc/src/butil/memory/ref_counted.h 8
/src/brpc/src/butil/memory/ref_counted.cc 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_list.h 9
/src/brpc/src/butil/atomic_ref_count.h 5
/src/brpc/src/butil/containers/mpsc_queue.h 8
/src/brpc/src/butil/hash.cc 1
/src/brpc/src/butil/third_party/superfasthash/superfasthash.c 1
/src/brpc/src/butil/containers/hash_tables.h 1
/src/brpc/src/butil/iobuf.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h 1
/src/brpc/src/butil/threading/thread_restrictions.h 2
/src/brpc/src/butil/threading/thread_restrictions.cc 1
/src/brpc/src/butil/lazy_instance.h 5
/src/brpc/src/butil/lazy_instance.cc 2
/src/brpc/src/butil/threading/thread_local.h 6
/src/brpc/src/butil/threading/thread_local_posix.cc 3
/src/brpc/src/butil/at_exit.cc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_stack.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/list.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/aligned_buffer.h 4
/src/brpc/src/brpc/policy/hulu_pbrpc_protocol.cpp 3
/src/brpc/src/brpc/parse_result.h 4
/src/brpc/src/brpc/socket.h 3
/src/brpc/src/butil/endpoint.cpp 6
/src/brpc/src/butil/details/extended_endpoint.hpp 9
/src/brpc/src/butil/resource_pool.h 18
/src/brpc/src/butil/resource_pool_inl.h 58
/src/brpc/src/butil/endpoint.h 2
/usr/include/x86_64-linux-gnu/bits/byteswap.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unordered_set.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable.h 8
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable_policy.h 13
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h 8
/src/brpc/src/brpc/policy/most_common_message.h 2
/src/brpc/src/brpc/input_message_base.h 1
/src/brpc/src/brpc/destroyable.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_ptr.h 27
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tuple 20
/src/brpc/src/brpc/input_messenger.cpp 1
/src/brpc/src/brpc/socket_id.h 1
/src/brpc/src/brpc/socket.cpp 4
/src/brpc/src/brpc/versioned_ref_with_id.h 17
/src/brpc/src/butil/shared_object.h 1
/src/brpc/src/brpc/socket_inl.h 2
/src/brpc/src/brpc/event_dispatcher.h 2
/src/brpc/src/brpc/event_dispatcher.cpp 4
/src/brpc/src/bvar/latency_recorder.h 5
/src/brpc/src/bvar/latency_recorder.cpp 17
/src/brpc/src/bvar/recorder.h 17
/src/brpc/src/bvar/detail/percentile.cpp 8
/src/brpc/src/bvar/detail/percentile.h 34
/src/brpc/src/bvar/vector.h 2
/src/brpc/src/brpc/event_dispatcher_epoll.cpp 5
/src/brpc/src/butil/fd_utility.cpp 1
/src/brpc/src/bthread/bthread.cpp 1
/src/brpc/src/bthread/task_group_inl.h 7
/src/brpc/src/bthread/butex.cpp 18
/src/brpc/src/bthread/errno.cpp 1
/src/brpc/src/bthread/sys_futex.h 2
/src/brpc/src/bthread/task_control.cpp 13
/src/brpc/src/bthread/task_control.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/array 4
/src/brpc/src/bthread/work_stealing_queue.h 7
/src/brpc/src/butil/compat.h 1
/src/brpc/src/bthread/parking_lot.h 6
/src/brpc/src/bthread/remote_task_queue.h 6
/src/brpc/src/bthread/stack_inl.h 20
/src/brpc/src/bthread/stack.h 3
/src/brpc/src/bthread/stack.cpp 1
/src/brpc/src/butil/third_party/dynamic_annotations/dynamic_annotations.c 2
/src/brpc/src/bthread/task_meta.h 5
/src/brpc/src/bthread/butex.h 1
/src/brpc/src/bthread/mutex.h 1
/src/brpc/src/butil/string_printf.cpp 3
/src/brpc/src/butil/macros.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward/hash_fun.h 1
/src/brpc/src/bthread/timer_thread.cpp 8
/src/brpc/src/bthread/id.cpp 11
/src/brpc/src/bthread/list_of_abafree_id.h 1
/src/brpc/src/brpc/authenticator.h 1

Fuzzer: fuzz_shead

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 4987 86.0%
gold [1:9] 412 7.10%
yellow [10:29] 56 0.96%
greenyellow [30:49] 8 0.13%
lawngreen 50+ 334 5.76%
All colors 5797 100

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
19154 34382 18 :

['logging::LogStream& logging::LogStream::operator<< (char const (&) [13])', 'logging::LogMessage::stream()', 'bvar::VarEntry* butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::seek , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&) const', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'std::enable_if ::type butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::erase , std::allocator >, false>(std::__cxx11::basic_string , std::allocator > const&, bvar::VarEntry*)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'std::__cxx11::basic_string , std::allocator >* logging::CheckEQImpl (unsigned long const&, unsigned long const&, char const*)', 'bvar::get_var_map(std::__cxx11::basic_string , std::allocator > const&)', 'std::lock_guard ::lock_guard(pthread_mutex_t&)', 'logging::LogMessage::LogMessage(char const*, int, char const*, std::__cxx11::basic_string , std::allocator >*)', 'logging::LogStream::SetCheck()', 'std::__cxx11::basic_string , std::allocator >::clear()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'std::lock_guard ::~lock_guard()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [2])', 'logging::LogStream& logging::LogStream::operator<< , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

19154 34382 bvar::Variable::hide() call site: 00000 /src/brpc/src/bvar/variable.cpp:188
11400 11400 9 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (unsigned long const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [12])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [14])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

11400 11400 butil::iobuf::create_block(unsignedlong) call site: 00000 /src/brpc/src/butil/iobuf.cpp:342
11396 11396 8 :

['logging::LogMessage::stream()', 'butil::optional , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::NewBucketsInfo>::optional(butil::nullopt_t)', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [20])']

11396 11438 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::new_buckets_and_thumbnail(unsignedlong,unsignedlong) call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:730
11392 11392 7 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [21])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

11392 11392 bvar::detail::AgentCombiner ::get_or_create_tls_agent() call site: 00000 /src/brpc/src/bvar/detail/combiner.h:307
11392 11392 7 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [21])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

11392 11392 bvar::Reducer ::operator<<(bvar::detail::Sampler*const&) call site: 00000 /src/brpc/src/bvar/reducer.h:191
5127 5127 1 :

['butil::IOBuf::push_back(char)']

5127 5127 butil::IOBuf::append(voidconst*,unsignedlong) call site: 00000 /src/brpc/src/butil/iobuf.cpp:1232
128 128 2 :

['butil::string_printf[abi:cxx11](char const*, ...)', 'std::__cxx11::basic_string , std::allocator >::operator=(std::__cxx11::basic_string , std::allocator >&&)']

168 168 brpc::AdaptiveMaxConcurrency::AdaptiveMaxConcurrency(int) call site: 00000 /src/brpc/src/brpc/adaptive_max_concurrency.cpp:38
68 72 5 :

['butil::SingleThreadedPool<56ul, 1024ul, 16ul, butil::PtAllocator>::back(void*)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::is_valid() const', 'butil::bit_array_clear(unsigned long*, unsigned long)', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::destroy_element()', 'butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::Bucket::set_invalid()']

68 72 butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::clear() call site: 00000 /src/brpc/src/butil/containers/flat_map_inl.h:513
21 21 1 :

['butil::fast_rand_less_than(unsigned long)']

21 21 butil::IsIOBufProfilerSamplable() call site: 00000 /src/brpc/src/butil/iobuf_profiler.cpp:77
18 10110 2 :

['butil::IOBuf::Block::dec_ref()', 'butil::iobuf::acquire_blockref_array()']

18 10110 voidbutil::IOBuf::_push_or_move_back_ref_to_smallview (butil::IOBuf::BlockRefconst&) call site: 00000 /src/brpc/src/butil/iobuf.cpp:615
18 18 1 :

['butil::iobuf::acquire_blockref_array()']

18 5067 voidbutil::IOBuf::_push_or_move_back_ref_to_smallview (butil::IOBuf::BlockRefconst&) call site: 00000 /src/brpc/src/butil/iobuf.cpp:622
12 12 1 :

['dlsym']

12 12 bthread::init_sys_mutex_lock() call site: 00000 /src/brpc/src/bthread/mutex.cpp:447

Runtime coverage analysis

Covered functions
1100
Functions that are reachable but not covered
2302
Reachable functions
3039
Percentage of reachable functions covered
24.25%
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/brpc/test/fuzzing/fuzz_shead.cpp 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h 28
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h 186
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 32
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h 1
/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/bits/char_traits.h 4
/src/brpc/src/butil/iobuf_inl.h 11
/src/brpc/src/butil/iobuf.cpp 33
/src/brpc/src/butil/logging.cc 35
/src/brpc/src/butil/logging.h 99
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/sstream 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_ios.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/streambuf 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/sstream.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 95
/src/brpc/src/butil/debug/stack_trace_posix.cc 9
/src/brpc/src/butil/numerics/safe_conversions.h 1
/src/brpc/src/butil/numerics/safe_conversions_impl.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits 6
/src/brpc/src/butil/debug/stack_trace.cc 3
/src/brpc/src/butil/third_party/symbolize/symbolize.cc 25
/src/brpc/src/butil/third_party/symbolize/demangle.cc 63
/src/brpc/src/butil/containers/doubly_buffered_data.h 16
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h 40
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h 72
/src/brpc/src/butil/memory/singleton.h 8
/src/brpc/src/butil/atomicops_internals_x86_gcc.h 8
/src/brpc/src/butil/atomicops.h 98
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic 46
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_base.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h 368
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc 41
/src/brpc/src/bthread/mutex.cpp 23
/src/brpc/src/butil/scoped_lock.h 4
/src/brpc/src/bvar/collector.h 3
/src/brpc/src/butil/fast_rand.cpp 9
/src/brpc/src/butil/time.h 12
/src/brpc/src/bvar/collector.cpp 14
/src/brpc/src/butil/memory/singleton_on_pthread_once.h 6
/src/brpc/src/bvar/reducer.h 17
/src/brpc/src/bvar/variable.h 4
/src/brpc/src/bvar/variable.cpp 8
/src/brpc/src/butil/containers/flat_map_inl.h 85
/src/brpc/src/butil/containers/flat_map.h 106
/src/brpc/src/butil/single_threaded_pool.h 26
/src/brpc/src/butil/containers/optional.h 35
/src/brpc/src/butil/memory/scope_guard.h 28
/src/brpc/src/butil/memory/manual_constructor.h 40
/src/brpc/src/butil/memory/aligned_memory.h 23
/src/brpc/src/butil/bit_array.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h 81
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/alloc_traits.h 1
/src/brpc/src/butil/errno.cpp 2
/src/brpc/src/bthread/key.cpp 24
/src/brpc/src/butil/debug/stack_trace.h 1
/src/brpc/src/butil/object_pool.h 17
/src/brpc/src/butil/object_pool_inl.h 95
/src/brpc/src/butil/thread_local.cpp 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h 1
/src/brpc/src/butil/containers/linked_list.h 61
/src/brpc/src/bvar/detail/combiner.h 69
/src/brpc/src/bvar/detail/agent_group.h 36
/src/brpc/src/butil/synchronization/lock.h 10
/src/brpc/src/bvar/detail/call_op_returning_void.h 6
/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 1
/src/brpc/src/bthread/task_group.cpp 25
/src/brpc/src/bthread/task_group.h 13
/src/brpc/src/butil/thread_key.h 2
/src/brpc/src/butil/thread_key.cpp 4
/src/brpc/src/bthread/types.h 1
/src/brpc/src/butil/threading/platform_thread_linux.cc 1
/src/brpc/src/butil/threading/thread_id_name_manager.cc 3
/src/brpc/src/butil/memory/singleton.cc 1
/src/brpc/src/butil/threading/platform_thread_posix.cc 2
/src/brpc/src/bvar/passive_status.h 11
/src/brpc/src/butil/strings/string_piece.h 21
/src/brpc/src/bvar/window.h 19
/src/brpc/src/bvar/detail/sampler.h 14
/src/brpc/src/bvar/detail/sampler.cpp 11
/src/brpc/src/butil/containers/bounded_queue.h 33
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_deque.h 51
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/deque.tcc 6
/src/brpc/src/butil/strings/string_piece.cc 9
/src/brpc/src/butil/debug/alias.cc 1
/src/brpc/src/butil/debug/debugger_posix.cc 3
/src/brpc/src/butil/iobuf_profiler.cpp 8
/src/brpc/src/butil/strings/string_number_conversions.cc 15
/src/brpc/src/butil/iobuf_profiler.h 8
/src/brpc/src/butil/threading/simple_thread.cc 3
/src/brpc/src/butil/threading/platform_thread.h 3
/src/brpc/src/butil/threading/simple_thread.h 3
/src/brpc/src/butil/synchronization/waitable_event_posix.cc 5
/src/brpc/src/butil/memory/ref_counted.h 8
/src/brpc/src/butil/memory/ref_counted.cc 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_list.h 9
/src/brpc/src/butil/atomic_ref_count.h 5
/src/brpc/src/butil/containers/mpsc_queue.h 8
/src/brpc/src/butil/hash.cc 1
/src/brpc/src/butil/third_party/superfasthash/superfasthash.c 1
/src/brpc/src/butil/containers/hash_tables.h 1
/src/brpc/src/butil/iobuf.h 5
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h 1
/src/brpc/src/butil/threading/thread_restrictions.h 2
/src/brpc/src/butil/threading/thread_restrictions.cc 1
/src/brpc/src/butil/lazy_instance.h 5
/src/brpc/src/butil/lazy_instance.cc 2
/src/brpc/src/butil/threading/thread_local.h 6
/src/brpc/src/butil/threading/thread_local_posix.cc 3
/src/brpc/src/butil/at_exit.cc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_stack.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/list.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/aligned_buffer.h 2
/src/brpc/src/brpc/policy/nshead_protocol.cpp 1
/src/brpc/src/brpc/parse_result.h 4
/src/brpc/src/brpc/policy/most_common_message.h 2
/src/brpc/src/brpc/input_message_base.h 1
/src/brpc/src/brpc/destroyable.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_ptr.h 27
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tuple 20
/src/brpc/src/brpc/socket.h 2
/src/brpc/src/brpc/input_messenger.cpp 1
/src/brpc/src/brpc/socket_id.h 1
/src/brpc/src/brpc/socket.cpp 4
/src/brpc/src/brpc/versioned_ref_with_id.h 17
/src/brpc/src/butil/shared_object.h 1
/src/brpc/src/brpc/socket_inl.h 2
/src/brpc/src/brpc/event_dispatcher.h 2
/src/brpc/src/brpc/event_dispatcher.cpp 4
/src/brpc/src/bvar/latency_recorder.h 5
/src/brpc/src/bvar/latency_recorder.cpp 17
/src/brpc/src/bvar/recorder.h 17
/src/brpc/src/bvar/detail/percentile.cpp 8
/src/brpc/src/bvar/detail/percentile.h 34
/src/brpc/src/bvar/vector.h 2
/src/brpc/src/brpc/event_dispatcher_epoll.cpp 5
/src/brpc/src/butil/fd_utility.cpp 1
/src/brpc/src/bthread/bthread.cpp 1
/src/brpc/src/bthread/task_group_inl.h 7
/src/brpc/src/butil/resource_pool.h 15
/src/brpc/src/butil/resource_pool_inl.h 49
/src/brpc/src/bthread/butex.cpp 18
/src/brpc/src/bthread/errno.cpp 1
/src/brpc/src/bthread/sys_futex.h 2
/src/brpc/src/bthread/task_control.cpp 13
/src/brpc/src/bthread/task_control.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/array 4
/src/brpc/src/bthread/work_stealing_queue.h 7
/src/brpc/src/butil/compat.h 1
/src/brpc/src/bthread/parking_lot.h 6
/src/brpc/src/bthread/remote_task_queue.h 6
/src/brpc/src/bthread/stack_inl.h 20
/src/brpc/src/bthread/stack.h 3
/src/brpc/src/bthread/stack.cpp 1
/src/brpc/src/butil/third_party/dynamic_annotations/dynamic_annotations.c 2
/src/brpc/src/bthread/task_meta.h 5
/src/brpc/src/bthread/butex.h 1
/src/brpc/src/bthread/mutex.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h 4
/src/brpc/src/butil/string_printf.cpp 3
/src/brpc/src/butil/macros.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward/hash_fun.h 1
/src/brpc/src/bthread/timer_thread.cpp 8
/src/brpc/src/bthread/id.cpp 11
/src/brpc/src/bthread/list_of_abafree_id.h 1
/src/brpc/src/brpc/authenticator.h 1

Fuzzer: fuzz_http

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 2418 75.3%
gold [1:9] 263 8.19%
yellow [10:29] 44 1.37%
greenyellow [30:49] 21 0.65%
lawngreen 50+ 463 14.4%
All colors 3209 100

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
24639 39840 9 :

['std::unique_lock ::unlock()', 'brpc::HttpMessage::UnlockAndFlushToBodyReader(std::unique_lock &)', 'butil::IOBuf::size() const', 'std::unique_lock ::~unique_lock()', 'std::unique_lock ::unique_lock(butil::Mutex&)', 'butil::Status::ok() const', 'std::unique_lock ::lock()', 'butil::Status::~Status()', 'bthread_usleep']

24639 44978 brpc::HttpMessage::OnBody(charconst*,unsignedlong) call site: 00000 /src/brpc/src/brpc/details/http_message.cpp:283
16515 24118 7 :

['std::unique_lock ::unique_lock(butil::Mutex&)', 'butil::Status::Status()', 'std::unique_lock ::lock()', 'std::unique_lock ::unlock()', 'butil::Status::~Status()', 'brpc::HttpMessage::UnlockAndFlushToBodyReader(std::unique_lock &)', 'std::unique_lock ::~unique_lock()']

16515 24118 brpc::HttpMessage::OnMessageComplete() call site: 00000 /src/brpc/src/brpc/details/http_message.cpp:339
3970 34382 18 :

['logging::LogStream& logging::LogStream::operator<< (char const (&) [13])', 'logging::LogMessage::stream()', 'bvar::VarEntry* butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::seek , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&) const', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'std::enable_if ::type butil::FlatMap , std::allocator >, bvar::VarEntry, butil::DefaultHasher , std::allocator > >, butil::DefaultEqualTo , std::allocator > >, false, butil::PtAllocator, false>::erase , std::allocator >, false>(std::__cxx11::basic_string , std::allocator > const&, bvar::VarEntry*)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'std::__cxx11::basic_string , std::allocator >* logging::CheckEQImpl (unsigned long const&, unsigned long const&, char const*)', 'bvar::get_var_map(std::__cxx11::basic_string , std::allocator > const&)', 'std::lock_guard ::lock_guard(pthread_mutex_t&)', 'logging::LogMessage::LogMessage(char const*, int, char const*, std::__cxx11::basic_string , std::allocator >*)', 'logging::LogStream::SetCheck()', 'std::__cxx11::basic_string , std::allocator >::clear()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'std::lock_guard ::~lock_guard()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [2])', 'logging::LogStream& logging::LogStream::operator<< , std::allocator > >(std::__cxx11::basic_string , std::allocator > const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

3970 34382 bvar::Variable::hide() call site: 00000 /src/brpc/src/bvar/variable.cpp:188
161 11584 22 :

['logging::LogMessage::stream()', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'std::ostream::write(char const*, long)', 'logging::GetMinLogLevel()', 'butil::IOBufBuilder::buf()', 'std::unique_ptr >::reset(butil::IOBufBuilder*)', 'std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char const*)', 'unsigned long const& std::min (unsigned long const&, unsigned long const&)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'brpc::HttpMessage::header()', 'butil::ToPrintableString[abi:cxx11](void const*, unsigned long, unsigned long)', 'std::numeric_limits ::max()', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'std::__cxx11::basic_string , std::allocator >::data() const', 'std::__cxx11::basic_string , std::allocator >::size() const', 'logging::LogStream& logging::LogStream::operator<< (butil::IOBuf const&)', 'logging::LogStream& logging::LogStream::operator<< (char const&)', 'std::unique_ptr >::operator->() const', 'std::__cxx11::basic_string , std::allocator >::~basic_string()', 'std::unique_ptr >::operator*() const', 'brpc::HttpHeader::status_code() const']

24800 66788 brpc::HttpMessage::OnBody(charconst*,unsignedlong) call site: 00000 /src/brpc/src/brpc/details/http_message.cpp:257
128 128 2 :

['butil::string_printf[abi:cxx11](char const*, ...)', 'std::__cxx11::basic_string , std::allocator >::operator=(std::__cxx11::basic_string , std::allocator >&&)']

168 168 brpc::AdaptiveMaxConcurrency::AdaptiveMaxConcurrency(int) call site: 00000 /src/brpc/src/brpc/adaptive_max_concurrency.cpp:38
127 137 6 :

['std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char const*)', 'std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char)', 'butil::BasicStringPiece , std::allocator > >::empty() const', 'butil::BasicStringPiece , std::allocator > >::operator[](unsigned long) const', 'butil::BasicStringPiece , std::allocator > >::size() const', 'logging::PrintLogPrefixAsJSON(std::ostream&, int, butil::BasicStringPiece , std::allocator > >, butil::BasicStringPiece , std::allocator > >, int, timeval)']

127 187 logging::PrintLog(std::ostream&,int,charconst*,int,charconst*,butil::BasicStringPiece ,std::allocator >>const&) call site: 00000 /src/brpc/src/butil/logging.cc:974
22 11443 14 :

['std::unique_ptr >::reset(butil::IOBufBuilder*)', 'std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char const*)', 'std::ostream::operator<<(unsigned long)', 'logging::LogMessage::stream()', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'std::unique_ptr >::operator->() const', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'std::unique_ptr >::operator*() const', 'logging::LogStream& logging::LogStream::operator<< (butil::IOBuf const&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()', 'butil::IOBufBuilder::buf()', 'logging::LogStream& logging::LogStream::operator<< (char const&)']

16537 35573 brpc::HttpMessage::OnMessageComplete() call site: 00000 /src/brpc/src/brpc/details/http_message.cpp:329
21 21 1 :

['butil::fast_rand_less_than(unsigned long)']

21 21 butil::IsIOBufProfilerSamplable() call site: 00000 /src/brpc/src/butil/iobuf_profiler.cpp:77
12 11402 9 :

['logging::LogMessage::stream()', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogStream::SetCheck()', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogStream& logging::LogStream::operator<< (bthread_key_t const&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [42])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])']

12 11402 bthread::KeyTable::set_data(bthread_key_t,void*) call site: 00000 /src/brpc/src/bthread/key.cpp:198
12 12 1 :

['dlsym']

12 12 bthread::init_sys_mutex_lock() call site: 00000 /src/brpc/src/bthread/mutex.cpp:447
10 11400 9 :

['logging::LogMessage::stream()', 'logging::LogStream& logging::LogStream::operator<< (unsigned long const&)', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [12])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [14])', 'logging::LogMessage::LogMessage(char const*, int, char const*, int)', 'logging::LogMessageVoidify::operator&(std::ostream&)', 'logging::LogMessageVoidify::LogMessageVoidify()', 'logging::LogMessage::~LogMessage()', 'logging::GetMinLogLevel()']

10 11400 butil::iobuf::create_block(unsignedlong) call site: 00000 /src/brpc/src/butil/iobuf.cpp:342
10 10 4 :

['logging::LogStream& logging::LogStream::operator<< (int const&)', 'logging::LogStream::SetCheck()', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [22])', 'logging::LogStream& logging::LogStream::operator<< (char const (&) [12])']

10 11398 bvar::detail::AgentGroup ::Agent>::get_or_create_tls_agent(int) call site: 00000 /src/brpc/src/bvar/detail/agent_group.h:131

Runtime coverage analysis

Covered functions
1278
Functions that are reachable but not covered
2173
Reachable functions
3094
Percentage of reachable functions covered
29.77%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/brpc/test/fuzzing/fuzz_http.cpp 1
/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 83
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h 30
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h 1
/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/bits/char_traits.h 3
/src/brpc/src/butil/iobuf_inl.h 9
/src/brpc/src/butil/iobuf.cpp 25
/src/brpc/src/butil/logging.cc 35
/src/brpc/src/butil/logging.h 72
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/sstream 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_ios.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream 8
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/streambuf 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/sstream.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h 42
/src/brpc/src/butil/debug/stack_trace_posix.cc 9
/src/brpc/src/butil/numerics/safe_conversions.h 1
/src/brpc/src/butil/numerics/safe_conversions_impl.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits 5
/src/brpc/src/butil/debug/stack_trace.cc 3
/src/brpc/src/butil/third_party/symbolize/symbolize.cc 25
/src/brpc/src/butil/third_party/symbolize/demangle.cc 63
/src/brpc/src/butil/containers/doubly_buffered_data.h 16
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h 18
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h 40
/src/brpc/src/butil/memory/singleton.h 8
/src/brpc/src/butil/atomicops_internals_x86_gcc.h 8
/src/brpc/src/butil/atomicops.h 28
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic 13
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_base.h 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h 148
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc 18
/src/brpc/src/bthread/mutex.cpp 12
/src/brpc/src/butil/scoped_lock.h 2
/src/brpc/src/bvar/collector.h 3
/src/brpc/src/butil/fast_rand.cpp 7
/src/brpc/src/butil/time.h 7
/src/brpc/src/bvar/collector.cpp 14
/src/brpc/src/butil/memory/singleton_on_pthread_once.h 6
/src/brpc/src/bvar/reducer.h 8
/src/brpc/src/bvar/variable.h 2
/src/brpc/src/bvar/variable.cpp 8
/src/brpc/src/butil/containers/flat_map_inl.h 75
/src/brpc/src/butil/containers/flat_map.h 101
/src/brpc/src/butil/single_threaded_pool.h 25
/src/brpc/src/butil/containers/optional.h 28
/src/brpc/src/butil/memory/scope_guard.h 24
/src/brpc/src/butil/memory/manual_constructor.h 35
/src/brpc/src/butil/memory/aligned_memory.h 19
/src/brpc/src/butil/bit_array.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h 38
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/alloc_traits.h 1
/src/brpc/src/butil/errno.cpp 2
/src/brpc/src/bthread/key.cpp 21
/src/brpc/src/butil/debug/stack_trace.h 1
/src/brpc/src/butil/object_pool.h 5
/src/brpc/src/butil/object_pool_inl.h 24
/src/brpc/src/butil/thread_local.cpp 10
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h 2
/src/brpc/src/butil/containers/linked_list.h 27
/src/brpc/src/bvar/detail/combiner.h 26
/src/brpc/src/bvar/detail/agent_group.h 12
/src/brpc/src/butil/synchronization/lock.h 10
/src/brpc/src/bvar/detail/call_op_returning_void.h 2
/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 1
/src/brpc/src/bthread/task_group.cpp 1
/src/brpc/src/bthread/task_group.h 1
/src/brpc/src/butil/thread_key.h 2
/src/brpc/src/butil/thread_key.cpp 4
/src/brpc/src/bthread/types.h 1
/src/brpc/src/butil/threading/platform_thread_linux.cc 1
/src/brpc/src/butil/threading/thread_id_name_manager.cc 3
/src/brpc/src/butil/memory/singleton.cc 1
/src/brpc/src/butil/threading/platform_thread_posix.cc 2
/src/brpc/src/bvar/passive_status.h 7
/src/brpc/src/butil/strings/string_piece.h 18
/src/brpc/src/bvar/window.h 6
/src/brpc/src/bvar/detail/sampler.h 4
/src/brpc/src/bvar/detail/sampler.cpp 11
/src/brpc/src/butil/containers/bounded_queue.h 8
/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/bits/stl_tree.h 2
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_deque.h 26
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/deque.tcc 4
/src/brpc/src/butil/strings/string_piece.cc 9
/src/brpc/src/butil/debug/alias.cc 1
/src/brpc/src/butil/debug/debugger_posix.cc 3
/src/brpc/src/butil/iobuf_profiler.cpp 8
/src/brpc/src/butil/strings/string_number_conversions.cc 15
/src/brpc/src/butil/iobuf_profiler.h 8
/src/brpc/src/butil/threading/simple_thread.cc 3
/src/brpc/src/butil/threading/platform_thread.h 3
/src/brpc/src/butil/threading/simple_thread.h 3
/src/brpc/src/butil/synchronization/waitable_event_posix.cc 5
/src/brpc/src/butil/memory/ref_counted.h 8
/src/brpc/src/butil/memory/ref_counted.cc 4
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_list.h 9
/src/brpc/src/butil/atomic_ref_count.h 5
/src/brpc/src/butil/containers/mpsc_queue.h 8
/src/brpc/src/butil/hash.cc 1
/src/brpc/src/butil/third_party/superfasthash/superfasthash.c 1
/src/brpc/src/butil/containers/hash_tables.h 1
/src/brpc/src/butil/iobuf.h 6
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h 1
/src/brpc/src/butil/threading/thread_restrictions.h 2
/src/brpc/src/butil/threading/thread_restrictions.cc 1
/src/brpc/src/butil/lazy_instance.h 5
/src/brpc/src/butil/lazy_instance.cc 2
/src/brpc/src/butil/threading/thread_local.h 6
/src/brpc/src/butil/threading/thread_local_posix.cc 3
/src/brpc/src/butil/at_exit.cc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_stack.h 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/list.tcc 1
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/aligned_buffer.h 2
/src/brpc/src/brpc/details/http_message.cpp 7
/src/brpc/src/brpc/http_header.cpp 1
/src/brpc/src/butil/containers/case_ignored_flat_map.h 1
/src/brpc/src/brpc/uri.cpp 2
/src/brpc/src/butil/status.h 4
/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
/src/brpc/src/brpc/details/http_parser.cpp 9
/src/brpc/src/brpc/http_header.h 1
/src/brpc/src/brpc/details/http_message.h 1
/src/brpc/src/brpc/http_method.cpp 2
/src/brpc/src/butil/string_printf.cpp 3
/src/brpc/src/butil/binary_printer.h 2
/src/brpc/src/butil/binary_printer.cpp 9
/src/brpc/src/butil/status.cpp 2

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/brpc/test/fuzzing/fuzz_butil.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=['butil::internal::GetRangeConstraint(int)', 'bvar::detail::AgentCombiner::reset_all_agents()', 'bvar::detail::AgentCombiner::get_or_create_tls_agent()', 'DefaultSingletonTraits::New()', 'butil::detail::ThreadExitHelper::add(void (*)(void*), void*)', 'bvar::Variable::expose(butil::BasicStringPiece, std::allocator > > const&, bvar::DisplayFilter)', 'bvar::VarEntry* butil::FlatMap, std::allocator >, bvar::VarEntry, butil::DefaultHasher, std::allocator > >, butil::DefaultEqualTo, std::allocator > >, false, butil::PtAllocator, false>::seek, std::allocator > >(std::__cxx11::basic_string, std::allocator > const&) const', 'butil::Hash(char const*, unsigned long)', 'butil::PlatformThread::SetName(char const*)', 'pthread_mutex_lock']

/src/brpc/test/fuzzing/fuzz_json.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=['butil::rapidjson::GenericReader, butil::rapidjson::UTF8, butil::rapidjson::CrtAllocator>::NumberStream >, false>::Tell()', 'json2pb::JsonValueToProtoMessage(butil::rapidjson::GenericValue, butil::rapidjson::MemoryPoolAllocator > const&, google::protobuf::Message*, json2pb::Json2PbOptions const&, std::__cxx11::basic_string, std::allocator >*, bool)', 'butil::rapidjson::GenericDocument, butil::rapidjson::MemoryPoolAllocator, butil::rapidjson::CrtAllocator>::StartArray()', 'butil::rapidjson::GenericValue, butil::rapidjson::MemoryPoolAllocator >::SetArrayRaw(butil::rapidjson::GenericValue, butil::rapidjson::MemoryPoolAllocator >*, unsigned int, butil::rapidjson::MemoryPoolAllocator&)', 'butil::rapidjson::GenericDocument, butil::rapidjson::MemoryPoolAllocator, butil::rapidjson::CrtAllocator>::Bool(bool)', 'butil::rapidjson::GenericValue, butil::rapidjson::MemoryPoolAllocator >::SetObjectRaw(butil::rapidjson::GenericMember, butil::rapidjson::MemoryPoolAllocator >*, unsigned int, butil::rapidjson::MemoryPoolAllocator&)', 'json2pb::JsonValueToProtoMessage(butil::rapidjson::GenericValue, butil::rapidjson::MemoryPoolAllocator > const&, google::protobuf::Message*, json2pb::Json2PbOptions const&, std::__cxx11::basic_string, std::allocator >*, bool)', 'json2pb::JsonValueToProtoField(butil::rapidjson::GenericValue, butil::rapidjson::MemoryPoolAllocator > const&, google::protobuf::FieldDescriptor const*, google::protobuf::Message*, json2pb::Json2PbOptions const&, std::__cxx11::basic_string, std::allocator >*)', 'LLVMFuzzerTestOneInput', 'butil::rapidjson::GenericDocument, butil::rapidjson::MemoryPoolAllocator, butil::rapidjson::CrtAllocator>::Null()']

/src/brpc/test/fuzzing/fuzz_hpack.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=['butil::ManualConstructor::get()', 'bthread_getspecific', 'bvar::detail::AgentCombiner::reset_all_agents()', 'bvar::VarEntry* butil::FlatMap, std::allocator >, bvar::VarEntry, butil::DefaultHasher, std::allocator > >, butil::DefaultEqualTo, std::allocator > >, false, butil::PtAllocator, false>::seek, std::allocator > >(std::__cxx11::basic_string, std::allocator > const&) const', 'DefaultSingletonTraits::New()', 'butil::InitGlobalIOBufProfilerInfo()', 'butil::static_atomic*>::load(std::memory_order)', 'unsigned long* butil::FlatMap, std::allocator >, unsigned long, butil::CaseIgnoredHasher, butil::CaseIgnoredEqual, false, butil::PtAllocator, false>::seek, std::allocator > >(std::__cxx11::basic_string, std::allocator > const&) const', 'logging::LogStream::FlushWithoutReset()', 'butil::BoundedQueue >::clear()']

/src/brpc/test/fuzzing/fuzz_redis.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=['butil::ManualConstructor::get()', 'bthread_getspecific', 'bvar::detail::AgentCombiner::reset_all_agents()', 'butil::detail::ThreadExitHelper::add(void (*)(void*), void*)', 'butil::InitGlobalIOBufProfilerInfo()', 'DefaultSingletonTraits::New()', 'bvar::Variable::expose(butil::BasicStringPiece, std::allocator > > const&, bvar::DisplayFilter)', 'butil::static_atomic*>::load(std::memory_order)', 'bvar::VarEntry* butil::FlatMap, std::allocator >, bvar::VarEntry, butil::DefaultHasher, std::allocator > >, butil::DefaultEqualTo, std::allocator > >, false, butil::PtAllocator, false>::seek, std::allocator > >(std::__cxx11::basic_string, std::allocator > const&) const', 'logging::CreateLogStream(char const*, int, char const*, int)']

/src/brpc/test/fuzzing/fuzz_uri.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=['brpc::is_valid_char(char)', 'LLVMFuzzerTestOneInput', 'brpc::URI::URI()', 'butil::ManualConstructor, std::allocator >, std::__cxx11::basic_string, std::allocator > > >::Destroy()', 'brpc::URI::Clear()', 'brpc::URI::Clear()', 'butil::Status::set_errorv(int, char const*, __va_list_tag*)', 'brpc::URI::SetHttpURL(char const*)', 'butil::FlatMap, std::allocator >, std::__cxx11::basic_string, std::allocator >, butil::DefaultHasher, std::allocator > >, butil::DefaultEqualTo, std::allocator > >, false, butil::PtAllocator, false>::get_allocator()']

/src/brpc/test/fuzzing/fuzz_esp.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=['butil::internal::GetRangeConstraint(int)', 'bvar::detail::AgentCombiner::reset_all_agents()', 'butil::LinkedList::Agent>::head() const', 'butil::ResourcePool::add_block_group(unsigned long)', 'butil::static_atomic::BlockGroup*>::load(std::memory_order)', 'butil::static_atomic::BlockGroup*>::load(std::memory_order)', 'bvar::detail::AgentCombiner::get_or_create_tls_agent()', 'butil::ManualConstructor::get()', 'butil::static_atomic::BlockGroup*>::store(butil::ResourcePool::BlockGroup*, std::memory_order)', 'butil::LinkedList, bvar::detail::PercentileSamples<30ul>, bvar::detail::Percentile::AddPercentileSamples>::Agent>::Append(butil::LinkNode, bvar::detail::PercentileSamples<30ul>, bvar::detail::Percentile::AddPercentileSamples>::Agent>*)']

/src/brpc/test/fuzzing/fuzz_sofa.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=['logging::LogMessage::~LogMessage()', 'butil::LinkedList::Agent>::head() const', 'butil::ResourcePool::add_block_group(unsigned long)', 'butil::static_atomic::BlockGroup*>::load(std::memory_order)', 'butil::static_atomic::BlockGroup*>::load(std::memory_order)', 'butil::ManualConstructor::get()', 'bthread_getspecific', 'butil::static_atomic::BlockGroup*>::store(butil::ResourcePool::BlockGroup*, std::memory_order)', 'butil::LinkedList, bvar::detail::PercentileSamples<30ul>, bvar::detail::Percentile::AddPercentileSamples>::Agent>::Append(butil::LinkNode, bvar::detail::PercentileSamples<30ul>, bvar::detail::Percentile::AddPercentileSamples>::Agent>*)', 'butil::operator<<(std::ostream&, butil::BasicStringPiece, std::allocator > > const&)']

/src/brpc/test/fuzzing/fuzz_hulu.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=['logging::LogMessage::~LogMessage()', 'butil::LinkedList::Agent>::head() const', 'butil::ResourcePool::add_block_group(unsigned long)', 'butil::static_atomic::BlockGroup*>::load(std::memory_order)', 'butil::static_atomic::BlockGroup*>::load(std::memory_order)', 'butil::ManualConstructor::get()', 'butil::static_atomic::BlockGroup*>::store(butil::ResourcePool::BlockGroup*, std::memory_order)', 'bthread_getspecific', 'butil::LinkedList, bvar::detail::PercentileSamples<30ul>, bvar::detail::Percentile::AddPercentileSamples>::Agent>::Append(butil::LinkNode, bvar::detail::PercentileSamples<30ul>, bvar::detail::Percentile::AddPercentileSamples>::Agent>*)', 'butil::operator<<(std::ostream&, butil::BasicStringPiece, std::allocator > > const&)']

/src/brpc/test/fuzzing/fuzz_shead.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=['butil::internal::GetRangeConstraint(int)', 'bvar::detail::AgentCombiner::reset_all_agents()', 'butil::LinkedList::Agent>::head() const', 'butil::static_atomic::BlockGroup*>::load(std::memory_order)', 'butil::static_atomic::BlockGroup*>::load(std::memory_order)', 'bvar::detail::AgentCombiner::get_or_create_tls_agent()', 'butil::ResourcePool::add_block_group(unsigned long)', 'butil::ManualConstructor::get()', 'butil::static_atomic::BlockGroup*>::store(butil::ResourcePool::BlockGroup*, std::memory_order)', 'butil::LinkedList, bvar::detail::PercentileSamples<30ul>, bvar::detail::Percentile::AddPercentileSamples>::Agent>::Append(butil::LinkNode, bvar::detail::PercentileSamples<30ul>, bvar::detail::Percentile::AddPercentileSamples>::Agent>*)']

/src/brpc/test/fuzzing/fuzz_http.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=['logging::LogMessage::~LogMessage()', 'butil::ManualConstructor::get()', 'bthread_getspecific', 'bvar::detail::AgentCombiner::reset_all_agents()', 'brpc::HttpMessage::ParseFromIOBuf(butil::IOBuf const&)', 'butil::detail::ThreadExitHelper::add(void (*)(void*), void*)', 'butil::InitGlobalIOBufProfilerInfo()', 'DefaultSingletonTraits::New()', 'bvar::Variable::expose(butil::BasicStringPiece, std::allocator > > const&, bvar::DisplayFilter)', 'butil::static_atomic*>::load(std::memory_order)']

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
intbthread::internal::pthread_mutex_lock_impl (pthread_mutex_t*,timespecconst*) 44 5 11.36%
intbthread::internal::pthread_mutex_unlock_impl (pthread_mutex_t*) 34 5 14.70%
butil::FlatMap ,std::allocator >,bvar::VarEntry,butil::DefaultHasher ,std::allocator >>,butil::DefaultEqualTo ,std::allocator >>,false,butil::PtAllocator,false>::resize(unsignedlong) 38 13 34.21% ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
bvar::Variable::expose_impl(butil::BasicStringPiece ,std::allocator >>const&,butil::BasicStringPiece ,std::allocator >>const&,bvar::DisplayFilter) 36 18 50.0% []
voidbutil::rapidjson::GenericReader ,butil::rapidjson::UTF8 ,butil::rapidjson::CrtAllocator>::ParseString<0u,butil::rapidjson::GenericStringStream >,butil::rapidjson::GenericDocument ,butil::rapidjson::MemoryPoolAllocator ,butil::rapidjson::CrtAllocator>>(butil::rapidjson::GenericStringStream >&,butil::rapidjson::GenericDocument ,butil::rapidjson::MemoryPoolAllocator ,butil::rapidjson::CrtAllocator>&,bool) 32 15 46.87% ['fuzz_json']
json2pb::JsonValueToProtoField(butil::rapidjson::GenericValue ,butil::rapidjson::MemoryPoolAllocator >const&,google::protobuf::FieldDescriptorconst*,google::protobuf::Message*,json2pb::Json2PbOptionsconst&,std::__cxx11::basic_string ,std::allocator >*) 167 91 54.49% ['fuzz_json']
butil::FlatMap ::resize(unsignedlong) 38 13 34.21% ['fuzz_hpack']
butil::FlatMap ,std::allocator >,unsignedlong,butil::CaseIgnoredHasher,butil::CaseIgnoredEqual,false,butil::PtAllocator,false>::resize(unsignedlong) 38 13 34.21% ['fuzz_hpack']
logging::LogStream::FlushWithoutReset() 64 32 50.0% ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
logging::DefaultLogSink::OnLogMessage(int,charconst*,int,charconst*,butil::BasicStringPiece ,std::allocator >>const&) 34 11 32.35% []
google::ParseOperatorName(google::State*) 37 18 48.64% ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
voidbutil::IOBuf::_push_or_move_back_ref_to_smallview (butil::IOBuf::BlockRefconst&) 47 14 29.78% ['fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
butil::Status::set_errorv(int,charconst*,__va_list_tag*) 56 28 50.0% ['fuzz_uri', 'fuzz_http']
brpc::HttpMessage::on_header_value(brpc::http_parser*,charconst*,unsignedlong) 50 26 52.0% []
brpc::HttpMessage::OnBody(charconst*,unsignedlong) 57 14 24.56% []

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/brpc/src/brpc/builtin/protobufs_service.cpp [] []
/src/brpc/src/butil/threading/thread_id_name_manager.cc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/third_party/modp_b64/modp_b64.cc ['fuzz_butil', 'fuzz_json'] ['fuzz_butil', 'fuzz_json']
/src/brpc/src/brpc/rtmp.h [] []
/src/brpc/src/brpc/policy/nacos_naming_service.h [] []
/src/brpc/src/brpc/policy/dynpart_load_balancer.cpp [] []
/src/brpc/src/brpc/builtin/threads_service.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/char_traits.h ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/builtin/connections_service.h [] []
/src/brpc/src/brpc/builtin/status_service.cpp [] []
/src/brpc/src/brpc/versioned_ref_with_id.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/brpc/kvmap.h [] []
/src/brpc/src/brpc/server.h [] []
/src/brpc/build/test/v2.pb.h [] []
/src/brpc/src/brpc/controller.h [] []
/src/brpc/src/brpc/policy/randomized_load_balancer.cpp [] []
/src/brpc/build/brpc/builtin_service.pb.h [] []
/src/brpc/src/brpc/details/ssl_helper.h [] []
/src/brpc/src/butil/strings/string16.h [] []
/src/brpc/src/butil/third_party/rapidjson/error/error.h ['fuzz_json'] ['fuzz_json']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/functional_hash.h [] []
/src/brpc/src/butil/strings/string_util.cc [] []
/src/brpc/src/brpc/builtin/common.h [] []
/usr/include/google/protobuf/stubs/casts.h [] []
/src/brpc/src/bthread/mutex.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/alloc_traits.h ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/third_party/symbolize/symbolize.cc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/builtin/get_js_service.h [] []
/usr/include/google/protobuf/arena_impl.h [] []
/src/brpc/src/brpc/policy/file_naming_service.h [] []
/src/brpc/src/bvar/latency_recorder.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/brpc/policy/consistent_hashing_load_balancer.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_construct.h [] []
/src/brpc/test/fuzzing/fuzz_shead.cpp ['fuzz_shead'] ['fuzz_shead']
/src/brpc/src/butil/bit_array.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_http']
/src/brpc/src/brpc/policy/most_common_message.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/butil/crc32c.cc ['fuzz_butil'] ['fuzz_butil']
/usr/include/google/protobuf/wire_format_lite.h [] []
/src/brpc/src/bvar/reducer.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/builtin/threads_service.cpp [] []
/src/brpc/src/brpc/builtin/list_service.h [] []
/src/brpc/src/brpc/builtin/pprof_service.h [] []
/src/brpc/src/butil/sys_byteorder.h [] []
/src/brpc/src/brpc/policy/consul_naming_service.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable.h ['fuzz_uri', 'fuzz_sofa', 'fuzz_hulu'] []
/src/brpc/src/brpc/policy/auto_concurrency_limiter.cpp [] []
/src/brpc/src/butil/ptr_container.h [] []
/src/brpc/src/brpc/policy/locality_aware_load_balancer.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tree.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/policy/weighted_randomized_load_balancer.cpp [] []
/src/brpc/src/brpc/input_message_base.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/build/test/v3.pb.h [] []
/src/brpc/src/brpc/redis.h [] []
/src/brpc/src/butil/third_party/rapidjson/writer.h [] []
/src/brpc/build/brpc/policy/mongo.pb.cc [] []
/src/brpc/build/test/addressbook1.pb.h [] []
/src/brpc/src/butil/third_party/icu/icu_utf.cc [] []
/src/brpc/src/json2pb/zero_copy_stream_writer.h [] []
/src/brpc/build/brpc/policy/public_pbrpc_meta.pb.cc [] []
/src/brpc/build/test/health_check.pb.cc [] []
/src/brpc/src/brpc/policy/nshead_mcpack_protocol.h [] []
/src/brpc/src/brpc/builtin/bthreads_service.h [] []
/src/brpc/src/brpc/details/load_balancer_with_naming.h [] []
/src/brpc/src/butil/third_party/rapidjson/internal/pow10.h ['fuzz_json'] ['fuzz_json']
/src/brpc/src/brpc/socket_inl.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/butil/files/scoped_file.h [] []
/src/brpc/src/brpc/policy/esp_authenticator.cpp [] []
/src/brpc/src/brpc/builtin/rpcz_service.h [] []
/src/brpc/src/brpc/serialized_response.cpp [] []
/src/brpc/src/brpc/excluded_servers.h [] []
/src/brpc/src/butil/status.h ['fuzz_uri', 'fuzz_http'] ['fuzz_uri', 'fuzz_http']
/src/brpc/src/mcpack2pb/mcpack2pb.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/strings/stringprintf.cc [] []
/src/brpc/src/butil/synchronization/waitable_event_posix.cc ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/redis_reply.cpp ['fuzz_redis'] ['fuzz_redis']
/src/brpc/src/brpc/details/http_message.h ['fuzz_http'] ['fuzz_http']
/src/brpc/src/brpc/channel_base.h [] []
/src/brpc/build/brpc/policy/sofa_pbrpc_meta.pb.cc [] []
/src/brpc/src/brpc/builtin/status_service.h [] []
/src/brpc/src/brpc/policy/weighted_round_robin_load_balancer.h [] []
/usr/include/google/protobuf/util/json_util.h [] []
/src/brpc/src/brpc/policy/ubrpc2pb_protocol.h [] []
/src/brpc/src/json2pb/protobuf_map.cpp ['fuzz_json'] ['fuzz_json']
/src/brpc/src/butil/files/file_enumerator.cc [] []
/src/brpc/src/butil/third_party/rapidjson/internal/itoa.h [] []
/src/brpc/src/butil/object_pool.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/fast_rand.h [] []
/src/brpc/src/butil/resource_pool.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/butil/single_threaded_pool.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/restful.h [] []
/src/brpc/src/butil/files/file_enumerator_posix.cc [] []
/usr/include/google/protobuf/arenastring.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocator.h ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/bvar/detail/sampler.cpp ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/event_dispatcher_epoll.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_mutex.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/rpc_dump.h [] []
/src/brpc/src/brpc/policy/public_pbrpc_protocol.h [] []
/src/brpc/src/brpc/http_header.cpp ['fuzz_http'] ['fuzz_http']
/src/brpc/src/bvar/passive_status.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/test/fuzzing/fuzz_hpack.cpp ['fuzz_hpack'] ['fuzz_hpack']
/src/brpc/src/brpc/describable.h ['fuzz_hpack'] ['fuzz_hpack']
/src/brpc/src/brpc/uri.h ['fuzz_uri'] ['fuzz_uri']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/istream [] []
/src/brpc/src/brpc/details/load_balancer_with_naming.cpp [] []
/src/brpc/src/bthread/task_meta.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/brpc/event_dispatcher.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/brpc/builtin/flot_min_js.cpp [] []
/src/brpc/src/brpc/builtin/vars_service.cpp [] []
/src/brpc/src/brpc/naming_service.h [] []
/src/brpc/src/butil/third_party/dmg_fp/dtoa_wrapper.cc [] []
/src/brpc/src/brpc/builtin/sorttable_js.cpp [] []
/src/brpc/src/brpc/stream.cpp [] []
/src/brpc/src/butil/third_party/rapidjson/error/../allocators.h ['fuzz_json'] []
/src/brpc/src/butil/lazy_instance.cc ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/json2pb/pb_to_json.cpp [] []
/src/brpc/build/test/v1.pb.cc [] []
/src/brpc/src/bthread/parking_lot.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/usr/include/google/protobuf/metadata_lite.h ['fuzz_json'] ['fuzz_json']
/src/brpc/build/test/repeated.pb.h [] []
/src/brpc/src/butil/third_party/rapidjson/memorybuffer.h [] []
/src/brpc/src/brpc/esp_message.h [] []
/src/brpc/src/butil/process_util.cc [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.tcc ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/details/ssl_helper.cpp [] []
/src/brpc/src/butil/threading/simple_thread.cc ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/atomicity.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/policy/consistent_hashing_load_balancer.h [] []
/src/brpc/src/butil/time/time_posix.cc [] []
/src/brpc/src/butil/containers/flat_map_inl.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/policy/ubrpc2pb_protocol.cpp [] []
/src/brpc/build/brpc/nshead_meta.pb.h [] []
/src/brpc/build/test/health_check.pb.h [] []
/src/brpc/src/bthread/id.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/usr/include/google/protobuf/stubs/once.h ['fuzz_json'] ['fuzz_json']
/src/brpc/src/brpc/parallel_channel.cpp [] []
/src/brpc/src/butil/fd_guard.h [] []
/src/brpc/src/brpc/policy/auto_concurrency_limiter.h [] []
/src/brpc/src/brpc/rpc_pb_message_factory.h [] []
/usr/include/google/protobuf/stubs/callback.h [] []
/src/brpc/src/brpc/redis_command.h ['fuzz_redis'] []
/src/brpc/src/bvar/latency_recorder.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/brpc/policy/nshead_mcpack_protocol.cpp [] []
/src/brpc/build/test/v3.pb.cc [] []
/src/brpc/src/brpc/builtin/sockets_service.cpp [] []
/src/brpc/src/bvar/detail/percentile.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/test/fuzzing/fuzz_http.cpp ['fuzz_http'] ['fuzz_http']
/usr/include/google/protobuf/stubs/hash.h [] []
/src/brpc/src/butil/third_party/rapidjson/error/../encodings.h ['fuzz_json'] []
/src/brpc/src/bvar/vector.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tuple ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/test/fuzzing/fuzz_esp.cpp ['fuzz_esp'] ['fuzz_esp']
/src/brpc/src/brpc/simple_data_pool.cpp [] []
/src/brpc/src/bthread/task_group.cpp ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_redis', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_http']
/src/brpc/src/brpc/ssl_options.h [] []
/src/brpc/build/brpc/get_js.pb.cc [] []
/src/brpc/build/brpc/policy/sofa_pbrpc_meta.pb.h [] []
/src/brpc/src/butil/synchronization/waitable_event.h [] []
/src/brpc/src/brpc/builtin/dir_service.h [] []
/src/brpc/src/butil/string_splitter.h [] []
/src/brpc/build/test/addressbook_map.pb.cc [] []
/src/brpc/src/brpc/details/method_status.h [] []
/src/brpc/build/brpc/rtmp.pb.cc [] []
/src/brpc/src/butil/memory/scoped_ptr.h [] []
/usr/include/google/protobuf/metadata.h ['fuzz_json'] ['fuzz_json']
/src/brpc/src/butil/third_party/murmurhash3/murmurhash3.cpp [] []
/src/brpc/src/butil/endpoint.cpp ['fuzz_sofa', 'fuzz_hulu'] ['fuzz_sofa', 'fuzz_hulu']
/src/brpc/build/brpc/nshead_meta.pb.cc [] []
/src/brpc/src/butil/hash.cc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil']
/usr/include/google/protobuf/generated_message_util.h ['fuzz_json'] []
/src/brpc/build/brpc/policy/baidu_rpc_meta.pb.cc [] []
/src/brpc/src/bthread/timer_thread.h [] []
/src/brpc/src/brpc/acceptor.cpp [] []
/usr/include/google/protobuf/stubs/mutex.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/exception.h [] []
/src/brpc/src/json2pb/encode_decode.cpp ['fuzz_json'] ['fuzz_json']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/array ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/brpc/concurrency_limiter.h [] []
/src/brpc/src/butil/third_party/rapidjson/internal/ieee754.h [] []
/src/brpc/src/brpc/policy/discovery_naming_service.cpp [] []
/src/brpc/src/mcpack2pb/parser.cpp [] []
/src/brpc/src/brpc/builtin/index_service.h [] []
/src/brpc/src/butil/files/file.h [] []
/src/brpc/build/brpc/trackme.pb.cc [] []
/src/brpc/src/brpc/uri.cpp ['fuzz_uri', 'fuzz_http'] ['fuzz_uri', 'fuzz_http']
/src/brpc/src/brpc/mongo_service_adaptor.h [] []
/src/brpc/src/butil/iobuf.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/http_method.cpp ['fuzz_http'] ['fuzz_http']
/src/brpc/src/butil/string_splitter_inl.h ['fuzz_uri'] ['fuzz_uri']
/src/brpc/src/butil/class_name.cpp [] []
/src/brpc/src/brpc/builtin/tabbed.h [] []
/src/brpc/src/butil/numerics/safe_conversions.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/builtin/grpc_health_check_service.h [] []
/src/brpc/src/bvar/detail/call_op_returning_void.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/third_party/rapidjson/internal/diyfp.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ios_base.h [] []
/src/brpc/src/bthread/execution_queue.cpp [] []
/src/brpc/build/test/addressbook.pb.h [] []
/src/brpc/src/brpc/redis_command.cpp ['fuzz_redis'] ['fuzz_redis']
/src/brpc/test/fuzzing/fuzz_sofa.cpp ['fuzz_sofa'] ['fuzz_sofa']
/usr/include/google/protobuf/wire_format_lite_inl.h [] []
/src/brpc/src/butil/scoped_clear_errno.h [] []
/src/brpc/src/brpc/policy/remote_file_naming_service.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/allocated_ptr.h [] []
/src/brpc/src/brpc/builtin/bad_method_service.cpp [] []
/src/brpc/build/brpc/grpc_health_check.pb.cc [] []
/usr/include/google/protobuf/map_field_inl.h [] []
/src/brpc/src/butil/containers/hash_tables.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/vector.tcc ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/errno.cpp ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/debug/alias.cc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/debug/stack_trace.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unordered_set.h ['fuzz_uri', 'fuzz_sofa', 'fuzz_hulu'] []
/src/brpc/src/brpc/details/usercode_backup_pool.cpp [] []
/usr/include/google/protobuf/map_field.h [] []
/src/brpc/src/brpc/serialized_response.h [] []
/src/brpc/src/mcpack2pb/field_type.cpp [] []
/src/brpc/src/butil/iobuf_profiler.cpp ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/third_party/rapidjson/internal/dtoa.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable_policy.h ['fuzz_uri', 'fuzz_sofa', 'fuzz_hulu'] []
/src/brpc/src/butil/containers/bounded_queue.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/builtin/vlog_service.cpp [] []
/src/brpc/src/brpc/builtin/bad_method_service.h [] []
/src/brpc/src/brpc/policy/mongo_protocol.cpp [] []
/src/brpc/src/butil/third_party/rapidjson/encodings.h [] []
/usr/include/google/protobuf/stubs/status.h [] []
/src/brpc/src/butil/debug/debugger_posix.cc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/build/test/message.pb.h [] []
/src/brpc/src/butil/compat.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/butil/intrusive_ptr.hpp [] []
/src/brpc/src/brpc/server_id.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_tempbuf.h [] []
/src/brpc/src/brpc/rtmp.cpp ['fuzz_uri'] ['fuzz_uri']
/src/brpc/src/brpc/policy/sofa_pbrpc_protocol.cpp ['fuzz_sofa'] ['fuzz_sofa']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/mutex [] []
/src/brpc/src/brpc/details/naming_service_thread.h [] []
/src/brpc/src/brpc/socket_message.h [] []
/src/brpc/build/brpc/proto_base.pb.h [] []
/src/brpc/src/butil/thread_key.cpp ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/usr/include/google/protobuf/repeated_field.h ['fuzz_json'] ['fuzz_json']
/src/brpc/src/brpc/server_id.cpp [] []
/src/brpc/src/brpc/stream_creator.h [] []
/src/brpc/test/fuzzing/fuzz_redis.cpp ['fuzz_redis'] ['fuzz_redis']
/src/brpc/src/brpc/load_balancer.cpp [] []
/src/brpc/build/brpc/get_favicon.pb.h [] []
/src/brpc/src/butil/binary_printer.h ['fuzz_http'] []
/src/brpc/build/brpc/policy/hulu_pbrpc_meta.pb.cc [] []
/src/brpc/src/butil/arena.cpp ['fuzz_redis'] ['fuzz_redis']
/src/brpc/src/butil/at_exit.cc ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/bthread/execution_queue.h [] []
/src/brpc/src/butil/lazy_instance.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/bvar/variable.cpp ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/details/hpack.h ['fuzz_hpack'] ['fuzz_hpack']
/src/brpc/src/brpc/adaptive_connection_type.cpp [] []
/src/brpc/src/butil/memory/ref_counted.cc ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/retry_policy.cpp [] []
/src/brpc/src/brpc/authenticator.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/brpc/reloadable_flags.cpp [] []
/src/brpc/src/bthread/mutex.cpp ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/postypes.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/limits ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/class_name.h [] []
/src/brpc/src/bvar/mvariable.cpp [] []
/src/brpc/src/brpc/server.cpp [] []
/src/brpc/src/butil/fd_utility.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/butil/atomicops_internals_x86_gcc.cc [] []
/src/brpc/src/brpc/builtin/get_js_service.cpp [] []
/src/brpc/src/butil/stl_util.h [] []
/src/brpc/src/butil/strings/string_number_conversions.cc ['fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_json']
/src/brpc/src/brpc/stream.h [] []
/src/brpc/src/brpc/serialized_request.h [] []
/src/brpc/src/brpc/nonreflectable_message.h [] []
/src/brpc/src/brpc/extension.h [] []
/src/brpc/src/brpc/extension_inl.h [] []
/src/brpc/src/butil/memory/singleton.cc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/third_party/symbolize/demangle.cc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_redis']
/src/brpc/src/brpc/amf.h [] []
/src/brpc/src/butil/iobuf.cpp ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/load_balancer.h [] []
/src/brpc/src/brpc/policy/constant_concurrency_limiter.h [] []
/src/brpc/src/brpc/builtin/list_service.cpp [] []
/src/brpc/src/brpc/details/usercode_backup_pool.h [] []
/src/brpc/src/brpc/builtin/protobufs_service.h [] []
/src/brpc/src/butil/atomicops_internals_x86_gcc.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/mcpack2pb/serializer.cpp [] []
/src/brpc/build/brpc/builtin_service.pb.cc [] []
/src/brpc/src/brpc/redis.cpp [] []
/src/brpc/src/butil/numerics/safe_conversions_impl.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/strings/string_piece.cc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/test/fuzzing/fuzz_hulu.cpp ['fuzz_hulu'] ['fuzz_hulu']
/src/brpc/src/butil/zero_copy_stream_as_streambuf.cpp [] []
/src/brpc/src/brpc/details/rtmp_utils.cpp [] []
/src/brpc/src/brpc/memcache.h [] []
/src/brpc/src/brpc/policy/hulu_pbrpc_protocol.cpp ['fuzz_hulu'] ['fuzz_hulu']
/src/brpc/build/brpc/rtmp.pb.h [] []
/src/brpc/src/mcpack2pb/parser-inl.h [] []
/src/brpc/src/butil/arena.h ['fuzz_redis'] ['fuzz_redis']
/src/brpc/src/brpc/policy/http2_rpc_protocol.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/utility [] []
/src/brpc/src/bthread/butex.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/bvar/detail/series.h [] []
/src/brpc/src/butil/third_party/dmg_fp/g_fmt.cc [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/deque.tcc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_uninitialized.h [] []
/src/brpc/src/butil/third_party/rapidjson/reader.h ['fuzz_json'] ['fuzz_json']
/src/brpc/src/brpc/policy/http_rpc_protocol.cpp [] []
/src/brpc/src/bthread/stack_inl.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/brpc/builtin/health_service.h [] []
/src/brpc/src/butil/float_util.h [] []
/src/brpc/src/butil/strings/sys_string_conversions_posix.cc [] []
/src/brpc/src/brpc/builtin/vars_service.h [] []
/src/brpc/build/brpc/streaming_rpc_meta.pb.cc [] []
/src/brpc/src/brpc/socket_map.cpp [] []
/src/brpc/src/brpc/http2.cpp [] []
/src/brpc/src/butil/threading/platform_thread_linux.cc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/http_status_code.cpp [] []
/src/brpc/build/test/iobuf.pb.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_stack.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/input_messenger.h [] []
/src/brpc/src/brpc/policy/locality_aware_load_balancer.h [] []
/src/brpc/src/butil/binary_printer.cpp ['fuzz_http'] ['fuzz_http']
/src/brpc/build/test/addressbook_encode_decode.pb.h [] []
/src/brpc/src/brpc/details/rtmp_utils.h [] []
/src/brpc/src/brpc/builtin/rpcz_service.cpp [] []
/src/brpc/src/butil/memory/ref_counted.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/files/file_posix.cc [] []
/src/brpc/src/butil/third_party/rapidjson/optimized_writer.h [] []
/src/brpc/src/butil/third_party/rapidjson/error/../rapidjson.h ['fuzz_json'] []
/src/brpc/src/butil/third_party/snappy/snappy-sinksource.cc [] []
/src/brpc/src/butil/third_party/rapidjson/allocators.h [] []
/src/brpc/src/brpc/trackme.cpp [] []
/src/brpc/src/bthread/task_control.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_sofa', 'fuzz_hulu']
/usr/include/google/protobuf/wire_format.h [] []
/src/brpc/src/brpc/builtin/bthreads_service.cpp [] []
/src/brpc/src/mcpack2pb/mcpack2pb.cpp [] []
/src/brpc/src/butil/string_printf.cpp ['fuzz_json', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_json']
/src/brpc/src/butil/memory/singleton.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/raw_pack.h [] []
/src/brpc/src/json2pb/json_to_pb.cpp ['fuzz_json'] ['fuzz_json']
/src/brpc/test/fuzzing/fuzz_uri.cpp ['fuzz_uri'] ['fuzz_uri']
/src/brpc/src/brpc/protocol.cpp [] []
/src/brpc/src/bthread/execution_queue_inl.h [] []
/src/brpc/src/brpc/policy/redis_protocol.cpp [] []
/src/brpc/build/brpc/options.pb.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/atomic ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/threading/simple_thread.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/builtin/ids_service.h [] []
/src/brpc/src/brpc/http_header.h ['fuzz_http'] ['fuzz_http']
/src/brpc/src/brpc/policy/http2_rpc_protocol.cpp [] []
/src/brpc/src/brpc/details/sparse_minute_counter.h [] []
/src/brpc/src/brpc/builtin/flags_service.cpp [] []
/src/brpc/src/butil/third_party/rapidjson/rapidjson.h [] []
/src/brpc/src/brpc/policy/http_rpc_protocol.h [] []
/src/brpc/src/brpc/builtin/grpc_health_check_service.cpp [] []
/src/brpc/build/test/v1.pb.h [] []
/src/brpc/build/brpc/policy/hulu_pbrpc_meta.pb.h [] []
/src/brpc/src/brpc/policy/randomized_load_balancer.h [] []
/src/brpc/src/brpc/policy/redis_authenticator.h [] []
/src/brpc/build/test/grpc.pb.h [] []
/src/brpc/src/brpc/periodic_task.cpp [] []
/src/brpc/src/butil/files/scoped_file.cc [] []
/src/brpc/build/test/message.pb.cc [] []
/src/brpc/src/butil/sha1_portable.cc ['fuzz_butil'] ['fuzz_butil']
/src/brpc/src/butil/containers/case_ignored_flat_map.h ['fuzz_hpack', 'fuzz_http'] ['fuzz_hpack', 'fuzz_http']
/src/brpc/src/bthread/stack.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/bthread/list_of_abafree_id.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/brpc/details/method_status.cpp [] []
/src/brpc/src/brpc/policy/domain_naming_service.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/policy/gzip_compress.cpp [] []
/src/brpc/src/butil/third_party/dynamic_annotations/dynamic_annotations.c ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/butil/debug/proc_maps_linux.h [] []
/usr/include/x86_64-linux-gnu/bits/byteswap.h ['fuzz_sofa', 'fuzz_hulu'] []
/src/brpc/src/brpc/builtin/common.cpp [] []
/src/brpc/build/brpc/streaming_rpc_meta.pb.h [] []
/src/brpc/src/brpc/builtin/viz_min_js.cpp [] []
/src/brpc/src/brpc/builtin/version_service.cpp [] []
/src/brpc/src/brpc/cluster_recover_policy.cpp [] []
/src/brpc/build/brpc/get_favicon.pb.cc [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/predefined_ops.h [] []
/src/brpc/src/butil/file_util_posix.cc [] []
/src/brpc/src/brpc/details/health_check.cpp [] []
/src/brpc/src/bthread/sys_futex.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/butil/logging.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/build/brpc/policy/public_pbrpc_meta.pb.h [] []
/src/brpc/src/brpc/policy/round_robin_load_balancer.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/list.tcc ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/nshead_pb_service_adaptor.cpp [] []
/src/brpc/src/brpc/input_messenger.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/usr/include/x86_64-linux-gnu/sys/stat.h [] []
/src/brpc/src/butil/atomicops.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/bvar/recorder.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/butil/memory/singleton_on_pthread_once.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/callback.h [] []
/src/brpc/build/test/addressbook_map.pb.h [] []
/src/brpc/src/brpc/builtin/version_service.h [] []
/src/brpc/src/brpc/parse_result.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/brpc/details/tcmalloc_extension.cpp [] []
/src/brpc/src/butil/memory/aligned_memory.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/periodic_naming_service.cpp [] []
/src/brpc/src/brpc/policy/domain_naming_service.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/atomic_base.h ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/policy/list_naming_service.h [] []
/src/brpc/src/brpc/policy/redis_authenticator.cpp [] []
/src/brpc/src/butil/fast_rand.cpp ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/thread_key.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/find_cstr.h [] []
/src/brpc/build/test/addressbook1.pb.cc ['fuzz_json'] ['fuzz_json']
/src/brpc/src/butil/strings/string16.cc [] []
/src/brpc/src/bthread/stack.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/brpc/policy/remote_file_naming_service.cpp [] []
/src/brpc/src/brpc/progressive_attachment.cpp [] []
/src/brpc/src/butil/synchronization/lock.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/esp_message.cpp [] []
/src/brpc/src/brpc/selective_channel.cpp [] []
/src/brpc/src/butil/resource_pool_inl.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/build/brpc/policy/mongo.pb.h [] []
/src/brpc/src/brpc/progressive_reader.h [] []
/src/brpc/src/json2pb/protobuf_type_resolver.h [] []
/src/brpc/src/brpc/socket.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/butil/threading/thread_local.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/brpc/grpc.cpp [] []
/src/brpc/src/brpc/adaptive_protocol_type.h [] []
/src/brpc/src/butil/time/time.cc [] []
/usr/include/google/protobuf/arena.h [] []
/usr/include/google/protobuf/map_entry_lite.h [] []
/src/brpc/src/brpc/policy/consul_naming_service.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/ptr_traits.h ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/iobuf_inl.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/policy/nacos_naming_service.cpp [] []
/src/brpc/src/brpc/circuit_breaker.h [] []
/src/brpc/src/butil/strings/utf_string_conversion_utils.cc [] []
/src/brpc/src/butil/third_party/rapidjson/document.h ['fuzz_json'] ['fuzz_json']
/src/brpc/src/brpc/builtin/pprof_service.cpp [] []
/src/brpc/src/butil/debug/stack_trace_posix.cc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/containers/optional.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/third_party/snappy/snappy.cc [] []
/usr/include/google/protobuf/generated_message_reflection.h [] []
/src/brpc/src/brpc/builtin/flags_service.h [] []
/usr/include/leveldb/options.h [] []
/usr/include/openssl/x509v3.h [] []
/src/brpc/src/brpc/ssl_options.cpp [] []
/src/brpc/src/butil/zero_copy_stream_as_streambuf.h [] []
/src/brpc/src/brpc/rpc_dump.cpp [] []
/src/brpc/src/brpc/policy/snappy_compress.cpp [] []
/src/brpc/src/bthread/timer_thread.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/build/idl_options.pb.cc [] []
/src/brpc/src/brpc/acceptor.h [] []
/src/brpc/build/brpc/options.pb.cc [] []
/src/brpc/src/brpc/server_node.h [] []
/src/brpc/src/brpc/closure_guard.h [] []
/usr/include/leveldb/slice.h [] []
/src/brpc/src/bthread/task_group.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/policy/nshead_protocol.cpp ['fuzz_shead'] ['fuzz_shead']
/src/brpc/src/bthread/errno.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/butil/strings/utf_string_conversion_utils.h [] []
/usr/include/google/protobuf/message_lite.h ['fuzz_json'] ['fuzz_json']
/usr/include/google/protobuf/descriptor.pb.h [] []
/src/brpc/src/butil/strings/string_piece.h ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/usr/include/google/protobuf/unknown_field_set.h ['fuzz_json'] ['fuzz_json']
/src/brpc/src/butil/third_party/rapidjson/internal/strtod.h ['fuzz_json'] ['fuzz_json']
/src/brpc/src/brpc/channel.cpp [] []
/src/brpc/src/brpc/protocol.h [] []
/src/brpc/src/brpc/event_dispatcher.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/butil/reloadable_flags.h [] []
/src/brpc/src/butil/threading/platform_thread_posix.cc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/bvar/detail/agent_group.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/threading/thread_restrictions.cc ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/policy/public_pbrpc_protocol.cpp [] []
/src/brpc/src/mcpack2pb/serializer-inl.h [] []
/src/brpc/src/brpc/channel.h [] []
/usr/include/google/protobuf/io/coded_stream.h [] []
/src/brpc/src/brpc/amf.cpp [] []
/src/brpc/src/bvar/collector.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/strings/string_util.h [] []
/src/brpc/src/brpc/policy/rtmp_protocol.h [] []
/src/brpc/src/brpc/policy/constant_concurrency_limiter.cpp [] []
/src/brpc/build/brpc/span.pb.cc [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/sstream.tcc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_deque.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/builtin/memory_service.cpp [] []
/src/brpc/src/brpc/builtin/ids_service.cpp [] []
/src/brpc/src/butil/thread_local.cpp ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/policy/dh.h [] []
/src/brpc/src/brpc/builtin/memory_service.h [] []
/src/brpc/src/butil/debug/proc_maps_linux.cc [] []
/src/brpc/src/butil/memory/scope_guard.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/strings/utf_string_conversions.cc [] []
/src/brpc/src/butil/strings/string_util_posix.h [] []
/src/brpc/src/brpc/policy/round_robin_load_balancer.h [] []
/usr/include/google/protobuf/map.h [] []
/src/brpc/src/butil/threading/thread_local_posix.cc ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/restful.cpp [] []
/usr/include/google/protobuf/message.h ['fuzz_json'] ['fuzz_json']
/src/brpc/src/brpc/global.cpp [] []
/src/brpc/src/butil/third_party/dmg_fp/dtoa.cc [] []
/src/brpc/src/brpc/policy/esp_protocol.cpp ['fuzz_esp'] ['fuzz_esp']
/src/brpc/src/butil/base64.cc ['fuzz_butil', 'fuzz_json'] ['fuzz_butil', 'fuzz_json']
/src/brpc/src/bthread/types.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/policy/baidu_rpc_protocol.cpp [] []
/usr/include/google/protobuf/descriptor.h ['fuzz_json'] []
/src/brpc/src/brpc/policy/discovery_naming_service.h [] []
/src/brpc/src/butil/third_party/rapidjson/prettywriter.h [] []
/src/brpc/src/brpc/serialized_request.cpp [] []
/src/brpc/build/test/addressbook.pb.cc [] []
/src/brpc/src/butil/crc32c.h ['fuzz_butil'] ['fuzz_butil']
/src/brpc/src/butil/containers/mpsc_queue.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_http']
/usr/include/leveldb/status.h [] []
/src/brpc/src/brpc/builtin/hotspots_service.h [] []
/src/brpc/src/brpc/circuit_breaker.cpp [] []
/src/brpc/src/brpc/nshead_pb_service_adaptor.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_queue.h [] []
/src/brpc/src/butil/atomic_ref_count.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/usr/include/google/protobuf/extension_set.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/type_traits.h ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/hash.h ['fuzz_butil'] ['fuzz_butil']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_ios.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/builtin/prometheus_metrics_service.h [] []
/src/brpc/src/brpc/policy/timeout_concurrency_limiter.h [] []
/src/brpc/src/bthread/work_stealing_queue.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_ptr.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/files/file_path.cc [] []
/src/brpc/src/mcpack2pb/parser.h [] []
/usr/include/google/protobuf/io/zero_copy_stream.h [] []
/src/brpc/build/test/v2.pb.cc [] []
/src/brpc/test/fuzzing/fuzz_json.cpp ['fuzz_json'] ['fuzz_json']
/src/brpc/src/brpc/builtin/pprof_perl.cpp [] []
/src/brpc/src/mcpack2pb/field_type.h [] []
/src/brpc/build/test/echo.pb.cc [] []
/src/brpc/src/brpc/details/naming_service_thread.cpp [] []
/src/brpc/src/mcpack2pb/serializer.h [] []
/src/brpc/build/brpc/grpc_health_check.pb.h [] []
/src/brpc/src/brpc/amf_inl.h [] []
/src/brpc/src/brpc/builtin/prometheus_metrics_service.cpp [] []
/src/brpc/src/butil/third_party/rapidjson/stringbuffer.h [] []
/src/brpc/src/butil/files/file_enumerator.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ostream ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/threading/platform_thread.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/build/test/addressbook_encode_decode.pb.cc [] []
/src/brpc/build/test/repeated.pb.cc [] []
/src/brpc/src/brpc/builtin/hotspots_service.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unordered_map.h [] []
/src/brpc/src/bthread/task_control.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/butil/files/file_watcher.h [] []
/src/brpc/src/brpc/policy/nova_pbrpc_protocol.h [] []
/src/brpc/build/brpc/rpc_dump.pb.h [] []
/src/brpc/src/butil/details/extended_endpoint.hpp ['fuzz_sofa', 'fuzz_hulu'] ['fuzz_sofa', 'fuzz_hulu']
/src/brpc/src/bvar/window.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/synchronization/condition_variable_posix.cc [] []
/src/brpc/src/butil/strings/string_split.cc [] []
/src/brpc/src/brpc/socket_id.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/alloc_traits.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/third_party/rapidjson/internal/stack.h ['fuzz_json'] ['fuzz_json']
/src/brpc/src/brpc/details/profiler_linker.h [] []
/usr/include/stdlib.h [] []
/src/brpc/src/brpc/details/http_parser.cpp ['fuzz_http'] ['fuzz_http']
/usr/include/x86_64-linux-gnu/bits/stdio.h [] []
/src/brpc/src/butil/shared_object.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/sstream ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/usr/include/google/protobuf/map_field_lite.h [] []
/src/brpc/src/bthread/task_group_inl.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/build/brpc/span.pb.h [] []
/src/brpc/src/butil/files/file_path.h [] []
/src/brpc/src/bthread/butex.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/butil/time.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/json2pb/zero_copy_stream_reader.h [] []
/src/brpc/src/brpc/adaptive_max_concurrency.h [] []
/src/brpc/src/brpc/policy/rtmp_protocol.cpp [] []
/src/brpc/src/brpc/socket_map.h [] []
/src/brpc/src/brpc/retry_policy.h [] []
/src/brpc/src/brpc/periodic_task.h [] []
/src/brpc/src/butil/object_pool_inl.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/policy/dh.cpp [] []
/src/brpc/src/bthread/key.cpp ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/bvar/detail/sampler.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/new_allocator.h ['fuzz_butil', 'fuzz_json', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/build/brpc/policy/baidu_rpc_meta.pb.h [] []
/src/brpc/src/butil/third_party/snappy/snappy-internal.h [] []
/src/brpc/src/brpc/policy/memcache_binary_protocol.cpp [] []
/src/brpc/build/test/echo.pb.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_lock.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/streambuf ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/adaptive_connection_type.h [] []
/src/brpc/src/brpc/parallel_channel.h [] []
/src/brpc/src/brpc/memcache.cpp [] []
/src/brpc/src/butil/logging.cc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/build/test/snappy_message.pb.cc [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward/hash_fun.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/butil/files/file_watcher.cpp [] []
/src/brpc/src/bthread/interrupt_pthread.cpp [] []
/src/brpc/src/bthread/fd.cpp [] []
/src/brpc/src/bvar/variable.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/builtin/connections_service.cpp [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/string_conversions.h [] []
/src/brpc/src/bvar/detail/combiner.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/span.cpp [] []
/src/brpc/src/bvar/detail/percentile.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/butil/iobuf_profiler.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9/bits/gthr-default.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/policy/esp_authenticator.h [] []
/src/brpc/src/butil/time/time.h [] []
/src/brpc/src/brpc/policy/weighted_round_robin_load_balancer.cpp [] []
/src/brpc/src/butil/third_party/rapidjson/error/en.h ['fuzz_json'] ['fuzz_json']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/aligned_buffer.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/brpc/redis_reply.h ['fuzz_redis'] ['fuzz_redis']
/src/brpc/src/brpc/baidu_master_service.h [] []
/src/brpc/src/brpc/builtin/index_service.cpp [] []
/src/brpc/src/brpc/rpc_pb_message_factory.cpp [] []
/src/brpc/src/brpc/compress.h [] []
/src/brpc/src/brpc/nshead_service.h [] []
/src/brpc/src/brpc/baidu_master_service.cpp [] []
/usr/include/google/protobuf/io/gzip_stream.h [] []
/src/brpc/build/brpc/proto_base.pb.cc [] []
/src/brpc/src/brpc/policy/weighted_randomized_load_balancer.h [] []
/src/brpc/src/butil/containers/linked_list.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/butil/popen.cpp [] []
/src/brpc/src/brpc/health_check_option.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/usr/include/google/protobuf/stubs/port.h [] []
/src/brpc/src/brpc/details/jemalloc_profiler.cpp [] []
/src/brpc/src/bthread/bthread.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_sofa', 'fuzz_hulu']
/src/brpc/src/butil/threading/thread_restrictions.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/scoped_generic.h [] []
/src/brpc/src/brpc/nshead_message.cpp [] []
/src/brpc/build/brpc/rpc_dump.pb.cc [] []
/src/brpc/src/brpc/builtin/dir_service.cpp [] []
/src/brpc/src/brpc/policy/nova_pbrpc_protocol.cpp [] []
/src/brpc/src/brpc/details/hpack.cpp ['fuzz_hpack'] ['fuzz_hpack']
/src/brpc/build/brpc/get_js.pb.h [] []
/src/brpc/src/butil/third_party/snappy/snappy-sinksource.h [] []
/src/brpc/build/test/snappy_message.pb.h [] []
/src/brpc/src/butil/file_util.cc [] []
/src/brpc/src/bthread/remote_task_queue.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/build/brpc/trackme.pb.h [] []
/src/brpc/src/brpc/socket.cpp ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/butil/status.cpp ['fuzz_uri', 'fuzz_http'] ['fuzz_uri', 'fuzz_http']
/src/brpc/src/brpc/controller.cpp [] []
/src/brpc/src/butil/memory/manual_constructor.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/usr/include/google/protobuf/service.h [] []
/src/brpc/src/brpc/span.h [] []
/src/brpc/src/butil/scoped_lock.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/nshead_message.h [] []
/src/brpc/src/brpc/builtin/health_service.cpp [] []
/src/brpc/src/brpc/details/server_private_accessor.h [] []
/src/brpc/src/butil/containers/flat_map.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_uri', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/destroyable.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead']
/src/brpc/src/brpc/nshead_service.cpp [] []
/src/brpc/src/brpc/builtin/jquery_min_js.cpp [] []
/usr/include/google/protobuf/map_entry.h [] []
/src/brpc/src/butil/macros.h ['fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead'] []
/src/brpc/src/brpc/policy/timeout_concurrency_limiter.cpp [] []
/src/brpc/src/butil/third_party/snappy/snappy-stubs-internal.h [] []
/src/brpc/src/brpc/stream_impl.h [] []
/src/brpc/src/butil/endpoint.h ['fuzz_sofa', 'fuzz_hulu'] []
/src/brpc/src/butil/debug/stack_trace.cc ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_hpack', 'fuzz_redis']
/src/brpc/src/brpc/policy/hulu_pbrpc_controller.h [] []
/src/brpc/src/brpc/builtin/vlog_service.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_algobase.h [] []
/src/brpc/src/brpc/policy/streaming_rpc_protocol.cpp [] []
/src/brpc/src/brpc/cluster_recover_policy.h [] []
/src/brpc/src/brpc/policy/hasher.cpp [] []
/src/brpc/src/butil/third_party/superfasthash/superfasthash.c ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil']
/usr/include/google/protobuf/map_type_handler.h [] []
/src/brpc/src/brpc/mongo_head.h [] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/fstream [] []
/src/brpc/test/fuzzing/fuzz_butil.cpp ['fuzz_butil'] ['fuzz_butil']
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_list.h ['fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] []
/src/brpc/src/butil/third_party/rapidjson/internal/strfunc.h ['fuzz_json'] ['fuzz_json']
/src/brpc/src/brpc/details/controller_private_accessor.h [] []
/src/brpc/src/brpc/periodic_naming_service.h [] []
/src/brpc/src/json2pb/protobuf_type_resolver.cpp [] []
/src/brpc/src/brpc/builtin/get_favicon_service.cpp [] []
/src/brpc/src/brpc/policy/dynpart_load_balancer.h [] []
/src/brpc/src/brpc/builtin/sockets_service.h [] []
/src/brpc/build/test/iobuf.pb.cc [] []
/src/brpc/src/butil/files/file.cc [] []
/src/brpc/src/brpc/policy/list_naming_service.cpp [] []
/src/brpc/src/brpc/adaptive_max_concurrency.cpp [] []
/src/brpc/src/butil/containers/doubly_buffered_data.h ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']
/src/brpc/src/brpc/builtin/get_favicon_service.h [] []
/usr/include/gflags/gflags.h [] []
/src/brpc/src/brpc/policy/file_naming_service.cpp [] []
/src/brpc/src/brpc/details/http_message.cpp ['fuzz_http'] ['fuzz_http']
/src/brpc/src/brpc/compress.cpp [] []
/src/brpc/build/test/grpc.pb.cc [] []
/src/brpc/src/bvar/collector.cpp ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http'] ['fuzz_butil', 'fuzz_hpack', 'fuzz_redis', 'fuzz_esp', 'fuzz_sofa', 'fuzz_hulu', 'fuzz_shead', 'fuzz_http']

Directories in report

Directory
/usr/include/google/protobuf/util/
/src/brpc/src/butil/containers/
/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/bits/
/src/brpc/src/butil/third_party/dmg_fp/
/src/brpc/src/brpc/builtin/
/usr/include/
/src/brpc/src/mcpack2pb/
/src/brpc/src/bvar/
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward/
/src/brpc/src/butil/third_party/rapidjson/
/src/brpc/src/json2pb/
/src/brpc/src/butil/third_party/modp_b64/
/usr/include/google/protobuf/
/src/brpc/src/brpc/
/src/brpc/src/bvar/detail/
/src/brpc/src/butil/time/
/usr/include/leveldb/
/src/brpc/src/butil/strings/
/src/brpc/src/butil/files/
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/ext/
/src/brpc/src/butil/debug/
/usr/include/google/protobuf/io/
/src/brpc/src/butil/details/
/src/brpc/src/butil/numerics/
/src/brpc/src/butil/third_party/murmurhash3/
/src/brpc/src/butil/third_party/icu/
/src/brpc/build/test/
/src/brpc/build/brpc/
/src/brpc/src/butil/memory/
/usr/include/x86_64-linux-gnu/bits/
/src/brpc/src/butil/third_party/rapidjson/error/../
/src/brpc/src/brpc/policy/
/usr/include/openssl/
/src/brpc/src/butil/threading/
/src/brpc/src/butil/synchronization/
/usr/include/x86_64-linux-gnu/sys/
/src/brpc/src/brpc/details/
/src/brpc/src/butil/
/src/brpc/src/butil/third_party/dynamic_annotations/
/src/brpc/src/butil/third_party/symbolize/
/usr/include/google/protobuf/stubs/
/src/brpc/src/butil/third_party/rapidjson/internal/
/src/brpc/src/butil/third_party/snappy/
/usr/include/gflags/
/src/brpc/src/butil/third_party/rapidjson/error/
/src/brpc/src/bthread/
/src/brpc/build/
/src/brpc/build/brpc/policy/
/usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/
/src/brpc/test/fuzzing/
/src/brpc/src/butil/third_party/superfasthash/