On Wed, 13 Mar 2024 at 20:53, Tom Tromey wrote:
Just a guess, but maybe making the type global instead of a local type (with no linkage) will solve it:
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc @@ -63,6 +63,11 @@ struct datum
std::unique_ptr<datum> global;
+struct custom_cat : std::error_category {
- const char* name() const noexcept { return "miaow"; }
- std::string message(int) const { return ""; }
+};
gdb doesn't generally handle local types well -- a longstanding bug nobody has tried to fix.
However my patch wasn't intended to introduce this problem. Perhaps it is at fault.
I've pushed the workaround to trunk now anyway, as r14-9457-ga8c7c3a40953e3
I haven't backported it yet.