Skip to content

Commit 51eb02e

Browse files
committed
Fix libc++ ABI v2
1 parent e384eb9 commit 51eb02e

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ char CPPLanguageRuntime::ID = 0;
4545
/// A frame recognizer that is installed to hide libc++ implementation
4646
/// details from the backtrace.
4747
class LibCXXFrameRecognizer : public StackFrameRecognizer {
48-
std::array<RegularExpression, 3> m_hidden_regex;
48+
std::array<RegularExpression, 4> m_hidden_regex;
4949
RecognizedStackFrameSP m_hidden_frame;
5050

5151
struct LibCXXHiddenFrame : public RecognizedStackFrame {
@@ -64,6 +64,13 @@ class LibCXXFrameRecognizer : public StackFrameRecognizer {
6464
R"(__function::.*::operator\(\))"
6565
R"((\[.*\])?)" // ABI tag.
6666
R"(( const)?$)"}, // const.
67+
// internal implementation details of std::function in ABI v2
68+
// std::__2::__function::__policy_invoker<void (int, int)>::__call_impl[abi:ne200000]<std::__2::__function::__default_alloc_func<int (*)(int, int), int (int, int)>>
69+
RegularExpression{""
70+
R"(^std::__[^:]*::)" // Namespace.
71+
R"(__function::.*::__call_impl)"
72+
R"((\[.*\])?)" // ABI tag.
73+
R"(<.*>)"}, // template argument.
6774
// internal implementation details of std::invoke
6875
// std::__1::__invoke[abi:ne200000]<void (*&)()>
6976
RegularExpression{

0 commit comments

Comments
 (0)