diff options
author | Adrian Vogelsgesang <avogelsgesang@salesforce.com> | 2024-08-27 19:15:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-27 19:15:42 +0200 |
commit | dd060bdede8edec18ad5ca122e15cc24a821e3fe (patch) | |
tree | ab6091e6c0c8781a992e8237d6d7e90131bdef0f /lldb/source/Commands/CommandObjectScripting.cpp | |
parent | 4baf29e81e30e6ebc1da56b9e5c338014961acf9 (diff) | |
download | llvm-dd060bdede8edec18ad5ca122e15cc24a821e3fe.zip llvm-dd060bdede8edec18ad5ca122e15cc24a821e3fe.tar.gz llvm-dd060bdede8edec18ad5ca122e15cc24a821e3fe.tar.bz2 |
[lldb] Add frame recognizers for libc++ `std::invoke` (#105695)
With this commit, we also hide the implementation details of
`std::invoke`. To do so, the `LibCXXFrameRecognizer` got a couple more
regular expressions.
The regular expression passed into `AddRecognizer` became problematic,
as it was evaluated on the demangled name. Those names also included
result types for C++ symbols. For `std::__invoke` the return type is a
huge `decltype(...)`, making the regular expresison really hard to
write.
Instead, I added support to `AddRecognizer` for matching on the
demangled names without result type and argument types.
By hiding the implementation details of `invoke`, also the back traces
for `std::function` become even nicer, because `std::function` is using
`__invoke` internally.
Co-authored-by: Adrian Prantl <aprantl@apple.com>
Diffstat (limited to 'lldb/source/Commands/CommandObjectScripting.cpp')
0 files changed, 0 insertions, 0 deletions