[docs][coroutines] Revamp "Debugging C++ coroutines" (#142651)

This commit is a major overhaul of the documentation on debugging C++
coroutines with the following goals:

* Make it more accessible to casual C++ programmers, i.e. non-toolchain
  developers. Move the low-level details around ABI further down, and
  instead start with real-life examples and copy-paste-friendly code,
  first.
* Cover LLDB in addition to GCC. Provide copy-pasteable scripts for LLDB
  and not only GCC.
* Cover additional topics, such as:
  * single-stepping into a coroutine
  * using `__builtin_return_address` for tracking suspension points
    (inspired by Folly's blog series on coroutine debugging)
* Document LLDB's support for devirtualization of
  `std::coroutine_handle`, both from an end user perspective as well as
  its internal implementation
This commit is contained in:
Adrian Vogelsgesang 2025-06-28 15:27:55 +02:00 committed by GitHub
parent 34b2e934ea
commit b8f122812e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 943 additions and 513 deletions

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 756 KiB