2015-03-02 22:34:51 -08:00
|
|
|
#pragma once
|
2012-11-01 16:19:01 +01:00
|
|
|
|
2013-07-28 21:01:49 -07:00
|
|
|
#include "Windows/W32Util/DialogManager.h"
|
2013-09-30 10:40:15 +02:00
|
|
|
#include "Windows/W32Util/TabControl.h"
|
2013-07-28 21:01:49 -07:00
|
|
|
#include "Windows/Debugger/Debugger_Lists.h"
|
2021-10-03 06:17:33 -07:00
|
|
|
#include "Core/Core.h"
|
2013-06-30 15:51:50 -07:00
|
|
|
#include "Core/MIPS/MIPSDebugInterface.h"
|
|
|
|
|
#include "Core/Debugger/Breakpoints.h"
|
|
|
|
|
#include <vector>
|
2012-11-01 16:19:01 +01:00
|
|
|
|
2013-07-28 21:01:49 -07:00
|
|
|
#include "Common/CommonWindows.h"
|
2012-11-17 22:44:29 +00:00
|
|
|
|
2022-02-13 07:55:34 -08:00
|
|
|
class CtrlDisAsmView;
|
2024-11-24 15:19:30 +01:00
|
|
|
class BreakpointManager;
|
2022-02-13 07:55:34 -08:00
|
|
|
|
2024-11-24 15:19:30 +01:00
|
|
|
class CDisasm : public Dialog {
|
2012-11-01 16:19:01 +01:00
|
|
|
private:
|
2020-09-24 00:28:09 +02:00
|
|
|
int minWidth;
|
|
|
|
|
int minHeight;
|
2012-11-01 16:19:01 +01:00
|
|
|
DebugInterface *cpu;
|
2024-11-02 22:16:06 +01:00
|
|
|
u64 lastTicks_;
|
2013-06-28 00:26:04 +02:00
|
|
|
|
2013-07-30 16:19:05 +02:00
|
|
|
HWND statusBarWnd;
|
2013-07-08 17:59:34 +02:00
|
|
|
CtrlBreakpointList* breakpointList;
|
2013-07-02 23:21:20 +02:00
|
|
|
CtrlThreadList* threadList;
|
2013-08-12 22:11:00 +02:00
|
|
|
CtrlStackTraceView* stackTraceView;
|
2014-01-27 00:35:16 +01:00
|
|
|
CtrlModuleList* moduleList;
|
2023-04-09 00:01:42 -07:00
|
|
|
CtrlWatchList *watchList_;
|
2013-09-30 15:56:08 +02:00
|
|
|
TabControl* leftTabs;
|
2013-09-30 10:40:15 +02:00
|
|
|
TabControl* bottomTabs;
|
2024-11-24 15:19:30 +01:00
|
|
|
BreakpointManager *breakpoints_;
|
2013-06-30 15:51:50 -07:00
|
|
|
std::vector<BreakPoint> displayedBreakPoints_;
|
|
|
|
|
std::vector<MemCheck> displayedMemChecks_;
|
2020-09-24 00:17:31 +02:00
|
|
|
bool keepStatusBarText = false;
|
|
|
|
|
bool hideBottomTabs = false;
|
2020-09-24 00:28:09 +02:00
|
|
|
bool deferredSymbolFill_ = false;
|
2013-06-30 15:51:50 -07:00
|
|
|
|
2020-09-24 00:28:09 +02:00
|
|
|
BOOL DlgProc(UINT message, WPARAM wParam, LPARAM lParam) override;
|
2013-06-26 00:15:16 -07:00
|
|
|
void UpdateSize(WORD width, WORD height);
|
|
|
|
|
void SavePosition();
|
2013-07-03 22:29:35 +02:00
|
|
|
void updateThreadLabel(bool clear);
|
2024-11-02 22:47:13 +01:00
|
|
|
void step(CPUStepType stepType);
|
2013-08-17 10:49:07 +02:00
|
|
|
void runToLine();
|
2020-09-24 00:17:31 +02:00
|
|
|
|
2012-11-01 16:19:01 +01:00
|
|
|
public:
|
2020-09-24 00:17:31 +02:00
|
|
|
int index;
|
2012-11-01 16:19:01 +01:00
|
|
|
|
|
|
|
|
CDisasm(HINSTANCE _hInstance, HWND _hParent, DebugInterface *cpu);
|
|
|
|
|
~CDisasm();
|
2020-09-24 00:17:31 +02:00
|
|
|
|
2021-04-24 23:53:16 -07:00
|
|
|
void Show(bool bShow, bool includeToTop = true) override;
|
2020-09-24 00:28:09 +02:00
|
|
|
|
|
|
|
|
void Update() override {
|
2021-12-12 11:57:24 -08:00
|
|
|
UpdateDialog();
|
2013-09-21 08:24:24 -07:00
|
|
|
SetDebugMode(Core_IsStepping(), false);
|
2013-09-29 11:19:13 +02:00
|
|
|
breakpointList->reloadBreakpoints();
|
2013-06-27 21:07:49 +02:00
|
|
|
};
|
2021-12-12 11:57:24 -08:00
|
|
|
void UpdateDialog();
|
2013-09-21 08:24:24 -07:00
|
|
|
void SetDebugMode(bool _bDebug, bool switchPC);
|
2020-09-24 00:17:31 +02:00
|
|
|
|
2012-11-01 16:19:01 +01:00
|
|
|
void Goto(u32 addr);
|
|
|
|
|
void NotifyMapLoaded();
|
2021-12-12 11:57:24 -08:00
|
|
|
|
|
|
|
|
private:
|
2022-02-13 07:55:34 -08:00
|
|
|
CtrlDisAsmView *DisAsmView();
|
2021-12-12 11:57:24 -08:00
|
|
|
void ProcessUpdateDialog();
|
|
|
|
|
|
|
|
|
|
bool updateDialogScheduled_ = false;
|
2012-11-01 16:19:01 +01:00
|
|
|
};
|