From 219a5078e86ad05cdc90a91a41a337be2eb8e679 Mon Sep 17 00:00:00 2001 From: skidau Date: Wed, 15 Oct 2014 20:04:23 +1100 Subject: Added a "Step Out" (aka "Step return") function to the debugger. Conflicts: Source/Core/DolphinWX/Debugger/CodeWindow.h --- Source/Core/DolphinWX/Debugger/CodeWindow.h | 1 + 1 file changed, 1 insertion(+) (limited to 'Source/Core/DolphinWX/Debugger/CodeWindow.h') diff --git a/Source/Core/DolphinWX/Debugger/CodeWindow.h b/Source/Core/DolphinWX/Debugger/CodeWindow.h index 1953c85493..dfe2ed0188 100644 --- a/Source/Core/DolphinWX/Debugger/CodeWindow.h +++ b/Source/Core/DolphinWX/Debugger/CodeWindow.h @@ -126,6 +126,7 @@ private: // Debugger functions void SingleStep(); void StepOver(); + void StepOut(); void ToggleBreakpoint(); void UpdateLists(); -- cgit v1.2.3 From 613cae613a8c2ac34dd823f875ac4a6a0059db38 Mon Sep 17 00:00:00 2001 From: skidau Date: Sun, 19 Oct 2014 21:45:40 +1100 Subject: Added a RAM Watch window to the debugger Conflicts: Source/Core/Core/HW/Memmap.cpp Source/Core/Core/HW/Memmap.h Source/Core/DolphinWX/Debugger/CodeWindow.h --- Source/Core/DolphinWX/Debugger/CodeWindow.h | 209 ++++++++++++++-------------- 1 file changed, 106 insertions(+), 103 deletions(-) (limited to 'Source/Core/DolphinWX/Debugger/CodeWindow.h') diff --git a/Source/Core/DolphinWX/Debugger/CodeWindow.h b/Source/Core/DolphinWX/Debugger/CodeWindow.h index dfe2ed0188..26322b1b90 100644 --- a/Source/Core/DolphinWX/Debugger/CodeWindow.h +++ b/Source/Core/DolphinWX/Debugger/CodeWindow.h @@ -19,6 +19,7 @@ class CFrame; class CRegisterWindow; +class CWatchWindow; class CBreakPointWindow; class CMemoryWindow; class CJitWindow; @@ -35,111 +36,113 @@ class wxMenuBar; class CCodeWindow : public wxPanel { public: - CCodeWindow(const SCoreStartupParameter& _LocalCoreStartupParameter, - CFrame * parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTAB_TRAVERSAL | wxBORDER_NONE, + CCodeWindow(const SCoreStartupParameter& _LocalCoreStartupParameter, + CFrame * parent, + wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxTAB_TRAVERSAL | wxBORDER_NONE, const wxString& name = _("Code")); - void Load(); - void Save(); - - // Parent interaction - CFrame *Parent; - wxMenuBar * GetMenuBar(); - wxToolBar * GetToolBar(); - wxBitmap m_Bitmaps[ToolbarDebugBitmapMax]; - - bool UseInterpreter(); - bool BootToPause(); - bool AutomaticStart(); - bool JITNoBlockCache(); - bool JITNoBlockLinking(); - bool JumpToAddress(u32 address); - - void Update() override; - void NotifyMapLoaded(); - void CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParameter, wxMenuBar *pMenuBar); - void CreateMenuOptions(wxMenu *pMenu); - void CreateMenuSymbols(wxMenuBar *pMenuBar); - void RecreateToolbar(wxToolBar*); - void PopulateToolbar(wxToolBar* toolBar); - void UpdateButtonStates(); - void OpenPages(); - void UpdateManager(); - - // Menu bar - // ------------------- - void OnCPUMode(wxCommandEvent& event); // CPU Mode menu - void OnJITOff(wxCommandEvent& event); - - void ToggleCodeWindow(bool bShow); - void ToggleRegisterWindow(bool bShow); - void ToggleBreakPointWindow(bool bShow); - void ToggleMemoryWindow(bool bShow); - void ToggleJitWindow(bool bShow); - void ToggleSoundWindow(bool bShow); - void ToggleVideoWindow(bool bShow); - - void OnChangeFont(wxCommandEvent& event); - - void OnCodeStep(wxCommandEvent& event); - void OnAddrBoxChange(wxCommandEvent& event); - void OnSymbolsMenu(wxCommandEvent& event); - void OnJitMenu(wxCommandEvent& event); - void OnProfilerMenu(wxCommandEvent& event); - - // Sub dialogs - CRegisterWindow* m_RegisterWindow; - CBreakPointWindow* m_BreakpointWindow; - CMemoryWindow* m_MemoryWindow; - CJitWindow* m_JitWindow; - DSPDebuggerLLE* m_SoundWindow; - GFXDebuggerPanel* m_VideoWindow; - - // Settings - bool bAutomaticStart; bool bBootToPause; - bool bShowOnStart[IDM_VIDEOWINDOW - IDM_LOGWINDOW + 1]; - int iNbAffiliation[IDM_CODEWINDOW - IDM_LOGWINDOW + 1]; + void Load(); + void Save(); + + // Parent interaction + CFrame *Parent; + wxMenuBar * GetMenuBar(); + wxToolBar * GetToolBar(); + wxBitmap m_Bitmaps[ToolbarDebugBitmapMax]; + + bool UseInterpreter(); + bool BootToPause(); + bool AutomaticStart(); + bool JITNoBlockCache(); + bool JITNoBlockLinking(); + bool JumpToAddress(u32 address); + + void Update() override; + void NotifyMapLoaded(); + void CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParameter, wxMenuBar *pMenuBar); + void CreateMenuOptions(wxMenu *pMenu); + void CreateMenuSymbols(wxMenuBar *pMenuBar); + void RecreateToolbar(wxToolBar*); + void PopulateToolbar(wxToolBar* toolBar); + void UpdateButtonStates(); + void OpenPages(); + void UpdateManager(); + + // Menu bar + // ------------------- + void OnCPUMode(wxCommandEvent& event); // CPU Mode menu + void OnJITOff(wxCommandEvent& event); + + void ToggleCodeWindow(bool bShow); + void ToggleRegisterWindow(bool bShow); + void ToggleWatchWindow(bool bShow); + void ToggleBreakPointWindow(bool bShow); + void ToggleMemoryWindow(bool bShow); + void ToggleJitWindow(bool bShow); + void ToggleSoundWindow(bool bShow); + void ToggleVideoWindow(bool bShow); + + void OnChangeFont(wxCommandEvent& event); + + void OnCodeStep(wxCommandEvent& event); + void OnAddrBoxChange(wxCommandEvent& event); + void OnSymbolsMenu(wxCommandEvent& event); + void OnJitMenu(wxCommandEvent& event); + void OnProfilerMenu(wxCommandEvent& event); + + // Sub dialogs + CRegisterWindow* m_RegisterWindow; + CWatchWindow* m_WatchWindow; + CBreakPointWindow* m_BreakpointWindow; + CMemoryWindow* m_MemoryWindow; + CJitWindow* m_JitWindow; + DSPDebuggerLLE* m_SoundWindow; + GFXDebuggerPanel* m_VideoWindow; + + // Settings + bool bAutomaticStart; bool bBootToPause; + bool bShowOnStart[IDM_VIDEOWINDOW - IDM_LOGWINDOW + 1]; + int iNbAffiliation[IDM_CODEWINDOW - IDM_LOGWINDOW + 1]; private: - enum - { - // Debugger GUI Objects - ID_CODEVIEW, - ID_CALLSTACKLIST, - ID_CALLERSLIST, - ID_CALLSLIST, - ID_SYMBOLLIST - }; - - void OnSymbolListChange(wxCommandEvent& event); - void OnSymbolListContextMenu(wxContextMenuEvent& event); - void OnCallstackListChange(wxCommandEvent& event); - void OnCallersListChange(wxCommandEvent& event); - void OnCallsListChange(wxCommandEvent& event); - void OnCodeViewChange(wxCommandEvent &event); - void OnHostMessage(wxCommandEvent& event); - - // Debugger functions - void SingleStep(); - void StepOver(); - void StepOut(); - void ToggleBreakpoint(); - - void UpdateLists(); - void UpdateCallstack(); - - void InitBitmaps(); - - CCodeView* codeview; - wxListBox* callstack; - wxListBox* symbols; - wxListBox* callers; - wxListBox* calls; - Common::Event sync_event; - - DECLARE_EVENT_TABLE() + enum + { + // Debugger GUI Objects + ID_CODEVIEW, + ID_CALLSTACKLIST, + ID_CALLERSLIST, + ID_CALLSLIST, + ID_SYMBOLLIST + }; + + void OnSymbolListChange(wxCommandEvent& event); + void OnSymbolListContextMenu(wxContextMenuEvent& event); + void OnCallstackListChange(wxCommandEvent& event); + void OnCallersListChange(wxCommandEvent& event); + void OnCallsListChange(wxCommandEvent& event); + void OnCodeViewChange(wxCommandEvent &event); + void OnHostMessage(wxCommandEvent& event); + + // Debugger functions + void SingleStep(); + void StepOver(); + void StepOut(); + void ToggleBreakpoint(); + + void UpdateLists(); + void UpdateCallstack(); + + void InitBitmaps(); + + CCodeView* codeview; + wxListBox* callstack; + wxListBox* symbols; + wxListBox* callers; + wxListBox* calls; + Common::Event sync_event; + + DECLARE_EVENT_TABLE() }; -- cgit v1.2.3 From 290e1bed378d570667eb66170986696ca207d2d6 Mon Sep 17 00:00:00 2001 From: skidau Date: Fri, 24 Oct 2014 12:57:17 +1100 Subject: Disable block linking while debugger stepping or if there are breakpoints --- Source/Core/DolphinWX/Debugger/CodeWindow.h | 210 ++++++++++++++-------------- 1 file changed, 105 insertions(+), 105 deletions(-) (limited to 'Source/Core/DolphinWX/Debugger/CodeWindow.h') diff --git a/Source/Core/DolphinWX/Debugger/CodeWindow.h b/Source/Core/DolphinWX/Debugger/CodeWindow.h index 26322b1b90..c0ac8650ca 100644 --- a/Source/Core/DolphinWX/Debugger/CodeWindow.h +++ b/Source/Core/DolphinWX/Debugger/CodeWindow.h @@ -36,113 +36,113 @@ class wxMenuBar; class CCodeWindow : public wxPanel { public: - CCodeWindow(const SCoreStartupParameter& _LocalCoreStartupParameter, - CFrame * parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTAB_TRAVERSAL | wxBORDER_NONE, + CCodeWindow(const SCoreStartupParameter& _LocalCoreStartupParameter, + CFrame * parent, + wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxTAB_TRAVERSAL | wxBORDER_NONE, const wxString& name = _("Code")); - void Load(); - void Save(); - - // Parent interaction - CFrame *Parent; - wxMenuBar * GetMenuBar(); - wxToolBar * GetToolBar(); - wxBitmap m_Bitmaps[ToolbarDebugBitmapMax]; - - bool UseInterpreter(); - bool BootToPause(); - bool AutomaticStart(); - bool JITNoBlockCache(); - bool JITNoBlockLinking(); - bool JumpToAddress(u32 address); - - void Update() override; - void NotifyMapLoaded(); - void CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParameter, wxMenuBar *pMenuBar); - void CreateMenuOptions(wxMenu *pMenu); - void CreateMenuSymbols(wxMenuBar *pMenuBar); - void RecreateToolbar(wxToolBar*); - void PopulateToolbar(wxToolBar* toolBar); - void UpdateButtonStates(); - void OpenPages(); - void UpdateManager(); - - // Menu bar - // ------------------- - void OnCPUMode(wxCommandEvent& event); // CPU Mode menu - void OnJITOff(wxCommandEvent& event); - - void ToggleCodeWindow(bool bShow); - void ToggleRegisterWindow(bool bShow); - void ToggleWatchWindow(bool bShow); - void ToggleBreakPointWindow(bool bShow); - void ToggleMemoryWindow(bool bShow); - void ToggleJitWindow(bool bShow); - void ToggleSoundWindow(bool bShow); - void ToggleVideoWindow(bool bShow); - - void OnChangeFont(wxCommandEvent& event); - - void OnCodeStep(wxCommandEvent& event); - void OnAddrBoxChange(wxCommandEvent& event); - void OnSymbolsMenu(wxCommandEvent& event); - void OnJitMenu(wxCommandEvent& event); - void OnProfilerMenu(wxCommandEvent& event); - - // Sub dialogs - CRegisterWindow* m_RegisterWindow; - CWatchWindow* m_WatchWindow; - CBreakPointWindow* m_BreakpointWindow; - CMemoryWindow* m_MemoryWindow; - CJitWindow* m_JitWindow; - DSPDebuggerLLE* m_SoundWindow; - GFXDebuggerPanel* m_VideoWindow; - - // Settings - bool bAutomaticStart; bool bBootToPause; - bool bShowOnStart[IDM_VIDEOWINDOW - IDM_LOGWINDOW + 1]; - int iNbAffiliation[IDM_CODEWINDOW - IDM_LOGWINDOW + 1]; + void Load(); + void Save(); + + // Parent interaction + CFrame *Parent; + wxMenuBar * GetMenuBar(); + wxToolBar * GetToolBar(); + wxBitmap m_Bitmaps[ToolbarDebugBitmapMax]; + + bool UseInterpreter(); + bool BootToPause(); + bool AutomaticStart(); + bool JITNoBlockCache(); + bool JITNoBlockLinking(); + bool JumpToAddress(u32 address); + + void Update() override; + void NotifyMapLoaded(); + void CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParameter, wxMenuBar *pMenuBar); + void CreateMenuOptions(wxMenu *pMenu); + void CreateMenuSymbols(wxMenuBar *pMenuBar); + void RecreateToolbar(wxToolBar*); + void PopulateToolbar(wxToolBar* toolBar); + void UpdateButtonStates(); + void OpenPages(); + void UpdateManager(); + + // Menu bar + // ------------------- + void OnCPUMode(wxCommandEvent& event); // CPU Mode menu + void OnJITOff(wxCommandEvent& event); + + void ToggleCodeWindow(bool bShow); + void ToggleRegisterWindow(bool bShow); + void ToggleWatchWindow(bool bShow); + void ToggleBreakPointWindow(bool bShow); + void ToggleMemoryWindow(bool bShow); + void ToggleJitWindow(bool bShow); + void ToggleSoundWindow(bool bShow); + void ToggleVideoWindow(bool bShow); + + void OnChangeFont(wxCommandEvent& event); + + void OnCodeStep(wxCommandEvent& event); + void OnAddrBoxChange(wxCommandEvent& event); + void OnSymbolsMenu(wxCommandEvent& event); + void OnJitMenu(wxCommandEvent& event); + void OnProfilerMenu(wxCommandEvent& event); + + // Sub dialogs + CRegisterWindow* m_RegisterWindow; + CWatchWindow* m_WatchWindow; + CBreakPointWindow* m_BreakpointWindow; + CMemoryWindow* m_MemoryWindow; + CJitWindow* m_JitWindow; + DSPDebuggerLLE* m_SoundWindow; + GFXDebuggerPanel* m_VideoWindow; + + // Settings + bool bAutomaticStart; bool bBootToPause; + bool bShowOnStart[IDM_VIDEOWINDOW - IDM_LOGWINDOW + 1]; + int iNbAffiliation[IDM_CODEWINDOW - IDM_LOGWINDOW + 1]; private: - enum - { - // Debugger GUI Objects - ID_CODEVIEW, - ID_CALLSTACKLIST, - ID_CALLERSLIST, - ID_CALLSLIST, - ID_SYMBOLLIST - }; - - void OnSymbolListChange(wxCommandEvent& event); - void OnSymbolListContextMenu(wxContextMenuEvent& event); - void OnCallstackListChange(wxCommandEvent& event); - void OnCallersListChange(wxCommandEvent& event); - void OnCallsListChange(wxCommandEvent& event); - void OnCodeViewChange(wxCommandEvent &event); - void OnHostMessage(wxCommandEvent& event); - - // Debugger functions - void SingleStep(); - void StepOver(); - void StepOut(); - void ToggleBreakpoint(); - - void UpdateLists(); - void UpdateCallstack(); - - void InitBitmaps(); - - CCodeView* codeview; - wxListBox* callstack; - wxListBox* symbols; - wxListBox* callers; - wxListBox* calls; - Common::Event sync_event; - - DECLARE_EVENT_TABLE() + enum + { + // Debugger GUI Objects + ID_CODEVIEW, + ID_CALLSTACKLIST, + ID_CALLERSLIST, + ID_CALLSLIST, + ID_SYMBOLLIST + }; + + void OnSymbolListChange(wxCommandEvent& event); + void OnSymbolListContextMenu(wxContextMenuEvent& event); + void OnCallstackListChange(wxCommandEvent& event); + void OnCallersListChange(wxCommandEvent& event); + void OnCallsListChange(wxCommandEvent& event); + void OnCodeViewChange(wxCommandEvent &event); + void OnHostMessage(wxCommandEvent& event); + + // Debugger functions + void SingleStep(); + void StepOver(); + void StepOut(); + void ToggleBreakpoint(); + + void UpdateLists(); + void UpdateCallstack(); + + void InitBitmaps(); + + CCodeView* codeview; + wxListBox* callstack; + wxListBox* symbols; + wxListBox* callers; + wxListBox* calls; + Common::Event sync_event; + + DECLARE_EVENT_TABLE() }; -- cgit v1.2.3