On Wed, 15 Oct 2025 at 22:04, Jonathan Wakely <[email protected]> wrote: > > Instead of printing "<unknown>" in the ostream output, we could set that > string in the stacktrace_entry::_Info object, so that description() > returns that. Returning an empty string from that function seems simpler > for users to handle and decide on their own behaviour, rather than > having to parse "<unknown>". > > With this change locations that don't have a source file look like this: > > 18# __libc_start_call_main at [0x7fd6568f6574] > 19# __libc_start_main@GLIBC_2.2.5 at [0x7fd6568f6627] > 20# _start at [0x4006a4] > > Instead of: > > 18# __libc_start_call_main at :0 > 19# __libc_start_main@GLIBC_2.2.5 at :0 > 20# _start at :0 > > The string representation of a default constructed stacktrace_entry is > now "<unknown>" instead of an empty string.
We could also choose a different string for the default-constructed stacktrace_entry, maybe "<none>" or "<invalid>". That would distinguish a completely empty stacktrace_entry from a non-empty one with an unknown function name.
