adrian-prantl wrote: > When we were talking about this originally I thought that StackFrames would > get an "ImplementationFrame" property, and we would use that to determine > whether to hide the frame in bt (when not passing --unfiltered). Then the > frame recognizers when they are run on the frame in the ordinary course of > things (we do this to determine recognized args anyway) they would set the > property on the StackFrame. Then StackFrameList could just check that > property. RecognizeFrame might be expensive, and we don't currently have any > machinery in place to make sure it caches the results per stop. Most of the > RecognizeFrame's just do the work every time. I also think for structural > reasons we shouldn't force FrameRecognizers to be the only entity that can > mark frames as "should be hidden."
I understand that not recomputing them might be desirable, but this is not how recognizers currently work. The only place frame recognizers currently get called is by `Thread::GetStopDescription()` (for frame #0) and by `Thread::GetCurrentException()` (also frame #0). So it's not true that we are computing them anyway and thus have an opportunity to precompute the isHidden attribute. I also think that from an architectural perspective it would be wrong for a frame recognizer to be allowed to modify the state of a StackFrame. When a frame recognizer is registered it takes a module regex a function regex and a first_instruction flag. All three of these must match before the recognizer is executed. That's num_recognizers*num_frames regexes. That's not expensive in the grans scheme of things, but you're right that it's not necessary. I'll see if I can hide the recognizer invocation inside StackFrame::shouldHide() and let StackFrame cache the result instead of having the Recognizer modify the StackFrame. Maybe I can come up with some cache invalidation strategy that makes sense. 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