Reference
Class that on construction copies minimal information about call stack into its internals and provides access to that information. std::vector< boost::stacktrace::frame, Allocator >::value_type std::vector< boost::stacktrace::frame, Allocator >::allocator_type std::vector< boost::stacktrace::frame, Allocator >::const_pointer std::vector< boost::stacktrace::frame, Allocator >::const_pointer std::vector< boost::stacktrace::frame, Allocator >::const_reference std::vector< boost::stacktrace::frame, Allocator >::const_reference std::vector< boost::stacktrace::frame, Allocator >::size_type std::vector< boost::stacktrace::frame, Allocator >::difference_type std::vector< boost::stacktrace::frame, Allocator >::const_iterator std::vector< boost::stacktrace::frame, Allocator >::const_iterator std::vector< boost::stacktrace::frame, Allocator >::const_reverse_iterator std::vector< boost::stacktrace::frame, Allocator >::const_reverse_iterator size_type Complexity: O(1)Async-Handler-Safety: Safe. Number of function names stored inside the class. const_referencestd::size_tZero based index of frame to return. 0 is the function index where stacktrace was constructed and index close to this->size() contains function main(). Complexity: O(1).Async-Handler-Safety: Safe. frame that references the actual frame info, stored inside *this. const_iteratorComplexity: O(1)Async-Handler-Safety: Safe. const_iteratorComplexity: O(1)Async-Handler-Safety: Safe. const_iteratorComplexity: O(1)Async-Handler-Safety: Safe. const_iteratorComplexity: O(1)Async-Handler-Safety: Safe. const_reverse_iteratorComplexity: O(1)Async-Handler-Safety: Safe. const_reverse_iteratorComplexity: O(1)Async-Handler-Safety: Safe. const_reverse_iteratorComplexity: O(1)Async-Handler-Safety: Safe. const_reverse_iteratorComplexity: O(1)Async-Handler-Safety: Safe. boolAllows to check that stack trace capturing was successful. Complexity: O(1)Async-Handler-Safety: Safe. true if this->size() != 0 boolAllows to check that stack trace failed. Complexity: O(1)Async-Handler-Safety: Safe. true if this->size() == 0 const std::vector< boost::stacktrace::frame, Allocator > & Stores the current function call sequence inside *this without any decoding or any other heavy platform specific operations. Complexity: O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.Async-Handler-Safety: Safe if Allocator construction, copying, Allocator::allocate and Allocator::deallocate are async signal safe. const allocator_type &Allocator that would be passed to underlying storeage. Stores the current function call sequence inside *this without any decoding or any other heavy platform specific operations. Complexity: O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.Async-Handler-Safety: Safe if Allocator construction, copying, Allocator::allocate and Allocator::deallocate are async signal safe. std::size_tHow many top calls to skip and do not store in *this.std::size_tMax call sequence depth to collect.const allocator_type &allocator_type()Allocator that would be passed to underlying storeage.Stores [skip, skip + max_depth) of the current function call sequence inside *this without any decoding or any other heavy platform specific operations. Complexity: O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.Async-Handler-Safety: Safe if Allocator construction, copying, Allocator::allocate and Allocator::deallocate are async signal safe. Nothing. Note that default construction of allocator may throw, however it is performed outside the constructor and exception in allocator_type() would not result in calling std::terminate. const basic_stacktrace &Complexity: O(st.size())Async-Handler-Safety: Safe if Allocator construction, copying, Allocator::allocate and Allocator::deallocate are async signal safe. basic_stacktrace &const basic_stacktrace &Complexity: O(st.size())Async-Handler-Safety: Safe if Allocator construction, copying, Allocator::allocate and Allocator::deallocate are async signal safe. Complexity: O(1)Async-Handler-Safety: Safe if Allocator::deallocate is async signal safe. basic_stacktrace &&Complexity: O(1)Async-Handler-Safety: Safe if Allocator construction and copying are async signal safe. basic_stacktrace &basic_stacktrace &&Complexity: O(st.size())Async-Handler-Safety: Safe if Allocator construction and copying are async signal safe. basic_stacktracestd::basic_istream< Char, Trait > &const allocator_type &allocator_type()Constructs stacktrace from basic_istreamable that references the dumped stacktrace. Terminating zero frame is discarded.Complexity: O(N) basic_stacktraceconst void *Begining of the memory where the stacktrace was saved using the boost::stacktrace::safe_dump_tostd::size_tSize of the memory. Usually the same value that was passed to the boost::stacktrace::safe_dump_toconst allocator_type &allocator_type()Constructs stacktrace from raw memory dump. Terminating zero frame is discarded. Complexity: O(size) in worst case This is the typedef to use unless you'd like to provide a specific allocator to boost::stacktrace::basic_stacktrace. basic_stacktrace boolconst basic_stacktrace< Allocator1 > &const basic_stacktrace< Allocator2 > &Compares stacktraces for less, order is platform dependent. Complexity: Amortized O(1); worst case O(size())Async-Handler-Safety: Safe. boolconst basic_stacktrace< Allocator1 > &const basic_stacktrace< Allocator2 > &Compares stacktraces for equality. Complexity: Amortized O(1); worst case O(size())Async-Handler-Safety: Safe. boolconst basic_stacktrace< Allocator1 > &const basic_stacktrace< Allocator2 > &Comparison operators that provide platform dependant ordering and have amortized O(1) complexity; O(size()) worst case complexity; are Async-Handler-Safe. boolconst basic_stacktrace< Allocator1 > &const basic_stacktrace< Allocator2 > & boolconst basic_stacktrace< Allocator1 > &const basic_stacktrace< Allocator2 > & boolconst basic_stacktrace< Allocator1 > &const basic_stacktrace< Allocator2 > & std::size_tconst basic_stacktrace< Allocator > &Fast hashing support, O(st.size()) complexity; Async-Handler-Safe. std::stringconst basic_stacktrace< Allocator > &Returns std::string with the stacktrace in a human readable format; unsafe to use in async handlers. std::basic_ostream< CharT, TraitsT > &std::basic_ostream< CharT, TraitsT > &const basic_stacktrace< Allocator > &Outputs stacktrace in a human readable format to the output stream os; unsafe to use in async handlers.
Use <boost/stacktrace/frame.hpp> header instead of this one! Class that stores frame/function address and can get information about it at runtime. unspecified std::string Complexity: unknown (lots of platform specific work).Async-Handler-Safety: Unsafe. Name of the frame (function name in a human readable form). std::bad_alloc if not enough memory to construct resulting string. constexpr native_frame_ptr_t Complexity: O(1).Async-Handler-Safety: Safe. Address of the frame function. Nothing. std::string Complexity: unknown (lots of platform specific work).Async-Handler-Safety: Unsafe. Path to the source file, were the function of the frame is defined. Returns empty string if this->source_line() == 0. std::bad_alloc if not enough memory to construct resulting string. std::size_t Complexity: unknown (lots of platform specific work).Async-Handler-Safety: Unsafe. Code line in the source file, were the function of the frame is defined. std::bad_alloc if not enough memory to construct string for internal needs. constexpr boolChecks that frame is not references NULL address. Complexity: O(1)Async-Handler-Safety: Safe. Checks that frame references NULL address. Complexity: O(1)Async-Handler-Safety: Safe. true if this->address() != 0 true if this->address() == 0 Constructs frame that references NULL address. Calls to source_file() and source_line() will return empty string. Calls to source_line() will return 0. Complexity: O(1).Async-Handler-Safety: Safe. Nothing. const frame &Copy constructs frame. Complexity: O(1).Async-Handler-Safety: Safe. Nothing. constexpr frame &const frame &Copy assigns frame. Complexity: O(1).Async-Handler-Safety: Safe. Nothing. native_frame_ptr_tConstructs frame that references addr and could later generate information about that address using platform specific features. Complexity: O(1).Async-Handler-Safety: Safe. Nothing. T *Constructs frame that references function_addr and could later generate information about that function using platform specific features. Complexity: O(1).Async-Handler-Safety: Safe. Nothing.
constexpr boolconst frame &const frame &Comparison operators that provide platform dependant ordering and have O(1) complexity; are Async-Handler-Safe. constexpr boolconst frame &const frame & constexpr boolconst frame &const frame & constexpr boolconst frame &const frame & constexpr boolconst frame &const frame & constexpr boolconst frame &const frame & std::size_tconst frame &Fast hashing support, O(1) complexity; Async-Handler-Safe. std::stringconst frame &Outputs stacktrace::frame in a human readable format to string; unsafe to use in async handlers. std::basic_ostream< CharT, TraitsT > &std::basic_ostream< CharT, TraitsT > &const frame &Outputs stacktrace::frame in a human readable format to output stream; unsafe to use in async handlers.
This header contains low-level async-signal-safe functions for dumping call stacks. Dumps are binary serialized arrays of void*, so you could read them by using 'od -tx8 -An stacktrace_dump_failename' Linux command or using boost::stacktrace::stacktrace::from_dump functions. std::size_tvoid *Preallocated buffer to store current function call sequence into.std::size_tSize of the preallocated buffer. Stores current function call sequence into the memory. Complexity: O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.Async-Handler-Safety: Safe. Stored call sequence depth including terminating zero frame. To get the actually consumed bytes multiply this value by the sizeof(boost::stacktrace::frame::native_frame_ptr_t) std::size_tstd::size_tHow many top calls to skip and do not store.void *Preallocated buffer to store current function call sequence into.std::size_tSize of the preallocated buffer. Stores current function call sequence into the memory. Complexity: O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.Async-Handler-Safety: Safe. Stored call sequence depth including terminating zero frame. To get the actually consumed bytes multiply this value by the sizeof(boost::stacktrace::frame::native_frame_ptr_t) std::size_tconst char *File to store current function call sequence. Opens a file and rewrites its content with current function call sequence if such operations are async signal safe. Complexity: O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.Async-Handler-Safety: Safe. Stored call sequence depth including terminating zero frame. std::size_tstd::size_tHow many top calls to skip and do not store.std::size_tMax call sequence depth to collect.const char *File to store current function call sequence. Opens a file and rewrites its content with current function call sequence if such operations are async signal safe. Complexity: O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.Async-Handler-Safety: Safe. Stored call sequence depth including terminating zero frame. std::size_tplatform_specific_descriptorWrites into the provided file descriptor the current function call sequence if such operation is async signal safe. Complexity: O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.Async-Handler-Safety: Safe. Stored call sequence depth including terminating zero frame. std::size_tstd::size_tHow many top calls to skip and do not store.std::size_tMax call sequence depth to collect.platform_specific_descriptorWrites into the provided file descriptor the current function call sequence if such operation is async signal safe. Complexity: O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.Async-Handler-Safety: Safe. Stored call sequence depth including terminating zero frame.
This header contains only forward declarations of boost::stacktrace::frame, boost::stacktrace::basic_stacktrace, boost::stacktrace::stacktrace and does not include any other Boost headers.