On Wed, 13 Jul 2022 at 18:28, François Dumont via Libstdc++
<libstd...@gcc.gnu.org> wrote:
>
> libstdc++: [_GLIBCXX_DEBUG] Add backtrace generation on demand
>
>    Add _GLIBCXX_DEBUG_BACKTRACE macro to activate backtrace generation
> on _GLIBCXX_DEBUG assertions. Prerequisite is to have configure the lib
> with:
>
>    --enable-libstdcxx-backtrace=yes
>
>    libstdc++-v3/ChangeLog:
>
>    * include/debug/formatter.h
>    [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_state): Declare.
>    [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_create_state): Declare.
>    [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_callback): Define.
>    [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_error_callback): Define.
>    [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_func): Define.
>    [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full): Declare.
>    [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_state): New.
>    [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_full): New.
>    * src/c++11/debug.cc (pretty_print): Rename into...
>    (print_function): ...that.

This does more than just rename it, what are the other changes for?


>    [_GLIBCXX_HAVE_STACKTRACE](print_backtrace): New.
>    (_Error_formatter::_M_error()): Adapt.
>    * src/libbacktrace/Makefile.am: Add backtrace.c.
>    * src/libbacktrace/Makefile.in: Regenerate.
>    * src/libbacktrace/backtrace-rename.h (backtrace_full): New.
>    * testsuite/23_containers/vector/debug/assign4_neg.cc: Add backtrace
>      generation.
>    * doc/xml/manual/debug_mode.xml: Document _GLIBCXX_DEBUG_BACKTRACE.
>    * doc/xml/manual/using.xml: Likewise.
>
> Tested under Linux x86_64 normal and _GLIBCXX_DEBUG modes.
>
> Ok to commit ?


>--- a/libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc
>+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc
>@@ -16,6 +16,7 @@
> // <http://www.gnu.org/licenses/>.
> //
> // { dg-do run { xfail *-*-* } }
>+// { dg-options "-D_GLIBCXX_DEBUG_BACKTRACE -lstdc++_libbacktrace" }
>
> #include <debug/vector>
> #include <debug/checks.h>

This will fail to link if the static lib isn't available.

Reply via email to