<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jun 18, 2016 at 12:51 PM, Jason Roehm <span dir="ltr">&lt;<a href="mailto:jasonr@3db-labs.com" target="_blank">jasonr@3db-labs.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto"><span class=""><div></div><div><br></div><div><br>On Jun 18, 2016, at 12:44 PM, Antony Polukhin &lt;<a href="mailto:antoshkka@gmail.com" target="_blank">antoshkka@gmail.com</a>&gt; wrote:<br><br></div><blockquote type="cite"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2016-06-18 17:49 GMT+03:00 Edward Diener <span dir="ltr">&lt;<a href="mailto:eldiener@tropicsoft.com" target="_blank">eldiener@tropicsoft.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span>On 6/18/2016 6:34 AM, Antony Polukhin wrote:</span><br><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
Is there interest in it?<br>
What functionality would you like to have in it?<br>
</blockquote>
<br></span>
Documentation is always helpful.<br></blockquote><br></div><div class="gmail_quote">Yeep, that&#39;s currently missing :(<br></div><div class="gmail_quote"><br></div><div class="gmail_quote">If in short:<br><pre>namespace boost { namespace stacktrace {<br></pre><pre>class stacktrace {
public:
    BOOST_STATIC_CONSTEXPR std::size_t max_symbol_width = 256;
    typedef boost::array&lt;char, max_symbol_width&gt;  frame_t;

    stacktrace() BOOST_NOEXCEPT;
    stacktrace(const stacktrace&amp; bt) BOOST_NOEXCEPT;
    stacktrace&amp; operator=(const stacktrace&amp; bt) BOOST_NOEXCEPT;
    ~stacktrace() BOOST_NOEXCEPT;

    std::size_t size() const BOOST_NOEXCEPT;
    frame_t operator[](std::size_t frame) const BOOST_NOEXCEPT;
};

template &lt;class CharT, class TraitsT&gt;
std::basic_ostream&lt;CharT, TraitsT&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;CharT, TraitsT&gt;&amp; os, const stacktrace&amp; bt);</pre>}}<br><br></div><div class="gmail_quote">So you can construct stacktraces, copy them and output them to streams:<br><br></div><div class="gmail_quote">std::cerr &lt;&lt; stacktrace();</div></div></div></blockquote><br></span><div>I think a library like this could be very useful for practical cross-platform development. </div><div><br></div></div></blockquote><div><br></div><div>Years back I implemented an abstraction for this which I contributed to ACE (<a href="http://www.dre.vanderbilt.edu/%7Eschmidt/ACE.html">http://www.dre.vanderbilt.edu/%7Eschmidt/ACE.html</a>)</div><div><br></div><div><a href="https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/ace/Stack_Trace.h">https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/ace/Stack_Trace.h</a><br></div><div><a href="https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/ace/Stack_Trace.cpp">https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/ace/Stack_Trace.cpp</a><br></div><div><br></div><div>You might be able to use the implementations there as a starting point.</div></div><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Chris Cleeland</div>
</div></div>