#pragma once #include "stdafx.h" #include "DebuggerTypes.h" #include "IMemoryHandler.h" #include class Debugger; class MemoryAccessCounter { private: Debugger* _debugger; vector _readCounts[4]; vector _writeCounts[4]; vector _execCounts[4]; std::unordered_set _initWrites[4]; std::unordered_set _uninitReads[4]; vector& GetArray(MemoryOperationType operationType, AddressType addressType); public: MemoryAccessCounter(Debugger* debugger); void ProcessMemoryAccess(AddressTypeInfo &addressInfo, MemoryOperationType operation); void ResetCounts(); void GetAccessCounts(AddressType memoryType, MemoryOperationType operationType, uint32_t counts[], bool forUninitReads); };