From c29062de9fe0b63a4eaed0bf25886a471018a8d0 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Thu, 12 Jun 2014 00:42:25 -0700 Subject: [PATCH] Add memory breakpoints on sceIo read/write. --- Core/HLE/sceIo.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Core/HLE/sceIo.cpp b/Core/HLE/sceIo.cpp index 665e37edd6..9daae77299 100644 --- a/Core/HLE/sceIo.cpp +++ b/Core/HLE/sceIo.cpp @@ -22,6 +22,7 @@ #include "native/thread/threadutil.h" #include "Core/Core.h" #include "Core/Config.h" +#include "Core/Debugger/Breakpoints.h" #include "Core/MemMap.h" #include "Core/System.h" #include "Core/Host.h" @@ -725,6 +726,7 @@ bool __IoRead(int &result, int id, u32 data_addr, int size) { result = ERROR_KERNEL_BAD_FILE_DESCRIPTOR; return true; } else if (Memory::IsValidAddress(data_addr)) { + CBreakPoints::ExecMemCheck(data_addr, true, size, currentMIPS->pc); u8 *data = (u8*) Memory::GetPointer(data_addr); if (f->npdrm) { result = npdrmRead(f, data, size); @@ -855,6 +857,8 @@ bool __IoWrite(int &result, int id, u32 data_addr, int size) { return true; } + CBreakPoints::ExecMemCheck(data_addr, false, size, currentMIPS->pc); + bool useThread = __KernelIsDispatchEnabled() && ioManagerThreadEnabled && size > IO_THREAD_MIN_DATA_SIZE; if (useThread) { // If there's a pending operation on this file, wait for it to finish and don't overwrite it.