================
@@ -40,8 +41,49 @@ static ConstString g_coro_frame = 
ConstString("__coro_frame");
 
 char CPPLanguageRuntime::ID = 0;
 
+/// A frame recognizer that is isntalled to hide libc++ implementation
+/// details from the backtrace.
+class LibCXXFrameRecognizer : public StackFrameRecognizer {
+  RegularExpression m_hidden_function_regex;
+  RecognizedStackFrameSP m_hidden_frame;
+
+  struct LibCXXHiddenFrame : public RecognizedStackFrame {
+    bool ShouldHide() override { return true; }
+  };
+
+public:
+  LibCXXFrameRecognizer()
+      : m_hidden_function_regex(
+            R"(^std::__1::(__function.*::operator\(\)|__invoke))"
----------------
jasonmolenda wrote:

This may be too ugly, but sometimes when I have a regex table, I like to 
include an example of a string each one is meant to match against.  This first 
one I can get, but the next two I'm not sure what names we're matching.  This 
mostly reflects me not paying attention to libc++ internal method names as I 
skip past them in backtraces, not necessarily important.

https://github.com/llvm/llvm-project/pull/104523
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to