================ @@ -132,6 +140,92 @@ class MinidumpFile : public Binary { size_t Stride; }; + /// Class the provides an iterator over the memory64 memory ranges. Only the + /// the first descriptor is validated as readable beforehand. + class Memory64Iterator { + public: + static Memory64Iterator + begin(ArrayRef<uint8_t> Storage, + ArrayRef<minidump::MemoryDescriptor_64> Descriptors) { + return Memory64Iterator(Storage, Descriptors); + } + + static Memory64Iterator end() { return Memory64Iterator(); } + + bool operator==(const Memory64Iterator &R) const { + return IsEnd == R.IsEnd; + } + + bool operator!=(const Memory64Iterator &R) const { return !(*this == R); } + + const std::pair<minidump::MemoryDescriptor_64, ArrayRef<uint8_t>> & + operator*() { + return Current; + } + + const std::pair<minidump::MemoryDescriptor_64, ArrayRef<uint8_t>> * + operator->() { + return &Current; + } + + Error inc() { + if (Storage.size() == 0 || Descriptors.size() == 0) { ---------------- labath wrote:
```suggestion if (Descriptors.empty()) { ``` (storage size is checked on line 179) https://github.com/llvm/llvm-project/pull/101272 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits