aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopUtils.cpp
diff options
context:
space:
mode:
authorAdrian Vogelsgesang <avogelsgesang@salesforce.com>2025-06-11 14:09:54 +0200
committerGitHub <noreply@github.com>2025-06-11 14:09:54 +0200
commit4a46ead8fb5b57e69bcd1c72ebd7dd8eaf09fa9c (patch)
treee33e38086a7c417fd9cf0a4db47ce77d5f4ffc05 /llvm/lib/Transforms/Utils/LoopUtils.cpp
parent953a778fabc48025569fe0d5b3b363b981263f21 (diff)
downloadllvm-4a46ead8fb5b57e69bcd1c72ebd7dd8eaf09fa9c.zip
llvm-4a46ead8fb5b57e69bcd1c72ebd7dd8eaf09fa9c.tar.gz
llvm-4a46ead8fb5b57e69bcd1c72ebd7dd8eaf09fa9c.tar.bz2
[lldb] Show coro_frame in `std::coroutine_handle` pretty printer (#141516)
This commit adjusts the pretty printer for `std::coroutine_handle` based on recent personal experiences with debugging C++20 coroutines: 1. It adds the `coro_frame` member. This member exposes the complete coroutine frame contents, including the suspension point id and all internal variables which the compiler decided to persist into the coroutine frame. While this data is highly compiler-specific, inspecting it can help identify the internal state of suspended coroutines. 2. It includes the `promise` and `coro_frame` members, even if devirtualization failed and we could not infer the promise type / the coro_frame type. Having them available as `void*` pointers can still be useful to identify, e.g., which two coroutine handles have the same frame / promise pointers.
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
0 files changed, 0 insertions, 0 deletions