CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
hrydgard

CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!

GitHub Repository: hrydgard/ppsspp
Path: blob/master/Windows/Debugger/Debugger_Disasm.h
Views: 1401
1
#pragma once
2
3
#include "Windows/W32Util/DialogManager.h"
4
#include "Windows/W32Util/TabControl.h"
5
#include "Windows/Debugger/Debugger_Lists.h"
6
#include "Core/Core.h"
7
#include "Core/MIPS/MIPSDebugInterface.h"
8
#include "Core/Debugger/Breakpoints.h"
9
#include <vector>
10
11
#include "Common/CommonWindows.h"
12
13
class CtrlDisAsmView;
14
15
class CDisasm : public Dialog
16
{
17
private:
18
int minWidth;
19
int minHeight;
20
DebugInterface *cpu;
21
u64 lastTicks;
22
23
HWND statusBarWnd;
24
CtrlBreakpointList* breakpointList;
25
CtrlThreadList* threadList;
26
CtrlStackTraceView* stackTraceView;
27
CtrlModuleList* moduleList;
28
CtrlWatchList *watchList_;
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
54
void Update() override {
55
UpdateDialog();
56
SetDebugMode(Core_IsStepping(), false);
57
breakpointList->reloadBreakpoints();
58
};
59
void UpdateDialog();
60
void SetDebugMode(bool _bDebug, bool switchPC);
61
62
void Goto(u32 addr);
63
void NotifyMapLoaded();
64
65
private:
66
CtrlDisAsmView *DisAsmView();
67
void ProcessUpdateDialog();
68
69
bool updateDialogScheduled_ = false;
70
};
71
72