1<?xml version="1.0" standalone="yes"?> 2<library-reference id="stacktrace.reference"><title>Reference</title><header name="boost/stacktrace.hpp"> 3</header> 4<header name="boost/stacktrace/stacktrace.hpp"> 5<namespace name="boost"> 6<namespace name="stacktrace"> 7<class name="basic_stacktrace"><template> 8 <template-type-parameter name="Allocator"><purpose><para>Allocator to use during stack capture. </para></purpose></template-type-parameter> 9 </template><description><para>Class that on construction copies minimal information about call stack into its internals and provides access to that information. 10</para></description><typedef name="value_type"><type>std::vector< <classname>boost::stacktrace::frame</classname>, Allocator >::value_type</type></typedef> 11<typedef name="allocator_type"><type>std::vector< <classname>boost::stacktrace::frame</classname>, Allocator >::allocator_type</type></typedef> 12<typedef name="pointer"><type>std::vector< <classname>boost::stacktrace::frame</classname>, Allocator >::const_pointer</type></typedef> 13<typedef name="const_pointer"><type>std::vector< <classname>boost::stacktrace::frame</classname>, Allocator >::const_pointer</type></typedef> 14<typedef name="reference"><type>std::vector< <classname>boost::stacktrace::frame</classname>, Allocator >::const_reference</type></typedef> 15<typedef name="const_reference"><type>std::vector< <classname>boost::stacktrace::frame</classname>, Allocator >::const_reference</type></typedef> 16<typedef name="size_type"><type>std::vector< <classname>boost::stacktrace::frame</classname>, Allocator >::size_type</type></typedef> 17<typedef name="difference_type"><type>std::vector< <classname>boost::stacktrace::frame</classname>, Allocator >::difference_type</type></typedef> 18<typedef name="iterator"><type>std::vector< <classname>boost::stacktrace::frame</classname>, Allocator >::const_iterator</type></typedef> 19<typedef name="const_iterator"><type>std::vector< <classname>boost::stacktrace::frame</classname>, Allocator >::const_iterator</type></typedef> 20<typedef name="reverse_iterator"><type>std::vector< <classname>boost::stacktrace::frame</classname>, Allocator >::const_reverse_iterator</type></typedef> 21<typedef name="const_reverse_iterator"><type>std::vector< <classname>boost::stacktrace::frame</classname>, Allocator >::const_reverse_iterator</type></typedef> 22<method-group name="public member functions"> 23<method name="size" cv="const noexcept"><type>size_type</type><description><para> 24<emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description><returns><para>Number of function names stored inside the class.</para> 25</returns></method> 26<method name="operator[]" cv="const noexcept"><type>const_reference</type><parameter name="frame_no"><paramtype>std::size_t</paramtype><description><para>Zero based index of frame to return. 0 is the function index where stacktrace was constructed and index close to this->size() contains function <computeroutput>main()</computeroutput>. </para></description></parameter><description><para> 27 28<emphasis role="bold">Complexity:</emphasis> O(1).</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description><returns><para>frame that references the actual frame info, stored inside *this.</para> 29</returns></method> 30<method name="begin" cv="const noexcept"><type>const_iterator</type><description><para><emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description></method> 31<method name="cbegin" cv="const noexcept"><type>const_iterator</type><description><para><emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description></method> 32<method name="end" cv="const noexcept"><type>const_iterator</type><description><para><emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description></method> 33<method name="cend" cv="const noexcept"><type>const_iterator</type><description><para><emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description></method> 34<method name="rbegin" cv="const noexcept"><type>const_reverse_iterator</type><description><para><emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description></method> 35<method name="crbegin" cv="const noexcept"><type>const_reverse_iterator</type><description><para><emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description></method> 36<method name="rend" cv="const noexcept"><type>const_reverse_iterator</type><description><para><emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description></method> 37<method name="crend" cv="const noexcept"><type>const_reverse_iterator</type><description><para><emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description></method> 38<method name="conversion-operator" cv="const noexcept" specifiers="explicit"><type>bool</type><purpose>Allows to check that stack trace capturing was successful. </purpose><description><para> 39<emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description><returns><para><computeroutput>true</computeroutput> if <computeroutput>this->size() != 0</computeroutput></para> 40</returns></method> 41<method name="empty" cv="const noexcept"><type>bool</type><purpose>Allows to check that stack trace failed. </purpose><description><para> 42<emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description><returns><para><computeroutput>true</computeroutput> if <computeroutput>this->size() == 0</computeroutput></para> 43</returns></method> 44<method name="as_vector" cv="const noexcept"><type>const std::vector< <classname>boost::stacktrace::frame</classname>, Allocator > &</type></method> 45</method-group> 46<constructor cv="noexcept"><purpose>Stores the current function call sequence inside *this without any decoding or any other heavy platform specific operations. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe if Allocator construction, copying, Allocator::allocate and Allocator::deallocate are async signal safe. </para></description></constructor> 47<constructor specifiers="explicit" cv="noexcept"><parameter name="a"><paramtype>const allocator_type &</paramtype><description><para>Allocator that would be passed to underlying storeage. </para></description></parameter><purpose>Stores the current function call sequence inside *this without any decoding or any other heavy platform specific operations. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe if Allocator construction, copying, Allocator::allocate and Allocator::deallocate are async signal safe.</para><para> 48</para></description></constructor> 49<constructor cv="noexcept"><parameter name="skip"><paramtype>std::size_t</paramtype><description><para>How many top calls to skip and do not store in *this.</para></description></parameter><parameter name="max_depth"><paramtype>std::size_t</paramtype><description><para>Max call sequence depth to collect.</para></description></parameter><parameter name="a"><paramtype>const allocator_type &</paramtype><default>allocator_type()</default><description><para>Allocator that would be passed to underlying storeage.</para></description></parameter><purpose>Stores [skip, skip + max_depth) of the current function call sequence inside *this without any decoding or any other heavy platform specific operations. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe if Allocator construction, copying, Allocator::allocate and Allocator::deallocate are async signal safe.</para><para> 50 51</para></description><throws><simpara><classname>Nothing.</classname> Note that default construction of allocator may throw, however it is performed outside the constructor and exception in <computeroutput>allocator_type()</computeroutput> would not result in calling <computeroutput>std::terminate</computeroutput>. </simpara></throws></constructor> 52<constructor><parameter name="st"><paramtype>const <classname>basic_stacktrace</classname> &</paramtype></parameter><description><para><emphasis role="bold">Complexity:</emphasis> O(st.size())</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe if Allocator construction, copying, Allocator::allocate and Allocator::deallocate are async signal safe. </para></description></constructor> 53<copy-assignment><type><classname>basic_stacktrace</classname> &</type><parameter name="st"><paramtype>const <classname>basic_stacktrace</classname> &</paramtype></parameter><description><para><emphasis role="bold">Complexity:</emphasis> O(st.size())</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe if Allocator construction, copying, Allocator::allocate and Allocator::deallocate are async signal safe. </para></description></copy-assignment> 54<destructor><description><para><emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe if Allocator::deallocate is async signal safe. </para></description></destructor> 55<constructor cv="noexcept"><parameter name="st"><paramtype><classname>basic_stacktrace</classname> &&</paramtype></parameter><description><para><emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe if Allocator construction and copying are async signal safe. </para></description></constructor> 56<copy-assignment><type><classname>basic_stacktrace</classname> &</type><parameter name="st"><paramtype><classname>basic_stacktrace</classname> &&</paramtype></parameter><description><para><emphasis role="bold">Complexity:</emphasis> O(st.size())</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe if Allocator construction and copying are async signal safe. </para></description></copy-assignment> 57<method-group name="public static functions"> 58<method name="from_dump" specifiers="static"><type><classname>basic_stacktrace</classname></type><template> 59 <template-type-parameter name="Char"/> 60 <template-type-parameter name="Trait"/> 61 </template><parameter name="in"><paramtype>std::basic_istream< Char, Trait > &</paramtype></parameter><parameter name="a"><paramtype>const allocator_type &</paramtype><default>allocator_type()</default></parameter><description><para>Constructs stacktrace from basic_istreamable that references the dumped stacktrace. Terminating zero frame is discarded.</para><para><emphasis role="bold">Complexity:</emphasis> O(N) </para></description></method> 62<method name="from_dump" specifiers="static"><type><classname>basic_stacktrace</classname></type><parameter name="begin"><paramtype>const void *</paramtype><description><para>Begining of the memory where the stacktrace was saved using the boost::stacktrace::safe_dump_to</para></description></parameter><parameter name="buffer_size_in_bytes"><paramtype>std::size_t</paramtype><description><para>Size of the memory. Usually the same value that was passed to the boost::stacktrace::safe_dump_to</para></description></parameter><parameter name="a"><paramtype>const allocator_type &</paramtype><default>allocator_type()</default></parameter><description><para>Constructs stacktrace from raw memory dump. Terminating zero frame is discarded.</para><para> 63<emphasis role="bold">Complexity:</emphasis> O(size) in worst case </para></description></method> 64</method-group> 65</class><typedef name="stacktrace"><purpose>This is the typedef to use unless you'd like to provide a specific allocator to <classname alt="boost::stacktrace::basic_stacktrace">boost::stacktrace::basic_stacktrace</classname>. </purpose><type><classname>basic_stacktrace</classname></type></typedef> 66<function name="operator<"><type>bool</type><template> 67 <template-type-parameter name="Allocator1"/> 68 <template-type-parameter name="Allocator2"/> 69 </template><parameter name="lhs"><paramtype>const <classname>basic_stacktrace</classname>< Allocator1 > &</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>basic_stacktrace</classname>< Allocator2 > &</paramtype></parameter><purpose>Compares stacktraces for less, order is platform dependent. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> Amortized O(1); worst case O(size())</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description></function> 70<function name="operator=="><type>bool</type><template> 71 <template-type-parameter name="Allocator1"/> 72 <template-type-parameter name="Allocator2"/> 73 </template><parameter name="lhs"><paramtype>const <classname>basic_stacktrace</classname>< Allocator1 > &</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>basic_stacktrace</classname>< Allocator2 > &</paramtype></parameter><purpose>Compares stacktraces for equality. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> Amortized O(1); worst case O(size())</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description></function> 74<function name="operator>"><type>bool</type><template> 75 <template-type-parameter name="Allocator1"/> 76 <template-type-parameter name="Allocator2"/> 77 </template><parameter name="lhs"><paramtype>const <classname>basic_stacktrace</classname>< Allocator1 > &</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>basic_stacktrace</classname>< Allocator2 > &</paramtype></parameter><purpose>Comparison operators that provide platform dependant ordering and have amortized O(1) complexity; O(size()) worst case complexity; are Async-Handler-Safe. </purpose></function> 78<function name="operator<="><type>bool</type><template> 79 <template-type-parameter name="Allocator1"/> 80 <template-type-parameter name="Allocator2"/> 81 </template><parameter name="lhs"><paramtype>const <classname>basic_stacktrace</classname>< Allocator1 > &</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>basic_stacktrace</classname>< Allocator2 > &</paramtype></parameter></function> 82<function name="operator>="><type>bool</type><template> 83 <template-type-parameter name="Allocator1"/> 84 <template-type-parameter name="Allocator2"/> 85 </template><parameter name="lhs"><paramtype>const <classname>basic_stacktrace</classname>< Allocator1 > &</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>basic_stacktrace</classname>< Allocator2 > &</paramtype></parameter></function> 86<function name="operator!="><type>bool</type><template> 87 <template-type-parameter name="Allocator1"/> 88 <template-type-parameter name="Allocator2"/> 89 </template><parameter name="lhs"><paramtype>const <classname>basic_stacktrace</classname>< Allocator1 > &</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>basic_stacktrace</classname>< Allocator2 > &</paramtype></parameter></function> 90<function name="hash_value"><type>std::size_t</type><template> 91 <template-type-parameter name="Allocator"/> 92 </template><parameter name="st"><paramtype>const <classname>basic_stacktrace</classname>< Allocator > &</paramtype></parameter><purpose>Fast hashing support, O(st.size()) complexity; Async-Handler-Safe. </purpose></function> 93<function name="to_string"><type>std::string</type><template> 94 <template-type-parameter name="Allocator"/> 95 </template><parameter name="bt"><paramtype>const <classname>basic_stacktrace</classname>< Allocator > &</paramtype></parameter><purpose>Returns std::string with the stacktrace in a human readable format; unsafe to use in async handlers. </purpose></function> 96<function name="operator<<"><type>std::basic_ostream< CharT, TraitsT > &</type><template> 97 <template-type-parameter name="CharT"/> 98 <template-type-parameter name="TraitsT"/> 99 <template-type-parameter name="Allocator"/> 100 </template><parameter name="os"><paramtype>std::basic_ostream< CharT, TraitsT > &</paramtype></parameter><parameter name="bt"><paramtype>const <classname>basic_stacktrace</classname>< Allocator > &</paramtype></parameter><purpose>Outputs stacktrace in a human readable format to the output stream <computeroutput>os</computeroutput>; unsafe to use in async handlers. </purpose></function> 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116</namespace> 117</namespace> 118</header> 119<header name="boost/stacktrace/detail/frame_decl.hpp"> 120<para>Use <boost/stacktrace/frame.hpp> header instead of this one! </para><namespace name="boost"> 121<namespace name="stacktrace"> 122<class name="frame"><purpose>Class that stores frame/function address and can get information about it at runtime. </purpose><typedef name="native_frame_ptr_t"><type><emphasis>unspecified</emphasis></type></typedef> 123<method-group name="public member functions"> 124<method name="name" cv="const"><type>std::string</type><description><para> 125<emphasis role="bold">Complexity:</emphasis> unknown (lots of platform specific work).</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Unsafe. 126</para></description><returns><para>Name of the frame (function name in a human readable form).</para> 127</returns><throws><simpara><classname>std::bad_alloc</classname> if not enough memory to construct resulting string. </simpara></throws></method> 128<method name="address" cv="const noexcept"><type>constexpr native_frame_ptr_t</type><description><para> 129<emphasis role="bold">Complexity:</emphasis> O(1).</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. 130</para></description><returns><para>Address of the frame function.</para> 131</returns><throws><simpara><classname>Nothing.</classname> </simpara></throws></method> 132<method name="source_file" cv="const"><type>std::string</type><description><para> 133 134<emphasis role="bold">Complexity:</emphasis> unknown (lots of platform specific work).</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Unsafe. </para></description><returns><para>Path to the source file, were the function of the frame is defined. Returns empty string if this->source_line() == 0. </para> 135</returns><throws><simpara><classname>std::bad_alloc</classname> if not enough memory to construct resulting string.</simpara></throws></method> 136<method name="source_line" cv="const"><type>std::size_t</type><description><para> 137 138<emphasis role="bold">Complexity:</emphasis> unknown (lots of platform specific work).</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Unsafe. </para></description><returns><para>Code line in the source file, were the function of the frame is defined. </para> 139</returns><throws><simpara><classname>std::bad_alloc</classname> if not enough memory to construct string for internal needs.</simpara></throws></method> 140<method name="empty" cv="const noexcept"><type>constexpr bool</type><purpose>Checks that frame is not references NULL address. </purpose><description><para> 141<emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. Checks that frame references NULL address. 142<emphasis role="bold">Complexity:</emphasis> O(1)</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. </para></description><returns><para><computeroutput>true</computeroutput> if <computeroutput>this->address() != 0</computeroutput></para> 143</returns><returns><para><computeroutput>true</computeroutput> if <computeroutput>this->address() == 0</computeroutput></para> 144</returns></method> 145</method-group> 146<constructor cv="noexcept"><purpose>Constructs frame that references NULL address. Calls to source_file() and source_line() will return empty string. Calls to source_line() will return 0. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(1).</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. 147</para></description><throws><simpara><classname>Nothing.</classname> </simpara></throws></constructor> 148<constructor cv="= default"><parameter name=""><paramtype>const <classname>frame</classname> &</paramtype></parameter><purpose>Copy constructs frame. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(1).</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. 149</para></description><throws><simpara><classname>Nothing.</classname> </simpara></throws></constructor> 150<copy-assignment cv="= default"><type>constexpr <classname>frame</classname> &</type><parameter name=""><paramtype>const <classname>frame</classname> &</paramtype></parameter><purpose>Copy assigns frame. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(1).</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. 151</para></description><throws><simpara><classname>Nothing.</classname> </simpara></throws></copy-assignment> 152<constructor specifiers="explicit" cv="noexcept"><parameter name="addr"><paramtype>native_frame_ptr_t</paramtype></parameter><purpose>Constructs frame that references addr and could later generate information about that address using platform specific features. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(1).</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. 153</para></description><throws><simpara><classname>Nothing.</classname> </simpara></throws></constructor> 154<constructor specifiers="explicit" cv="noexcept"><template> 155 <template-type-parameter name="T"/> 156 </template><parameter name="function_addr"><paramtype>T *</paramtype></parameter><purpose>Constructs frame that references function_addr and could later generate information about that function using platform specific features. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(1).</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe. 157</para></description><throws><simpara><classname>Nothing.</classname> </simpara></throws></constructor> 158</class> 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182</namespace> 183</namespace> 184</header> 185<header name="boost/stacktrace/frame.hpp"> 186<namespace name="boost"> 187<namespace name="stacktrace"> 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203<function name="operator<"><type>constexpr bool</type><parameter name="lhs"><paramtype>const <classname>frame</classname> &</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>frame</classname> &</paramtype></parameter><purpose>Comparison operators that provide platform dependant ordering and have O(1) complexity; are Async-Handler-Safe. </purpose></function> 204<function name="operator>"><type>constexpr bool</type><parameter name="lhs"><paramtype>const <classname>frame</classname> &</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>frame</classname> &</paramtype></parameter></function> 205<function name="operator<="><type>constexpr bool</type><parameter name="lhs"><paramtype>const <classname>frame</classname> &</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>frame</classname> &</paramtype></parameter></function> 206<function name="operator>="><type>constexpr bool</type><parameter name="lhs"><paramtype>const <classname>frame</classname> &</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>frame</classname> &</paramtype></parameter></function> 207<function name="operator=="><type>constexpr bool</type><parameter name="lhs"><paramtype>const <classname>frame</classname> &</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>frame</classname> &</paramtype></parameter></function> 208<function name="operator!="><type>constexpr bool</type><parameter name="lhs"><paramtype>const <classname>frame</classname> &</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>frame</classname> &</paramtype></parameter></function> 209<function name="hash_value"><type>std::size_t</type><parameter name="f"><paramtype>const <classname>frame</classname> &</paramtype></parameter><purpose>Fast hashing support, O(1) complexity; Async-Handler-Safe. </purpose></function> 210<function name="to_string"><type>std::string</type><parameter name="f"><paramtype>const <classname>frame</classname> &</paramtype></parameter><purpose>Outputs <classname alt="boost::stacktrace::frame">stacktrace::frame</classname> in a human readable format to string; unsafe to use in async handlers. </purpose></function> 211<function name="operator<<"><type>std::basic_ostream< CharT, TraitsT > &</type><template> 212 <template-type-parameter name="CharT"/> 213 <template-type-parameter name="TraitsT"/> 214 </template><parameter name="os"><paramtype>std::basic_ostream< CharT, TraitsT > &</paramtype></parameter><parameter name="f"><paramtype>const <classname>frame</classname> &</paramtype></parameter><purpose>Outputs <classname alt="boost::stacktrace::frame">stacktrace::frame</classname> in a human readable format to output stream; unsafe to use in async handlers. </purpose></function> 215</namespace> 216</namespace> 217</header> 218<header name="boost/stacktrace/safe_dump_to.hpp"> 219<para>This header contains low-level async-signal-safe functions for dumping call stacks. Dumps are binary serialized arrays of <computeroutput>void*</computeroutput>, so you could read them by using 'od -tx8 -An stacktrace_dump_failename' Linux command or using boost::stacktrace::stacktrace::from_dump functions. </para><namespace name="boost"> 220<namespace name="stacktrace"> 221 222 223 224 225 226 227 228 229 230<function name="safe_dump_to"><type>std::size_t</type><parameter name="memory"><paramtype>void *</paramtype><description><para>Preallocated buffer to store current function call sequence into.</para></description></parameter><parameter name="size"><paramtype>std::size_t</paramtype><description><para>Size of the preallocated buffer. </para></description></parameter><purpose>Stores current function call sequence into the memory. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe.</para><para> 231 232</para></description><returns><para>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)</para> 233</returns></function> 234<function name="safe_dump_to"><type>std::size_t</type><parameter name="skip"><paramtype>std::size_t</paramtype><description><para>How many top calls to skip and do not store.</para></description></parameter><parameter name="memory"><paramtype>void *</paramtype><description><para>Preallocated buffer to store current function call sequence into.</para></description></parameter><parameter name="size"><paramtype>std::size_t</paramtype><description><para>Size of the preallocated buffer. </para></description></parameter><purpose>Stores current function call sequence into the memory. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe.</para><para> 235 236</para></description><returns><para>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)</para> 237</returns></function> 238<function name="safe_dump_to"><type>std::size_t</type><parameter name="file"><paramtype>const char *</paramtype><description><para>File to store current function call sequence. </para></description></parameter><purpose>Opens a file and rewrites its content with current function call sequence if such operations are async signal safe. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe.</para><para> 239 240</para></description><returns><para>Stored call sequence depth including terminating zero frame.</para> 241</returns></function> 242<function name="safe_dump_to"><type>std::size_t</type><parameter name="skip"><paramtype>std::size_t</paramtype><description><para>How many top calls to skip and do not store.</para></description></parameter><parameter name="max_depth"><paramtype>std::size_t</paramtype><description><para>Max call sequence depth to collect.</para></description></parameter><parameter name="file"><paramtype>const char *</paramtype><description><para>File to store current function call sequence. </para></description></parameter><purpose>Opens a file and rewrites its content with current function call sequence if such operations are async signal safe. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe.</para><para> 243 244</para></description><returns><para>Stored call sequence depth including terminating zero frame.</para> 245</returns></function> 246<function name="safe_dump_to"><type>std::size_t</type><parameter name="fd"><paramtype>platform_specific_descriptor</paramtype></parameter><purpose>Writes into the provided file descriptor the current function call sequence if such operation is async signal safe. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe.</para><para> 247 248</para></description><returns><para>Stored call sequence depth including terminating zero frame.</para> 249</returns></function> 250<function name="safe_dump_to"><type>std::size_t</type><parameter name="skip"><paramtype>std::size_t</paramtype><description><para>How many top calls to skip and do not store.</para></description></parameter><parameter name="max_depth"><paramtype>std::size_t</paramtype><description><para>Max call sequence depth to collect.</para></description></parameter><parameter name="fd"><paramtype>platform_specific_descriptor</paramtype></parameter><purpose>Writes into the provided file descriptor the current function call sequence if such operation is async signal safe. </purpose><description><para><emphasis role="bold">Complexity:</emphasis> O(N) where N is call sequence length, O(1) if BOOST_STACKTRACE_USE_NOOP is defined.</para><para><emphasis role="bold">Async-Handler-Safety</emphasis>: Safe.</para><para> 251 252</para></description><returns><para>Stored call sequence depth including terminating zero frame.</para> 253</returns></function> 254 255 256 257 258 259 260 261 262 263</namespace> 264</namespace> 265</header> 266<header name="boost/stacktrace/stacktrace_fwd.hpp"> 267<para>This header contains only forward declarations of <classname alt="boost::stacktrace::frame">boost::stacktrace::frame</classname>, <classname alt="boost::stacktrace::basic_stacktrace">boost::stacktrace::basic_stacktrace</classname>, boost::stacktrace::stacktrace and does not include any other Boost headers. </para></header> 268</library-reference>