I'm trying to reproduce the first and simplest example in the Boost Stacktrace documentation.
#define BOOST_STACKTRACE_USE_BACKTRACE #include <boost/stacktrace.hpp> #include <iostream> void bar(int n) { if (n <= 0) { // ... somewhere inside the `bar(int)` function that is called recursively: std::cout << boost::stacktrace::stacktrace(); return; } bar(n-1); } int main() { bar(4); } And am only having partial success: I'm getting the function name, but not the line:
0# bar(int) in ./plain_vanilla 1# bar(int) in ./plain_vanilla 2# bar(int) in ./plain_vanilla 3# bar(int) in ./plain_vanilla 4# bar(int) in ./plain_vanilla 5# main in ./plain_vanilla 6# __libc_start_main at ../csu/libc-start.c:342 7# _start in ./plain_vanilla (my source file is named plain_vanilla.cpp and my executable is plain_vanilla.) I'm using Boost 1.73.0, which I built, on a Devuan 3.0 GNU/Linux. libbacktrace is installed (it's part of glibc) and I'm linking against it.
Is this more likely something I've done wrong, or is it an actual bug in the library?