AddressResolverName.h revision 360784
1//===-- AddressResolverName.h -----------------------------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef liblldb_AddressResolverName_h_ 10#define liblldb_AddressResolverName_h_ 11 12#include "lldb/Core/AddressResolver.h" 13#include "lldb/Core/SearchFilter.h" 14#include "lldb/Utility/ConstString.h" 15#include "lldb/Utility/RegularExpression.h" 16#include "lldb/lldb-defines.h" 17 18namespace lldb_private { 19class Address; 20class Stream; 21class SymbolContext; 22 23/// \class AddressResolverName AddressResolverName.h 24/// "lldb/Core/AddressResolverName.h" This class finds addresses for a given 25/// function name, either by exact match or by regular expression. 26 27class AddressResolverName : public AddressResolver { 28public: 29 AddressResolverName(const char *func_name, 30 AddressResolver::MatchType type = Exact); 31 32 // Creates a function breakpoint by regular expression. Takes over control 33 // of the lifespan of func_regex. 34 AddressResolverName(RegularExpression func_regex); 35 36 AddressResolverName(const char *class_name, const char *method, 37 AddressResolver::MatchType type); 38 39 ~AddressResolverName() override; 40 41 Searcher::CallbackReturn SearchCallback(SearchFilter &filter, 42 SymbolContext &context, 43 Address *addr) override; 44 45 lldb::SearchDepth GetDepth() override; 46 47 void GetDescription(Stream *s) override; 48 49protected: 50 ConstString m_func_name; 51 ConstString m_class_name; // FIXME: Not used yet. The idea would be to stop 52 // on methods of this class. 53 RegularExpression m_regex; 54 AddressResolver::MatchType m_match_type; 55 56private: 57 DISALLOW_COPY_AND_ASSIGN(AddressResolverName); 58}; 59 60} // namespace lldb_private 61 62#endif // liblldb_AddressResolverName_h_ 63