File indexing completed on 2026-05-10 08:42:44
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLDB_CORE_ADDRESSRESOLVER_H
0010 #define LLDB_CORE_ADDRESSRESOLVER_H
0011
0012 #include "lldb/Core/AddressRange.h"
0013 #include "lldb/Core/SearchFilter.h"
0014 #include "lldb/lldb-defines.h"
0015
0016 #include <cstddef>
0017 #include <vector>
0018
0019 namespace lldb_private {
0020 class ModuleList;
0021 class Stream;
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 class AddressResolver : public Searcher {
0034 public:
0035 enum MatchType { Exact, Regexp, Glob };
0036
0037 AddressResolver();
0038
0039 ~AddressResolver() override;
0040
0041 virtual void ResolveAddress(SearchFilter &filter);
0042
0043 virtual void ResolveAddressInModules(SearchFilter &filter,
0044 ModuleList &modules);
0045
0046 void GetDescription(Stream *s) override = 0;
0047
0048 std::vector<AddressRange> &GetAddressRanges();
0049
0050 size_t GetNumberOfAddresses();
0051
0052 AddressRange &GetAddressRangeAtIndex(size_t idx);
0053
0054 protected:
0055 std::vector<AddressRange> m_address_ranges;
0056
0057 private:
0058 AddressResolver(const AddressResolver &) = delete;
0059 const AddressResolver &operator=(const AddressResolver &) = delete;
0060 };
0061
0062 }
0063
0064 #endif