Provided by: libstdc++-8-doc_8.3.0-23ubuntu2_all bug

NAME

       __gnu_profile - GNU profile code for public use.

SYNOPSIS

   Classes
       class __container_size_info
           A container size instrumentation line in the object table.
       class __container_size_stack_info
           A container size instrumentation line in the stack table.
       class __hashfunc_info
           A hash performance instrumentation line in the object table.
       class __hashfunc_stack_info
           A hash performance instrumentation line in the stack table.
       class __list2vector_info
           A list-to-vector instrumentation line in the object table.
       class __map2umap_info
           A map-to-unordered_map instrumentation line in the object table.
       class __map2umap_stack_info
           A map-to-unordered_map instrumentation line in the stack table.
       class __object_info_base
           Base class for a line in the object table.
       struct __reentrance_guard
           Reentrance guard.
       class __stack_hash
           Hash function for summary trace using call stack as index.
       class __trace_base
           Base class for all trace producers.
       class __trace_container_size
           Container size instrumentation trace producer.
       class __trace_hash_func
           Hash performance instrumentation producer.
       class __trace_hashtable_size
           Hashtable size instrumentation trace producer.
       class __trace_map2umap
           Map-to-unordered_map instrumentation producer.
       class __trace_vector_size
           Hashtable size instrumentation trace producer.
       class __trace_vector_to_list
           Vector-to-list instrumentation producer.
       class __vector2list_info
           A vector-to-list instrumentation line in the object table.
       class __vector2list_stack_info
           A vector-to-list instrumentation line in the stack table.
       struct __warning_data
           Representation of a warning.

   Typedefs
       typedef std::::vector< __cost_factor * > __cost_factor_vector
       typedef std::::unordered_map< std::string, std::string > __env_t
           Internal environment. Values can be set one of two ways: 1. In config file 'var =
           value'. The default config file path is libstdcxx-profile.conf. 2. By setting process
           environment variables. For instance, in a Bash shell you can set the unit cost of
           iterating through a map like this: export __map_iterate_cost_factor=5.0. If a value is
           set both in the input file and through an environment variable, the environment value
           takes precedence.
       typedef void * __instruction_address_t
       typedef std::::vector< __instruction_address_t > __stack_npt
       typedef __stack_npt * __stack_t
       typedef std::::vector< __warning_data > __warning_vector_t

   Enumerations
       enum __state_type { __ON, __OFF, __INVALID }

   Functions
       std::size_t __env_to_size_t (const char *__env_var, std::size_t __default_value)
       template<typename _InputIterator , typename _Function > _Function __for_each
           (_InputIterator __first, _InputIterator __last, _Function __f)
       __stack_t __get_stack ()
       template<typename _Container > void __insert_top_n (_Container &__output, const typename
           _Container::value_type &__value, typename _Container::size_type __n)
       bool __is_invalid ()
       bool __is_off ()
       bool __is_on ()
       int __log2 (std::size_t __size)
       int __log_magnitude (float __f)
       float __map_erase_cost (std::size_t __size)
       float __map_find_cost (std::size_t __size)
       float __map_insert_cost (std::size_t __size)
       std::size_t __max_mem ()
       FILE * __open_output_file (const char *__extension)
       bool __profcxx_init ()
           This function must be called by each instrumentation point.
       void __profcxx_init_unconditional ()
       void __read_cost_factors ()
       template<typename _ForwardIterator , typename _Tp > _ForwardIterator __remove
           (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value)
       void __report ()
           Final report method, registered with atexit.
       void __report_and_free ()
       void __set_cost_factors ()
       void __set_max_mem ()
       void __set_max_stack_trace_depth ()
       void __set_max_warn_count ()
       void __set_trace_path ()
       std::size_t __size (__stack_t __stack)
       std::size_t __stack_max_depth ()
       template<typename _Container > void __top_n (const _Container &__input, _Container
           &__output, typename _Container::size_type __n)
       __hashfunc_info * __trace_hash_func_construct ()
       void __trace_hash_func_destruct (__hashfunc_info *, std::size_t, std::size_t, std::size_t)
       void __trace_hash_func_free ()
       void __trace_hash_func_init ()
       void __trace_hash_func_report (FILE *__f, __warning_vector_t &__warnings)
       __container_size_info * __trace_hashtable_size_construct (std::size_t)
       void __trace_hashtable_size_destruct (__container_size_info *, std::size_t, std::size_t)
       void __trace_hashtable_size_free ()
       void __trace_hashtable_size_init ()
       void __trace_hashtable_size_report (FILE *__f, __warning_vector_t &__warnings)
       void __trace_hashtable_size_resize (__container_size_info *, std::size_t, std::size_t)
       __list2slist_info * __trace_list_to_slist_construct ()
       void __trace_list_to_slist_destruct (__list2slist_info *)
       void __trace_list_to_slist_free ()
       void __trace_list_to_slist_init ()
       void __trace_list_to_slist_operation (__list2slist_info *)
       void __trace_list_to_slist_report (FILE *__f, __warning_vector_t &__warnings)
       void __trace_list_to_slist_rewind (__list2slist_info *)
       __list2vector_info * __trace_list_to_vector_construct ()
       void __trace_list_to_vector_destruct (__list2vector_info *)
       void __trace_list_to_vector_free ()
       void __trace_list_to_vector_init ()
       void __trace_list_to_vector_insert (__list2vector_info *, std::size_t, std::size_t)
       void __trace_list_to_vector_invalid_operator (__list2vector_info *)
       void __trace_list_to_vector_iterate (__list2vector_info *, int)
       void __trace_list_to_vector_report (FILE *__f, __warning_vector_t &__warnings)
       void __trace_list_to_vector_resize (__list2vector_info *, std::size_t, std::size_t)
       __map2umap_info * __trace_map_to_unordered_map_construct ()
       void __trace_map_to_unordered_map_destruct (__map2umap_info *)
       void __trace_map_to_unordered_map_erase (__map2umap_info *, std::size_t, std::size_t)
       void __trace_map_to_unordered_map_find (__map2umap_info *, std::size_t)
       void __trace_map_to_unordered_map_free ()
       void __trace_map_to_unordered_map_init ()
       void __trace_map_to_unordered_map_insert (__map2umap_info *, std::size_t, std::size_t)
       void __trace_map_to_unordered_map_invalidate (__map2umap_info *)
       void __trace_map_to_unordered_map_iterate (__map2umap_info *, std::size_t)
       void __trace_map_to_unordered_map_iterate (__map2umap_info *__info, int)
       void __trace_map_to_unordered_map_report (FILE *__f, __warning_vector_t &__warnings)
       template<typename __object_info , typename __stack_info > void __trace_report
           (__trace_base< __object_info, __stack_info > *__cont, FILE *__f, __warning_vector_t
           &__warnings)
       __container_size_info * __trace_vector_size_construct (std::size_t)
       void __trace_vector_size_destruct (__container_size_info *, std::size_t, std::size_t)
       void __trace_vector_size_free ()
       void __trace_vector_size_init ()
       void __trace_vector_size_report (FILE *, __warning_vector_t &)
       void __trace_vector_size_resize (__container_size_info *, std::size_t, std::size_t)
       __vector2list_info * __trace_vector_to_list_construct ()
       void __trace_vector_to_list_destruct (__vector2list_info *)
       void __trace_vector_to_list_free ()
       void __trace_vector_to_list_init ()
       void __trace_vector_to_list_insert (__vector2list_info *, std::size_t, std::size_t)
       void __trace_vector_to_list_invalid_operator (__vector2list_info *)
       void __trace_vector_to_list_iterate (__vector2list_info *, int)
       void __trace_vector_to_list_report (FILE *, __warning_vector_t &)
       void __trace_vector_to_list_resize (__vector2list_info *, std::size_t, std::size_t)
       bool __turn (__state_type __s)
       bool __turn_off ()
       bool __turn_on ()
       void __write (FILE *__f, __stack_t __stack)
       void __write_cost_factors ()
       _GLIBCXX_PROFILE_DEFINE_DATA (__state_type, __state, __INVALID)
       _GLIBCXX_PROFILE_DEFINE_DATA (__trace_hash_func *, _S_hash_func, 0)
       _GLIBCXX_PROFILE_DEFINE_DATA (__trace_hashtable_size *, _S_hashtable_size, 0)
       _GLIBCXX_PROFILE_DEFINE_DATA (__trace_map2umap *, _S_map2umap, 0)
       _GLIBCXX_PROFILE_DEFINE_DATA (__trace_vector_size *, _S_vector_size, 0)
       _GLIBCXX_PROFILE_DEFINE_DATA (__trace_vector_to_list *, _S_vector_to_list, 0)
       _GLIBCXX_PROFILE_DEFINE_DATA (__trace_list_to_slist *, _S_list_to_slist, 0)
       _GLIBCXX_PROFILE_DEFINE_DATA (__trace_list_to_vector *, _S_list_to_vector, 0)
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __vector_shift_cost_factor,
           {'__vector_shift_cost_factor', 1.0})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __vector_iterate_cost_factor,
           {'__vector_iterate_cost_factor', 1.0})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __vector_resize_cost_factor,
           {'__vector_resize_cost_factor', 1.0})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __list_shift_cost_factor,
           {'__list_shift_cost_factor', 0.0})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __list_iterate_cost_factor,
           {'__list_iterate_cost_factor', 10.0})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __list_resize_cost_factor,
           {'__list_resize_cost_factor', 0.0})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __map_insert_cost_factor,
           {'__map_insert_cost_factor', 1.5})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __map_erase_cost_factor,
           {'__map_erase_cost_factor', 1.5})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __map_find_cost_factor,
           {'__map_find_cost_factor', 1})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __map_iterate_cost_factor,
           {'__map_iterate_cost_factor', 2.3})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __umap_insert_cost_factor,
           {'__umap_insert_cost_factor', 12.0})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __umap_erase_cost_factor,
           {'__umap_erase_cost_factor', 12.0})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __umap_find_cost_factor,
           {'__umap_find_cost_factor', 10.0})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor, __umap_iterate_cost_factor,
           {'__umap_iterate_cost_factor', 1.7})
       _GLIBCXX_PROFILE_DEFINE_DATA (__cost_factor_vector *, __cost_factors, 0)
       _GLIBCXX_PROFILE_DEFINE_DATA (const char *, _S_trace_file_name,
           _GLIBCXX_PROFILE_TRACE_PATH_ROOT)
       _GLIBCXX_PROFILE_DEFINE_DATA (std::size_t, _S_max_warn_count,
           _GLIBCXX_PROFILE_MAX_WARN_COUNT)
       _GLIBCXX_PROFILE_DEFINE_DATA (std::size_t, _S_max_stack_depth,
           _GLIBCXX_PROFILE_MAX_STACK_DEPTH)
       _GLIBCXX_PROFILE_DEFINE_DATA (std::size_t, _S_max_mem,
           _GLIBCXX_PROFILE_MEM_PER_DIAGNOSTIC)
       _GLIBCXX_PROFILE_DEFINE_UNINIT_DATA (__env_t, __env)
       _GLIBCXX_PROFILE_DEFINE_UNINIT_DATA (__gnu_cxx::__mutex, __global_mutex)
           Master lock.

Detailed Description

       GNU profile code for public use.

Typedef Documentation

   typedef std:: ::unordered_map<std::string, std::string> __gnu_profile::__env_t
       Internal environment. Values can be set one of two ways: 1. In config file 'var = value'.
       The default config file path is libstdcxx-profile.conf. 2. By setting process environment
       variables. For instance, in a Bash shell you can set the unit cost of iterating through a
       map like this: export __map_iterate_cost_factor=5.0. If a value is set both in the input
       file and through an environment variable, the environment value takes precedence.

       Definition at line 65 of file profiler_trace.h.

Function Documentation

   bool __gnu_profile::__profcxx_init () [inline]
       This function must be called by each instrumentation point. The common path is inlined
       fully.

       Definition at line 653 of file profiler_trace.h.

   void __gnu_profile::__report () [inline]
       Final report method, registered with atexit. This can also be called directly by user
       code, including signal handlers. It is protected against deadlocks by the reentrance guard
       in profiler.h. However, when called from a signal handler that triggers while within
       __gnu_profile (under the guarded zone), no output will be produced.

       Definition at line 448 of file profiler_trace.h.

   __gnu_profile::_GLIBCXX_PROFILE_DEFINE_UNINIT_DATA (__gnu_cxx::__mutex, __global_mutex)
       Master lock.

Author

       Generated automatically by Doxygen for libstdc++ from the source code.