1 // NOTE: Apologies for the quality of this code, this is really from pre-opensource Dolphin - that is, 2003. 2 3 #pragma once 4 5 #include "Windows/W32Util/DialogManager.h" 6 #include "Windows/W32Util/TabControl.h" 7 #include "Windows/Debugger/CtrlDisAsmView.h" 8 #include "Windows/Debugger/Debugger_Lists.h" 9 #include "Core/Core.h" 10 #include "Core/MIPS/MIPSDebugInterface.h" 11 #include "Core/Debugger/Breakpoints.h" 12 #include <vector> 13 14 #include "Common/CommonWindows.h" 15 16 class CDisasm : public Dialog 17 { 18 private: 19 int minWidth; 20 int minHeight; 21 DebugInterface *cpu; 22 u64 lastTicks; 23 24 HWND statusBarWnd; 25 CtrlBreakpointList* breakpointList; 26 CtrlThreadList* threadList; 27 CtrlStackTraceView* stackTraceView; 28 CtrlModuleList* moduleList; 29 TabControl* leftTabs; 30 TabControl* bottomTabs; 31 std::vector<BreakPoint> displayedBreakPoints_; 32 std::vector<MemCheck> displayedMemChecks_; 33 bool keepStatusBarText = false; 34 bool hideBottomTabs = false; 35 bool deferredSymbolFill_ = false; 36 37 BOOL DlgProc(UINT message, WPARAM wParam, LPARAM lParam) override; 38 void UpdateSize(WORD width, WORD height); 39 void SavePosition(); 40 void updateThreadLabel(bool clear); 41 void stepInto(); 42 void stepOver(); 43 void stepOut(); 44 void runToLine(); 45 46 public: 47 int index; 48 49 CDisasm(HINSTANCE _hInstance, HWND _hParent, DebugInterface *cpu); 50 ~CDisasm(); 51 52 void Show(bool bShow, bool includeToTop = true) override; 53 Update()54 void Update() override { 55 UpdateDialog(true); 56 SetDebugMode(Core_IsStepping(), false); 57 breakpointList->reloadBreakpoints(); 58 }; 59 void UpdateDialog(bool _bComplete = false); 60 // SetDebugMode 61 void SetDebugMode(bool _bDebug, bool switchPC); 62 63 void Goto(u32 addr); 64 void NotifyMapLoaded(); 65 }; 66