9#ifndef LLDB_TARGET_STACKFRAMERECOGNIZER_H
10#define LLDB_TARGET_STACKFRAMERECOGNIZER_H
34 :
public std::enable_shared_from_this<RecognizedStackFrame> {
64 :
public std::enable_shared_from_this<StackFrameRecognizer> {
115 std::string module, std::vector<ConstString> symbols,
117 bool first_instruction_only =
true);
127 bool first_instruction_only =
true);
130 ForEach(std::function<
void(uint32_t recognizer_id,
bool enabled,
131 std::string recognizer_name, std::string module,
132 llvm::ArrayRef<ConstString> symbols,
134 bool regexp)>
const &callback);
This class provides extra information about a stack frame that was provided by a specific stack frame...
virtual lldb::ValueObjectListSP GetRecognizedArguments()
std::string GetStopDescription()
virtual lldb::ThreadPlanSP GetStepThroughPlan()
virtual bool ShouldHide()
Controls whether this frame should be filtered out when displaying backtraces, for example.
lldb::ValueObjectListSP m_arguments
virtual lldb::ValueObjectSP GetExceptionObject()
virtual lldb::StackFrameSP GetMostRelevantFrame()
virtual ~RecognizedStackFrame()=default
std::string GetName() override
~ScriptedStackFrameRecognizer() override=default
ScriptedStackFrameRecognizer(lldb_private::ScriptInterpreter *interpreter, const char *pclass)
const char * GetPythonClassName()
lldb::RecognizedStackFrameSP RecognizeFrame(lldb::StackFrameSP frame) override
ScriptedStackFrameRecognizer(const ScriptedStackFrameRecognizer &)=delete
lldb::ScriptedStackFrameRecognizerInterfaceSP m_interface_sp
std::string m_python_class
const ScriptedStackFrameRecognizer & operator=(const ScriptedStackFrameRecognizer &)=delete
Class that provides a registry of known stack frame recognizers.
void BumpGeneration()
Increase the generation counter.
void ForEach(std::function< void(uint32_t recognizer_id, bool enabled, std::string recognizer_name, std::string module, llvm::ArrayRef< ConstString > symbols, Mangled::NamePreference name_preference, bool regexp)> const &callback)
lldb::StackFrameRecognizerSP GetRecognizerForFrame(lldb::StackFrameSP frame)
lldb::RecognizedStackFrameSP RecognizeFrame(lldb::StackFrameSP frame)
bool RemoveRecognizerWithID(uint32_t recognizer_id)
void RemoveAllRecognizers()
bool SetEnabledForID(uint32_t recognizer_id, bool enabled)
std::deque< RegisteredEntry > m_recognizers
void AddRecognizer(lldb::StackFrameRecognizerSP recognizer, std::string module, std::vector< ConstString > symbols, Mangled::NamePreference symbol_mangling, bool first_instruction_only=true)
Add a new recognizer that triggers on a given symbol name.
uint16_t GetGeneration() const
Returns a number that changes whenever the list of recognizers has been modified.
A base class for frame recognizers.
virtual std::string GetName()
virtual ~StackFrameRecognizer()=default
virtual lldb::RecognizedStackFrameSP RecognizeFrame(lldb::StackFrameSP frame)
Presents another ValueObject under the given ValueType.
A class that represents a running process on the host machine.
ValueObjectSynthesizedValue ValueObjectRecognizerSynthesizedValue
Frame recognizers should return ValueObjectSynthesizedValue instances as the returned objects in GetR...
std::shared_ptr< lldb_private::ThreadPlan > ThreadPlanSP
std::shared_ptr< lldb_private::StackFrame > StackFrameSP
std::shared_ptr< lldb_private::RecognizedStackFrame > RecognizedStackFrameSP
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP
std::shared_ptr< lldb_private::RegularExpression > RegularExpressionSP
std::shared_ptr< lldb_private::ValueObjectList > ValueObjectListSP
std::shared_ptr< lldb_private::StackFrameRecognizer > StackFrameRecognizerSP
std::shared_ptr< lldb_private::ScriptedStackFrameRecognizerInterface > ScriptedStackFrameRecognizerInterfaceSP
lldb::RegularExpressionSP symbol_regexp
std::vector< ConstString > symbols
bool first_instruction_only
Mangled::NamePreference symbol_mangling
lldb::RegularExpressionSP module_regexp
lldb::StackFrameRecognizerSP recognizer