Re: [boost] [Boost-users] Stacktrace library starts review today 14th Dec
2016-12-15 3:44 GMT+03:00 Edward Diener
In the documentation for stacktrace I do not see anything about what level of C++ is required for a compiler using the stacktrace library or any information on what compilers have been tested when using the library.
It's C++98. Tested on latest clang(c++03, c++11), gcc(c++98, c++11, c++1y), msvc.
In the section of "Build, Macros and Backends" I do not think there is enough information about using a particular backend, other than saying that you need to link with such-and-such. Does stacktrace "automatically" find the header files it needs from these backends ? Even so I think some information about where it looks for the backend header files need to be given. I also think that some information of what libraries it looks to link with needs to be given. I am assuming it links with the static versions of these backend libraries unless I define either BOOST_STACKTRACE_LINK and BOOST_ALL_DYN_LINK, or BOOST_STACKTRACE_DYN_LINK. What if I want to use the header-only version but I want to link with the shared library backend ? I also assume that if I link with the static library backend I should probably be linking with the RTL static library, while if I link with the shared library backend I should also be linking with the RTL shared library.
What about 32-bit versus 64-bit use of stacktrace ? Do they both work as advertised with the correct backends, whether static or shared ? I think the "Build, Macros and Backends" need rto be expanded to cover alol these topics.
All the headers are found automatically and the library is header only if you do not define BOOST_STACKTRACE_LINK or BOOST_STACKTRACE_DYN_LINK. Backend is chosen automatically in header only mode. You need to do nothing, unless you encounter some problems on default setup (like you OS is POSIX but not LSB Core Specification 4.1) or unless you wish to disable stacktraces. If you define BOOST_STACKTRACE_LINK or BOOST_STACKTRACE_DYN_LINK you have to manually link with one of the backends. I'll try to improve the "Build, Macros and Backends" section to be more clear. -- Best regards, Antony Polukhin
On 15 Dec 2016, at 08:08, Antony Polukhin
wrote: It's C++98. Tested on latest clang(c++03, c++11), gcc(c++98, c++11, c++1y), msvc.
Just to make sure I’m not doing anything stupid: macOS is currently not supported (it fails to compile)? Thomas
2016-12-18 12:42 GMT+03:00 Thomas Trummer
On 15 Dec 2016, at 08:08, Antony Polukhin
wrote: It's C++98. Tested on latest clang(c++03, c++11), gcc(c++98, c++11, c++1y), msvc.
Just to make sure I’m not doing anything stupid: macOS is currently not supported (it fails to compile)?
I have not tried it on MacOS. if you have an access to the platform and some free time, I'd appreciate help with debugging. -- Best regards, Antony Polukhin
Antony Polukhin wrote:
I have not tried it on MacOS. if you have an access to the platform and some free time, I'd appreciate help with debugging.
According to http://www.nullptr.me/2013/04/14/generating-stack-trace-on-os-x/ Mac OS has ::backtrace: https://developer.apple.com/legacy/library/documentation/Darwin/Reference/Ma... It doesn't have addr2line, but it has atos, as suggested in https://spin.atomicobject.com/2013/01/13/exceptions-stack-traces-c/
participants (3)
-
Antony Polukhin
-
Peter Dimov
-
Thomas Trummer