================
@@ -53,10 +54,32 @@ class LibCXXFrameRecognizer : public StackFrameRecognizer {
public:
LibCXXFrameRecognizer()
- : m_hidden_function_regex(
- R"(^std::__1::(__function.*::operator\(\)|__invoke))"
- R"((\[.*\])?)" // ABI tag.
- R"(( const)?$)"), // const.
+ : m_hidden_regex{
+ // internal implementation details of std::function
+ // std::__1::__function::__alloc_func<void (*)(),
std::__1::allocator<void (*)()>, void ()>::operator()[abi:ne200000]
+ // std::__1::__function::__func<void (*)(),
std::__1::allocator<void (*)()>, void ()>::operator()
+ // std::__1::__function::__value_func<void
()>::operator()[abi:ne200000]() const
+ RegularExpression{""
+ R"(^std::__[0-9]*::)" // Namespace.
+ R"(__function::.*::operator\(\))"
+ R"((\[.*\])?)" // ABI tag.
+ R"(( const)?$)"}, // const.
+ // internal implementation details of std::invoke
+ // std::__1::__invoke[abi:ne200000]<void (*&)()>
+ RegularExpression{
+ R"(^std::__[0-9]*::)" // Namespace.
+ R"(__invoke)"
----------------
petrhosek wrote:
libc++ ABI namespace doesn't have to be just a number, it can be any [string
that starts with
`__`](https://github.com/llvm/llvm-project/blob/c557d8520413476221a4f3bf2b7b3fed17681691/libcxx/CMakeLists.txt#L197).
For example, in some of our Google projects we use `__ktl` and `__pw`.
[libFuzzer uses
`__Fuzzer`](https://github.com/llvm/llvm-project/blob/52ae891036e3ab1f668eb103c46ca57257901c6b/compiler-rt/lib/fuzzer/CMakeLists.txt#L166)
in its internal libc++ build.
https://github.com/llvm/llvm-project/pull/105695
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits