Here is the part of the libbacktrace patch with the enhancement to the rendering of assert message. It only contains one real fix, the rendering of address. In 2 places it was done with "0x%p", so resulting in something like: 0x0x012345678 Otherwise it is just enhancements, mostly avoiding intermediate buffering. I am adding the _Parameter::_Named type to help on the rendering. I hesitated in doing the same for the _M_iterator type but eventually managed it with a template function.     libstdc++: [_GLIBCXX_DEBUG] Enhance rendering of assert message     Avoid building an intermediate buffer to print to stderr, push directly to stderr.     libstdc++-v3/ChangeLog:             * include/debug/formatter.h             (_Error_formatter::_Parameter::_Named): New.             (_Error_formatter::_Parameter::_Type): Inherit latter.             (_Error_formatter::_Parameter::_M_integer): Likewise.             (_Error_formatter::_Parameter::_M_string): Likewise.             * src/c++11/debug.cc: Include .             (_Print_func_t): New.             (print_raw(PrintContext&, const char*, ptrdiff_t)): New.             (print_word): Use '%.*s' format in fprintf to render only expected number of chars.             (pretty_print(PrintContext&, const char*, _Print_func_t)): New.             (print_type): Rename in...             (print_type_info): ...this. Use pretty_print.             (print_address, print_integer): New.             (print_named_name, print_iterator_constness, print_iterator_state): New.             (print_iterator_seq_type): New.             (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.             (print_field): Use latters.             (print_quoted_named_name, print_type_type, print_type, print_instance): New.             (print_string(PrintContext&, const char*, const _Parameter*, size_t)):             Change signature to...             (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):             ...this and adapt. Remove intermediate buffer to render input string.             (print_string(PrintContext&, const char*, ptrdiff_t)): New. Ok to commit ? François