From: Дмитрий Архипов (grisumbras_at_[hidden])
Date: 2024-07-01 15:16:28


пн, 1 июл. 2024 г. в 17:45, Niall Douglas via Boost <boost_at_[hidden]>:
>
> Dear Boost,
>
> The biggest new feature to land into Outcome since it went ABI stable is
> inline GDB pretty printing support, whereby we embed into all binaries
> using Outcome the Python script to display the state of
> `result<>/outcome<>`. As Outcome uses a layered inheritance technique to
> match triviality of member functions from its configured types, having
> to click down through the layers to discover the state was always
> frustrating. MSVC has long shipped with a visualiser to eliminate this,
> so now support for GDB matches MSVC support.
>
> The relevant implementation file can be found at:
>
> https://github.com/boostorg/outcome/blob/master/include/boost/outcome/outcome_gdb.h

This is a very neat trick. I have a WIP branch with GDB printers for
JSON (https://github.com/boostorg/json/pull/733). The branch hasn't
been merged yet mostly because I couldn't decide on the best way to
deploy the script. And this trick trivializes that problem