Memory: Remove all GetPointer usages from the GDB stub.
This commit is contained in:
		@@ -644,7 +644,7 @@ static void ReadMemory() {
 | 
			
		||||
 | 
			
		||||
    auto start_offset = command_buffer + 1;
 | 
			
		||||
    auto addr_pos = std::find(start_offset, command_buffer + command_length, ',');
 | 
			
		||||
    PAddr addr = HexToInt(start_offset, static_cast<u32>(addr_pos - start_offset));
 | 
			
		||||
    VAddr addr = HexToInt(start_offset, static_cast<u32>(addr_pos - start_offset));
 | 
			
		||||
 | 
			
		||||
    start_offset = addr_pos + 1;
 | 
			
		||||
    u32 len =
 | 
			
		||||
@@ -656,12 +656,14 @@ static void ReadMemory() {
 | 
			
		||||
        SendReply("E01");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const u8* data = Memory::GetPointer(addr);
 | 
			
		||||
    if (!data) {
 | 
			
		||||
    if (!Memory::IsValidVirtualAddress(addr)) {
 | 
			
		||||
        return SendReply("E00");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    MemToGdbHex(reply, data, len);
 | 
			
		||||
    std::vector<u8> data(len);
 | 
			
		||||
    Memory::ReadBlock(addr, data.data(), len);
 | 
			
		||||
 | 
			
		||||
    MemToGdbHex(reply, data.data(), len);
 | 
			
		||||
    reply[len * 2] = '\0';
 | 
			
		||||
    SendReply(reinterpret_cast<char*>(reply));
 | 
			
		||||
}
 | 
			
		||||
@@ -670,18 +672,20 @@ static void ReadMemory() {
 | 
			
		||||
static void WriteMemory() {
 | 
			
		||||
    auto start_offset = command_buffer + 1;
 | 
			
		||||
    auto addr_pos = std::find(start_offset, command_buffer + command_length, ',');
 | 
			
		||||
    PAddr addr = HexToInt(start_offset, static_cast<u32>(addr_pos - start_offset));
 | 
			
		||||
    VAddr addr = HexToInt(start_offset, static_cast<u32>(addr_pos - start_offset));
 | 
			
		||||
 | 
			
		||||
    start_offset = addr_pos + 1;
 | 
			
		||||
    auto len_pos = std::find(start_offset, command_buffer + command_length, ':');
 | 
			
		||||
    u32 len = HexToInt(start_offset, static_cast<u32>(len_pos - start_offset));
 | 
			
		||||
 | 
			
		||||
    u8* dst = Memory::GetPointer(addr);
 | 
			
		||||
    if (!dst) {
 | 
			
		||||
    if (!Memory::IsValidVirtualAddress(addr)) {
 | 
			
		||||
        return SendReply("E00");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    GdbHexToMem(dst, len_pos + 1, len);
 | 
			
		||||
    std::vector<u8> data(len);
 | 
			
		||||
 | 
			
		||||
    GdbHexToMem(data.data(), len_pos + 1, len);
 | 
			
		||||
    Memory::WriteBlock(addr, data.data(), len);
 | 
			
		||||
    SendReply("OK");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user