class PrettyStackManager
Defined at line 31 of file ../../src/developer/debug/zxdb/client/pretty_stack_manager.h
Matches sequences of frames for pretty-ifying stacks. The patterns are expressed in
PrettyFrameGlobs which match different parts of the stack frame or a wildcard range. The matched
frames can then be collapsed and named with a descriptive string.
Wildcard matching matches as few stack entries as possible (unlike many regular expression
systems). Recursion can make the same sequence of frames appear multiple times in a stack, and
we always want to hide as few frames as possible.
Wildcard matching does not do backtracking. This means that the first frame after a wildcard
picks up matching the stack again. If the sequence of matchers after this doesn't match, the
code won't go search for a possibly different interpretation of the wildcard that does match.
This behavior is unnecessary given typical stack matching requirements and affects complexity and
performance.
Public Methods
void SetMatchers (std::vector<StackGlob> matchers)
Defined at line 14 of file ../../src/developer/debug/zxdb/client/pretty_stack_manager.cc
void LoadDefaultMatchers ()
Loads the hardcoded default matchers.
TODO(bug 43549) this should be loaded from a configuration file somehow associated with the
user's build instead of being hardcoded. This function can then be deleted.
Defined at line 25 of file ../../src/developer/debug/zxdb/client/pretty_stack_manager.cc
Match GetMatchAt (const Stack & stack, size_t frame_index)
Returns the best match at the given index. The result will match no frames if there was no
match at the given index.
Defined at line 223 of file ../../src/developer/debug/zxdb/client/pretty_stack_manager.cc
std::vector<FrameEntry> ProcessStack (const Stack & stack)
Processes an entire stack, returning the grouped results.
Defined at line 233 of file ../../src/developer/debug/zxdb/client/pretty_stack_manager.cc
Records
Friends
class PrettyStackManager_StackGlobMatchesAt_Test
class MakeRefCountedHelper
class RefCountedThreadSafe