diff --git a/Source/Project64-core/Debugger.h b/Source/Project64-core/Debugger.h index 6bb815126..f0c9a16e9 100644 --- a/Source/Project64-core/Debugger.h +++ b/Source/Project64-core/Debugger.h @@ -26,6 +26,10 @@ __interface CDebugger virtual void FrameDrawn(void) = 0; virtual void WaitForStep(void) = 0; virtual bool ExecutionBP(uint32_t address) = 0; + virtual bool ReadBP8(uint32_t address) = 0; + virtual bool ReadBP16(uint32_t address) = 0; + virtual bool ReadBP32(uint32_t address) = 0; + virtual bool ReadBP64(uint32_t address) = 0; virtual bool WriteBP8(uint32_t address) = 0; virtual bool WriteBP16(uint32_t address) = 0; virtual bool WriteBP32(uint32_t address) = 0; diff --git a/Source/Project64-core/Settings/DebugSettings.h b/Source/Project64-core/Settings/DebugSettings.h index 204c402f7..600778ec8 100644 --- a/Source/Project64-core/Settings/DebugSettings.h +++ b/Source/Project64-core/Settings/DebugSettings.h @@ -29,6 +29,7 @@ public: static inline bool bRecordExecutionTimes(void) { return m_RecordExecutionTimes; } static inline bool HaveExecutionBP(void) { return m_HaveExecutionBP; } static inline bool HaveWriteBP(void) { return m_HaveWriteBP; } + static inline bool HaveReadBP(void) { return m_HaveReadBP; } private: static void StaticRefreshSettings(CDebugSettings * _this) @@ -49,6 +50,7 @@ private: static bool m_RecordExecutionTimes; static bool m_HaveExecutionBP; static bool m_HaveWriteBP; + static bool m_HaveReadBP; static int32_t m_RefCount; static bool m_Registered; diff --git a/Source/Project64-core/Settings/Settings.h b/Source/Project64-core/Settings/Settings.h index d16a4c284..dfb1bcdde 100644 --- a/Source/Project64-core/Settings/Settings.h +++ b/Source/Project64-core/Settings/Settings.h @@ -233,6 +233,7 @@ enum SettingID Debugger_SkipOp, Debugger_HaveExecutionBP, Debugger_WriteBPExists, + Debugger_ReadBPExists, Debugger_WaitingForStep, //Trace diff --git a/Source/Project64/UserInterface/Debugger/Breakpoints.h b/Source/Project64/UserInterface/Debugger/Breakpoints.h index 1c5d60bb9..39ea2dcbc 100644 --- a/Source/Project64/UserInterface/Debugger/Breakpoints.h +++ b/Source/Project64/UserInterface/Debugger/Breakpoints.h @@ -32,7 +32,10 @@ public: const breakpoints_t & WriteMem(void) const { return m_WriteMem; } const breakpoints_t & Execution(void) const { return m_Execution; } - BPSTATE ReadBPExists(uint32_t address); + BPSTATE ReadBPExists8(uint32_t address); + BPSTATE ReadBPExists16(uint32_t address); + BPSTATE ReadBPExists32(uint32_t address); + BPSTATE ReadBPExists64(uint32_t address); BPSTATE WriteBPExists8(uint32_t address); BPSTATE WriteBPExists16(uint32_t address); BPSTATE WriteBPExists32(uint32_t address); @@ -58,8 +61,9 @@ public: private: void UpdateAlignedWriteBP(void); + void UpdateAlignedReadBP(void); - breakpoints_t m_ReadMem; + breakpoints_t m_ReadMem, m_ReadMem16, m_ReadMem32, m_ReadMem64; breakpoints_t m_WriteMem, m_WriteMem16, m_WriteMem32, m_WriteMem64; breakpoints_t m_Execution; }; \ No newline at end of file diff --git a/Source/Project64/UserInterface/Debugger/Debugger-Commands.h b/Source/Project64/UserInterface/Debugger/Debugger-Commands.h index fc4883c25..59c16f731 100644 --- a/Source/Project64/UserInterface/Debugger/Debugger-Commands.h +++ b/Source/Project64/UserInterface/Debugger/Debugger-Commands.h @@ -89,6 +89,7 @@ public: private: BEGIN_MSG_MAP_EX(CDebugCommandsView) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) + MESSAGE_HANDLER(WM_ACTIVATE, OnActivate) MESSAGE_HANDLER(WM_SIZING, OnSizing) MESSAGE_HANDLER(WM_GETMINMAXINFO, OnGetMinMaxInfo) MESSAGE_HANDLER(WM_VSCROLL, OnScroll) @@ -165,6 +166,7 @@ private: static void StaticWaitingForStepChanged(CDebugCommandsView * __this) { __this->WaitingForStepChanged(); } LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); + LRESULT OnActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnSizing(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnScroll(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnMeasureItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); diff --git a/Source/Project64/UserInterface/Debugger/debugger.h b/Source/Project64/UserInterface/Debugger/debugger.h index 373f2cf9f..2e49fd4bb 100644 --- a/Source/Project64/UserInterface/Debugger/debugger.h +++ b/Source/Project64/UserInterface/Debugger/debugger.h @@ -59,6 +59,10 @@ public: void OpenDMALogWindow(void); bool ExecutionBP(uint32_t address); + bool ReadBP8(uint32_t address); + bool ReadBP16(uint32_t address); + bool ReadBP32(uint32_t address); + bool ReadBP64(uint32_t address); bool WriteBP8(uint32_t address); bool WriteBP16(uint32_t address); bool WriteBP32(uint32_t address);