Added support for excluding address ranges from read memory events

This commit is contained in:
Nav
2021-12-25 20:57:03 +00:00
parent 9054b17bc7
commit 6f364a7009
10 changed files with 67 additions and 11 deletions

View File

@@ -601,7 +601,12 @@ void TargetController::onReadMemoryEvent(const Events::RetrieveMemoryFromTarget&
try {
auto memoryReadEvent = std::make_shared<Events::MemoryRetrievedFromTarget>();
memoryReadEvent->correlationId = event.id;
memoryReadEvent->data = this->target->readMemory(event.memoryType, event.startAddress, event.bytes);
memoryReadEvent->data = this->target->readMemory(
event.memoryType,
event.startAddress,
event.bytes,
event.excludedAddressRanges
);
this->eventManager.triggerEvent(memoryReadEvent);

View File

@@ -73,12 +73,14 @@ void TargetControllerConsole::writeRegisters(const TargetRegisters& registers) {
TargetMemoryBuffer TargetControllerConsole::readMemory(
TargetMemoryType memoryType,
std::uint32_t startAddress,
std::uint32_t bytes
std::uint32_t bytes,
const std::set<Targets::TargetMemoryAddressRange>& excludedAddressRanges
) {
auto readMemoryEvent = std::make_shared<RetrieveMemoryFromTarget>();
readMemoryEvent->memoryType = memoryType;
readMemoryEvent->startAddress = startAddress;
readMemoryEvent->bytes = bytes;
readMemoryEvent->excludedAddressRanges = excludedAddressRanges;
return this->triggerTargetControllerEventAndWaitForResponse(readMemoryEvent)->data;
}

View File

@@ -97,12 +97,14 @@ namespace Bloom
* @param memoryType
* @param startAddress
* @param bytes
* @param excludedAddressRanges
* @return
*/
Targets::TargetMemoryBuffer readMemory(
Targets::TargetMemoryType memoryType,
std::uint32_t startAddress,
std::uint32_t bytes
std::uint32_t bytes,
const std::set<Targets::TargetMemoryAddressRange>& excludedAddressRanges = {}
);
/**