2013-07-02 23:21:20 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "../../Core/Debugger/DebugInterface.h"
|
|
|
|
|
#include "../../Core/HLE/sceKernelThread.h"
|
2013-07-08 17:59:34 +02:00
|
|
|
#include "../../Core/Debugger/Breakpoints.h"
|
2013-08-12 22:11:00 +02:00
|
|
|
#include "../../Core/MIPS/MIPSStackWalk.h"
|
2013-09-29 10:50:18 +02:00
|
|
|
#include "Windows/W32Util/Misc.h"
|
2013-07-02 23:21:20 +02:00
|
|
|
|
2013-09-29 10:50:18 +02:00
|
|
|
class CtrlThreadList: public GenericListControl
|
2013-07-02 23:21:20 +02:00
|
|
|
{
|
|
|
|
|
public:
|
2013-09-29 10:50:18 +02:00
|
|
|
CtrlThreadList(HWND hwnd);
|
2013-07-02 23:21:20 +02:00
|
|
|
void reloadThreads();
|
2013-07-07 23:47:22 -07:00
|
|
|
void showMenu(int itemIndex, const POINT &pt);
|
2013-07-03 22:29:35 +02:00
|
|
|
const char* getCurrentThreadName();
|
2013-09-29 10:50:18 +02:00
|
|
|
protected:
|
|
|
|
|
virtual bool WindowMessage(UINT msg, WPARAM wParam, LPARAM lParam, LRESULT& returnValue);
|
|
|
|
|
virtual void GetColumnText(wchar_t* dest, int row, int col);
|
|
|
|
|
virtual int GetRowCount() { return (int) threads.size(); };
|
|
|
|
|
virtual void OnDoubleClick(int itemIndex, int column);
|
|
|
|
|
virtual void OnRightClick(int itemIndex, int column, const POINT& point);
|
|
|
|
|
private:
|
|
|
|
|
std::vector<DebugThreadInfo> threads;
|
2013-07-08 17:59:34 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class CtrlDisAsmView;
|
|
|
|
|
|
2013-09-29 11:19:13 +02:00
|
|
|
class CtrlBreakpointList: public GenericListControl
|
2013-07-08 17:59:34 +02:00
|
|
|
{
|
2013-09-29 11:19:13 +02:00
|
|
|
public:
|
2013-09-30 10:40:15 +02:00
|
|
|
CtrlBreakpointList(HWND hwnd, DebugInterface* cpu, CtrlDisAsmView* disasm);
|
2013-09-29 11:19:13 +02:00
|
|
|
void reloadBreakpoints();
|
|
|
|
|
void showMenu(int itemIndex, const POINT &pt);
|
|
|
|
|
protected:
|
|
|
|
|
virtual bool WindowMessage(UINT msg, WPARAM wParam, LPARAM lParam, LRESULT& returnValue);
|
|
|
|
|
virtual void GetColumnText(wchar_t* dest, int row, int col);
|
|
|
|
|
virtual int GetRowCount() { return getTotalBreakpointCount(); };
|
|
|
|
|
virtual void OnDoubleClick(int itemIndex, int column);
|
|
|
|
|
virtual void OnRightClick(int itemIndex, int column, const POINT& point);
|
|
|
|
|
private:
|
2013-07-08 17:59:34 +02:00
|
|
|
std::vector<BreakPoint> displayedBreakPoints_;
|
|
|
|
|
std::vector<MemCheck> displayedMemChecks_;
|
2013-08-26 19:00:16 +02:00
|
|
|
std::wstring breakpointText;
|
2013-07-08 17:59:34 +02:00
|
|
|
DebugInterface* cpu;
|
|
|
|
|
CtrlDisAsmView* disasm;
|
|
|
|
|
|
2013-07-31 20:33:50 +02:00
|
|
|
void editBreakpoint(int itemIndex);
|
2013-07-08 17:59:34 +02:00
|
|
|
void gotoBreakpointAddress(int itemIndex);
|
|
|
|
|
void removeBreakpoint(int itemIndex);
|
|
|
|
|
int getTotalBreakpointCount();
|
|
|
|
|
int getBreakpointIndex(int itemIndex, bool& isMemory);
|
|
|
|
|
void showBreakpointMenu(int itemIndex, const POINT &pt);
|
2013-07-31 20:10:35 +02:00
|
|
|
void toggleEnabled(int itemIndex);
|
2013-08-12 22:11:00 +02:00
|
|
|
};
|
|
|
|
|
|
2013-09-29 11:28:16 +02:00
|
|
|
class CtrlStackTraceView: public GenericListControl
|
2013-08-12 22:11:00 +02:00
|
|
|
{
|
|
|
|
|
public:
|
2013-09-30 10:40:15 +02:00
|
|
|
CtrlStackTraceView(HWND hwnd, DebugInterface* cpu, CtrlDisAsmView* disasm);
|
2013-08-12 22:11:00 +02:00
|
|
|
void loadStackTrace();
|
2013-09-29 11:28:16 +02:00
|
|
|
protected:
|
|
|
|
|
virtual bool WindowMessage(UINT msg, WPARAM wParam, LPARAM lParam, LRESULT& returnValue);
|
|
|
|
|
virtual void GetColumnText(wchar_t* dest, int row, int col);
|
|
|
|
|
virtual int GetRowCount() { return (int)frames.size(); };
|
|
|
|
|
virtual void OnDoubleClick(int itemIndex, int column);
|
|
|
|
|
private:
|
|
|
|
|
std::vector<MIPSStackWalk::StackFrame> frames;
|
|
|
|
|
DebugInterface* cpu;
|
|
|
|
|
CtrlDisAsmView* disasm;
|
2013-07-02 23:21:20 +02:00
|
|
|
};
|