Windows debugger: Clean out old remains of multi-cpu support

This commit is contained in:
Henrik Rydgård 2020-09-24 00:17:31 +02:00
parent a9fef066b5
commit 6ac9dfe6b5
10 changed files with 83 additions and 117 deletions

View file

@ -19,8 +19,6 @@
#include "Windows/main.h" #include "Windows/main.h"
static const int numCPUs = 1;
extern HMENU g_hPopupMenus; extern HMENU g_hPopupMenus;
enum { REGISTER_PC = 32, REGISTER_HI, REGISTER_LO, REGISTERS_END }; enum { REGISTER_PC = 32, REGISTER_HI, REGISTER_LO, REGISTERS_END };
@ -520,9 +518,8 @@ void CtrlRegisterList::onMouseUp(WPARAM wParam, LPARAM lParam, int button)
SendMessage(GetParent(wnd),WM_DEB_GOTOHEXEDIT,val,0); SendMessage(GetParent(wnd),WM_DEB_GOTOHEXEDIT,val,0);
break; break;
case ID_REGLIST_GOTOINDISASM: case ID_REGLIST_GOTOINDISASM:
for (int i=0; i<numCPUs; i++) if (disasmWindow)
if (disasmWindow[i]) disasmWindow->Goto(val);
disasmWindow[i]->Goto(val);
break; break;
case ID_REGLIST_COPYVALUE: case ID_REGLIST_COPYVALUE:
copyRegisterValue(); copyRegisterValue();

View file

@ -31,12 +31,10 @@
#include <windowsx.h> #include <windowsx.h>
#include <commctrl.h> #include <commctrl.h>
static const int numCPUs = 1;
// How long (max) to wait for Core to pause before clearing temp breakpoints. // How long (max) to wait for Core to pause before clearing temp breakpoints.
const int TEMP_BREAKPOINT_WAIT_MS = 100; static const int TEMP_BREAKPOINT_WAIT_MS = 100;
FAR WNDPROC DefGotoEditProc; static FAR WNDPROC DefGotoEditProc;
LRESULT CALLBACK GotoEditProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) LRESULT CALLBACK GotoEditProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{ {
@ -66,7 +64,7 @@ LRESULT CALLBACK GotoEditProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lPa
return (LRESULT)CallWindowProc((WNDPROC)DefGotoEditProc,hDlg,message,wParam,lParam); return (LRESULT)CallWindowProc((WNDPROC)DefGotoEditProc,hDlg,message,wParam,lParam);
} }
FAR WNDPROC DefFuncListProc; static FAR WNDPROC DefFuncListProc;
LRESULT CALLBACK FuncListProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) LRESULT CALLBACK FuncListProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{ {
@ -94,8 +92,6 @@ LRESULT CALLBACK FuncListProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lPa
CDisasm::CDisasm(HINSTANCE _hInstance, HWND _hParent, DebugInterface *_cpu) : Dialog((LPCSTR)IDD_DISASM, _hInstance, _hParent) { CDisasm::CDisasm(HINSTANCE _hInstance, HWND _hParent, DebugInterface *_cpu) : Dialog((LPCSTR)IDD_DISASM, _hInstance, _hParent) {
cpu = _cpu; cpu = _cpu;
lastTicks = PSP_IsInited() ? CoreTiming::GetTicks() : 0; lastTicks = PSP_IsInited() ? CoreTiming::GetTicks() : 0;
keepStatusBarText = false;
hideBottomTabs = false;
SetWindowText(m_hDlg, ConvertUTF8ToWString(_cpu->GetName()).c_str()); SetWindowText(m_hDlg, ConvertUTF8ToWString(_cpu->GetName()).c_str());
@ -113,8 +109,7 @@ CDisasm::CDisasm(HINSTANCE _hInstance, HWND _hParent, DebugInterface *_cpu) : Di
// init status bar // init status bar
statusBarWnd = CreateWindowEx(0, STATUSCLASSNAME, L"", WS_CHILD | WS_VISIBLE, 0, 0, 0, 0, m_hDlg, (HMENU)IDC_DISASMSTATUSBAR, _hInstance, NULL); statusBarWnd = CreateWindowEx(0, STATUSCLASSNAME, L"", WS_CHILD | WS_VISIBLE, 0, 0, 0, 0, m_hDlg, (HMENU)IDC_DISASMSTATUSBAR, _hInstance, NULL);
if (g_Config.bDisplayStatusBar == false) if (g_Config.bDisplayStatusBar == false) {
{
ShowWindow(statusBarWnd,SW_HIDE); ShowWindow(statusBarWnd,SW_HIDE);
} }
@ -897,9 +892,8 @@ void CDisasm::UpdateDialog(bool _bComplete)
SetDlgItemText(m_hDlg, IDC_DEBUG_COUNT, tempTicks); SetDlgItemText(m_hDlg, IDC_DEBUG_COUNT, tempTicks);
} }
// Update Register Dialog // Update Register Dialog
for (int i=0; i<numCPUs; i++) if (memoryWindow)
if (memoryWindow[i]) memoryWindow->Update();
memoryWindow[i]->Update();
// repaint windows at the bottom. only the memory view needs to be forced to // repaint windows at the bottom. only the memory view needs to be forced to
// redraw. all others are updated manually // redraw. all others are updated manually

View file

@ -29,8 +29,8 @@ private:
TabControl* bottomTabs; TabControl* bottomTabs;
std::vector<BreakPoint> displayedBreakPoints_; std::vector<BreakPoint> displayedBreakPoints_;
std::vector<MemCheck> displayedMemChecks_; std::vector<MemCheck> displayedMemChecks_;
bool keepStatusBarText; bool keepStatusBarText = false;
bool hideBottomTabs; bool hideBottomTabs = false;
BOOL DlgProc(UINT message, WPARAM wParam, LPARAM lParam); BOOL DlgProc(UINT message, WPARAM wParam, LPARAM lParam);
void UpdateSize(WORD width, WORD height); void UpdateSize(WORD width, WORD height);
@ -40,17 +40,14 @@ private:
void stepOver(); void stepOver();
void stepOut(); void stepOut();
void runToLine(); void runToLine();
public: public:
int index; //helper int index;
CDisasm(HINSTANCE _hInstance, HWND _hParent, DebugInterface *cpu); CDisasm(HINSTANCE _hInstance, HWND _hParent, DebugInterface *cpu);
~CDisasm(); ~CDisasm();
//
// --- tools ---
//
virtual void Update() virtual void Update() {
{
UpdateDialog(true); UpdateDialog(true);
SetDebugMode(Core_IsStepping(), false); SetDebugMode(Core_IsStepping(), false);
breakpointList->reloadBreakpoints(); breakpointList->reloadBreakpoints();
@ -58,7 +55,7 @@ public:
void UpdateDialog(bool _bComplete = false); void UpdateDialog(bool _bComplete = false);
// SetDebugMode // SetDebugMode
void SetDebugMode(bool _bDebug, bool switchPC); void SetDebugMode(bool _bDebug, bool switchPC);
// show dialog
void Goto(u32 addr); void Goto(u32 addr);
void NotifyMapLoaded(); void NotifyMapLoaded();
}; };

View file

@ -10,8 +10,6 @@
#include "../../Core/HLE/sceKernelThread.h" #include "../../Core/HLE/sceKernelThread.h"
#include "util/text/utf8.h" #include "util/text/utf8.h"
static const int numCPUs = 1;
enum { TL_NAME, TL_PROGRAMCOUNTER, TL_ENTRYPOINT, TL_PRIORITY, TL_STATE, TL_WAITTYPE, TL_COLUMNCOUNT }; enum { TL_NAME, TL_PROGRAMCOUNTER, TL_ENTRYPOINT, TL_PRIORITY, TL_STATE, TL_WAITTYPE, TL_COLUMNCOUNT };
enum { BPL_ENABLED, BPL_TYPE, BPL_OFFSET, BPL_SIZELABEL, BPL_OPCODE, BPL_CONDITION, BPL_HITS, BPL_COLUMNCOUNT }; enum { BPL_ENABLED, BPL_TYPE, BPL_OFFSET, BPL_SIZELABEL, BPL_OPCODE, BPL_CONDITION, BPL_HITS, BPL_COLUMNCOUNT };
enum { SF_ENTRY, SF_ENTRYNAME, SF_CURPC, SF_CUROPCODE, SF_CURSP, SF_FRAMESIZE, SF_COLUMNCOUNT }; enum { SF_ENTRY, SF_ENTRYNAME, SF_CURPC, SF_CUROPCODE, SF_CURSP, SF_FRAMESIZE, SF_COLUMNCOUNT };
@ -375,22 +373,18 @@ void CtrlBreakpointList::toggleEnabled(int itemIndex)
void CtrlBreakpointList::gotoBreakpointAddress(int itemIndex) void CtrlBreakpointList::gotoBreakpointAddress(int itemIndex)
{ {
bool isMemory; bool isMemory;
int index = getBreakpointIndex(itemIndex,isMemory); int index = getBreakpointIndex(itemIndex, isMemory);
if (index == -1) return; if (index == -1)
return;
if (isMemory) if (isMemory) {
{
u32 address = displayedMemChecks_[index].start; u32 address = displayedMemChecks_[index].start;
if (memoryWindow)
for (int i=0; i<numCPUs; i++) memoryWindow->Goto(address);
if (memoryWindow[i])
memoryWindow[i]->Goto(address);
} else { } else {
u32 address = displayedBreakPoints_[index].addr; u32 address = displayedBreakPoints_[index].addr;
if (disasmWindow)
for (int i=0; i<numCPUs; i++) disasmWindow->Goto(address);
if (disasmWindow[i])
disasmWindow[i]->Goto(address);
} }
} }
@ -413,8 +407,7 @@ void CtrlBreakpointList::removeBreakpoint(int itemIndex)
int CtrlBreakpointList::getTotalBreakpointCount() int CtrlBreakpointList::getTotalBreakpointCount()
{ {
int count = (int)CBreakPoints::GetMemChecks().size(); int count = (int)CBreakPoints::GetMemChecks().size();
for (size_t i = 0; i < CBreakPoints::GetBreakpoints().size(); i++) for (size_t i = 0; i < CBreakPoints::GetBreakpoints().size(); i++) {
{
if (!displayedBreakPoints_[i].temporary) count++; if (!displayedBreakPoints_[i].temporary) count++;
} }

View file

@ -9,8 +9,6 @@
#include <algorithm> #include <algorithm>
static const int numCPUs = 1;
const PTCHAR CtrlDisplayListView::windowClass = _T("CtrlDisplayListView"); const PTCHAR CtrlDisplayListView::windowClass = _T("CtrlDisplayListView");
const int POPUP_SUBMENU_ID_DISPLAYLISTVIEW = 8; const int POPUP_SUBMENU_ID_DISPLAYLISTVIEW = 8;
@ -308,9 +306,8 @@ void CtrlDisplayListView::onMouseUp(WPARAM wParam, LPARAM lParam, int button)
switch(TrackPopupMenuEx(GetSubMenu(g_hPopupMenus,POPUP_SUBMENU_ID_DISPLAYLISTVIEW),TPM_RIGHTBUTTON|TPM_RETURNCMD,pt.x,pt.y,wnd,0)) switch(TrackPopupMenuEx(GetSubMenu(g_hPopupMenus,POPUP_SUBMENU_ID_DISPLAYLISTVIEW),TPM_RIGHTBUTTON|TPM_RETURNCMD,pt.x,pt.y,wnd,0))
{ {
case ID_DISASM_GOTOINMEMORYVIEW: case ID_DISASM_GOTOINMEMORYVIEW:
for (int i=0; i<numCPUs; i++) if (memoryWindow)
if (memoryWindow[i]) memoryWindow->Goto(curAddress);
memoryWindow[i]->Goto(curAddress);
break; break;
case ID_DISASM_TOGGLEBREAKPOINT: case ID_DISASM_TOGGLEBREAKPOINT:
toggleBreakpoint(); toggleBreakpoint();

View file

@ -536,23 +536,23 @@ namespace MainWindow
} }
void CreateDebugWindows() { void CreateDebugWindows() {
disasmWindow[0] = new CDisasm(MainWindow::GetHInstance(), MainWindow::GetHWND(), currentDebugMIPS); disasmWindow = new CDisasm(MainWindow::GetHInstance(), MainWindow::GetHWND(), currentDebugMIPS);
DialogManager::AddDlg(disasmWindow[0]); DialogManager::AddDlg(disasmWindow);
disasmWindow[0]->Show(g_Config.bShowDebuggerOnLoad); disasmWindow->Show(g_Config.bShowDebuggerOnLoad);
#if PPSSPP_API(ANY_GL) #if PPSSPP_API(ANY_GL)
geDebuggerWindow = new CGEDebugger(MainWindow::GetHInstance(), MainWindow::GetHWND()); geDebuggerWindow = new CGEDebugger(MainWindow::GetHInstance(), MainWindow::GetHWND());
DialogManager::AddDlg(geDebuggerWindow); DialogManager::AddDlg(geDebuggerWindow);
#endif #endif
memoryWindow[0] = new CMemoryDlg(MainWindow::GetHInstance(), MainWindow::GetHWND(), currentDebugMIPS); memoryWindow = new CMemoryDlg(MainWindow::GetHInstance(), MainWindow::GetHWND(), currentDebugMIPS);
DialogManager::AddDlg(memoryWindow[0]); DialogManager::AddDlg(memoryWindow);
} }
void DestroyDebugWindows() { void DestroyDebugWindows() {
DialogManager::RemoveDlg(disasmWindow[0]); DialogManager::RemoveDlg(disasmWindow);
if (disasmWindow[0]) if (disasmWindow)
delete disasmWindow[0]; delete disasmWindow;
disasmWindow[0] = 0; disasmWindow = 0;
#if PPSSPP_API(ANY_GL) #if PPSSPP_API(ANY_GL)
DialogManager::RemoveDlg(geDebuggerWindow); DialogManager::RemoveDlg(geDebuggerWindow);
@ -561,10 +561,10 @@ namespace MainWindow
geDebuggerWindow = 0; geDebuggerWindow = 0;
#endif #endif
DialogManager::RemoveDlg(memoryWindow[0]); DialogManager::RemoveDlg(memoryWindow);
if (memoryWindow[0]) if (memoryWindow)
delete memoryWindow[0]; delete memoryWindow;
memoryWindow[0] = 0; memoryWindow = 0;
} }
LRESULT CALLBACK DisplayProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { LRESULT CALLBACK DisplayProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
@ -678,10 +678,8 @@ namespace MainWindow
break; break;
case WM_TOUCH: case WM_TOUCH:
{ touchHandler.handleTouchEvent(hWnd, message, wParam, lParam);
touchHandler.handleTouchEvent(hWnd, message, wParam, lParam); return 0;
return 0;
}
default: default:
return DefWindowProc(hWnd, message, wParam, lParam); return DefWindowProc(hWnd, message, wParam, lParam);
@ -725,8 +723,8 @@ namespace MainWindow
} }
if (!noFocusPause && g_Config.bPauseOnLostFocus && GetUIState() == UISTATE_INGAME) { if (!noFocusPause && g_Config.bPauseOnLostFocus && GetUIState() == UISTATE_INGAME) {
if (pause != Core_IsStepping()) { // != is xor for bools if (pause != Core_IsStepping()) { // != is xor for bools
if (disasmWindow[0]) if (disasmWindow)
SendMessage(disasmWindow[0]->GetDlgHandle(), WM_COMMAND, IDC_STOPGO, 0); SendMessage(disasmWindow->GetDlgHandle(), WM_COMMAND, IDC_STOPGO, 0);
else else
Core_EnableStepping(pause); Core_EnableStepping(pause);
} }
@ -928,13 +926,13 @@ namespace MainWindow
break; break;
case WM_USER + 1: case WM_USER + 1:
if (disasmWindow[0]) if (disasmWindow)
disasmWindow[0]->NotifyMapLoaded(); disasmWindow->NotifyMapLoaded();
if (memoryWindow[0]) if (memoryWindow)
memoryWindow[0]->NotifyMapLoaded(); memoryWindow->NotifyMapLoaded();
if (disasmWindow[0]) if (disasmWindow)
disasmWindow[0]->UpdateDialog(); disasmWindow->UpdateDialog();
SetForegroundWindow(hwndMain); SetForegroundWindow(hwndMain);
break; break;

View file

@ -51,7 +51,6 @@ extern bool g_ShaderNameListChanged;
namespace MainWindow { namespace MainWindow {
extern HINSTANCE hInst; extern HINSTANCE hInst;
static const int numCPUs = 1; // what?
extern bool noFocusPause; extern bool noFocusPause;
static W32Util::AsyncBrowseDialog *browseDialog; static W32Util::AsyncBrowseDialog *browseDialog;
static W32Util::AsyncBrowseDialog *browseImageDialog; static W32Util::AsyncBrowseDialog *browseImageDialog;
@ -586,16 +585,16 @@ namespace MainWindow {
// Causes hang // Causes hang
//NativeMessageReceived("run", ""); //NativeMessageReceived("run", "");
if (disasmWindow[0]) if (disasmWindow)
SendMessage(disasmWindow[0]->GetDlgHandle(), WM_COMMAND, IDC_STOPGO, 0); SendMessage(disasmWindow->GetDlgHandle(), WM_COMMAND, IDC_STOPGO, 0);
} else if (Core_IsStepping()) { // It is paused, then continue to run. } else if (Core_IsStepping()) { // It is paused, then continue to run.
if (disasmWindow[0]) if (disasmWindow)
SendMessage(disasmWindow[0]->GetDlgHandle(), WM_COMMAND, IDC_STOPGO, 0); SendMessage(disasmWindow->GetDlgHandle(), WM_COMMAND, IDC_STOPGO, 0);
else else
Core_EnableStepping(false); Core_EnableStepping(false);
} else { } else {
if (disasmWindow[0]) if (disasmWindow)
SendMessage(disasmWindow[0]->GetDlgHandle(), WM_COMMAND, IDC_STOPGO, 0); SendMessage(disasmWindow->GetDlgHandle(), WM_COMMAND, IDC_STOPGO, 0);
else else
Core_EnableStepping(true); Core_EnableStepping(true);
} }
@ -854,11 +853,11 @@ namespace MainWindow {
if (W32Util::BrowseForFileName(true, hWnd, L"Load .ppmap", 0, L"Maps\0*.ppmap\0All files\0*.*\0\0", L"ppmap", fn)) { if (W32Util::BrowseForFileName(true, hWnd, L"Load .ppmap", 0, L"Maps\0*.ppmap\0All files\0*.*\0\0", L"ppmap", fn)) {
g_symbolMap->LoadSymbolMap(fn.c_str()); g_symbolMap->LoadSymbolMap(fn.c_str());
if (disasmWindow[0]) if (disasmWindow)
disasmWindow[0]->NotifyMapLoaded(); disasmWindow->NotifyMapLoaded();
if (memoryWindow[0]) if (memoryWindow)
memoryWindow[0]->NotifyMapLoaded(); memoryWindow->NotifyMapLoaded();
} }
break; break;
@ -871,11 +870,11 @@ namespace MainWindow {
if (W32Util::BrowseForFileName(true, hWnd, L"Load .sym", 0, L"Symbols\0*.sym\0All files\0*.*\0\0", L"sym", fn)) { if (W32Util::BrowseForFileName(true, hWnd, L"Load .sym", 0, L"Symbols\0*.sym\0All files\0*.*\0\0", L"sym", fn)) {
g_symbolMap->LoadNocashSym(fn.c_str()); g_symbolMap->LoadNocashSym(fn.c_str());
if (disasmWindow[0]) if (disasmWindow)
disasmWindow[0]->NotifyMapLoaded(); disasmWindow->NotifyMapLoaded();
if (memoryWindow[0]) if (memoryWindow)
memoryWindow[0]->NotifyMapLoaded(); memoryWindow->NotifyMapLoaded();
} }
break; break;
@ -887,18 +886,16 @@ namespace MainWindow {
case ID_DEBUG_RESETSYMBOLTABLE: case ID_DEBUG_RESETSYMBOLTABLE:
g_symbolMap->Clear(); g_symbolMap->Clear();
for (int i = 0; i < numCPUs; i++) if (disasmWindow)
if (disasmWindow[i]) disasmWindow->NotifyMapLoaded();
disasmWindow[i]->NotifyMapLoaded();
for (int i = 0; i < numCPUs; i++) if (memoryWindow)
if (memoryWindow[i]) memoryWindow->NotifyMapLoaded();
memoryWindow[i]->NotifyMapLoaded();
break; break;
case ID_DEBUG_DISASSEMBLY: case ID_DEBUG_DISASSEMBLY:
if (disasmWindow[0]) if (disasmWindow)
disasmWindow[0]->Show(true); disasmWindow->Show(true);
break; break;
case ID_DEBUG_GEDEBUGGER: case ID_DEBUG_GEDEBUGGER:
@ -909,8 +906,8 @@ namespace MainWindow {
break; break;
case ID_DEBUG_MEMORYVIEW: case ID_DEBUG_MEMORYVIEW:
if (memoryWindow[0]) if (memoryWindow)
memoryWindow[0]->Show(true); memoryWindow->Show(true);
break; break;
case ID_DEBUG_EXTRACTFILE: case ID_DEBUG_EXTRACTFILE:

View file

@ -72,8 +72,6 @@
#include "Windows/main.h" #include "Windows/main.h"
#include "UI/OnScreenDisplay.h" #include "UI/OnScreenDisplay.h"
static const int numCPUs = 1;
float g_mouseDeltaX = 0; float g_mouseDeltaX = 0;
float g_mouseDeltaY = 0; float g_mouseDeltaY = 0;
@ -201,21 +199,18 @@ void WindowsHost::UpdateUI() {
} }
void WindowsHost::UpdateMemView() { void WindowsHost::UpdateMemView() {
for (int i = 0; i < numCPUs; i++) if (memoryWindow)
if (memoryWindow[i]) PostDialogMessage(memoryWindow, WM_DEB_UPDATE);
PostDialogMessage(memoryWindow[i], WM_DEB_UPDATE);
} }
void WindowsHost::UpdateDisassembly() { void WindowsHost::UpdateDisassembly() {
for (int i = 0; i < numCPUs; i++) if (disasmWindow)
if (disasmWindow[i]) PostDialogMessage(disasmWindow, WM_DEB_UPDATE);
PostDialogMessage(disasmWindow[i], WM_DEB_UPDATE);
} }
void WindowsHost::SetDebugMode(bool mode) { void WindowsHost::SetDebugMode(bool mode) {
for (int i = 0; i < numCPUs; i++) if (disasmWindow)
if (disasmWindow[i]) PostDialogMessage(disasmWindow, WM_DEB_SETDEBUGLPARAM, 0, (LPARAM)mode);
PostDialogMessage(disasmWindow[i], WM_DEB_SETDEBUGLPARAM, 0, (LPARAM)mode);
} }
void WindowsHost::PollControllers() { void WindowsHost::PollControllers() {

View file

@ -88,11 +88,11 @@ extern "C" {
__declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1; __declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
} }
#if PPSSPP_API(ANY_GL) #if PPSSPP_API(ANY_GL)
CGEDebugger* geDebuggerWindow = 0; CGEDebugger* geDebuggerWindow = nullptr;
#endif #endif
CDisasm *disasmWindow[MAX_CPUCOUNT] = {0}; CDisasm *disasmWindow = nullptr;
CMemoryDlg *memoryWindow[MAX_CPUCOUNT] = {0}; CMemoryDlg *memoryWindow = nullptr;
static std::string langRegion; static std::string langRegion;
static std::string osName; static std::string osName;
@ -678,7 +678,7 @@ int WINAPI WinMain(HINSTANCE _hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLin
accel = hAccelTable; accel = hAccelTable;
break; break;
case WINDOW_CPUDEBUGGER: case WINDOW_CPUDEBUGGER:
wnd = disasmWindow[0] ? disasmWindow[0]->GetDlgHandle() : 0; wnd = disasmWindow ? disasmWindow->GetDlgHandle() : 0;
accel = hDebugAccelTable; accel = hDebugAccelTable;
break; break;
case WINDOW_GEDEBUGGER: case WINDOW_GEDEBUGGER:

View file

@ -22,10 +22,8 @@
#include "Debugger/Debugger_MemoryDlg.h" #include "Debugger/Debugger_MemoryDlg.h"
#include "Common/CommonWindows.h" #include "Common/CommonWindows.h"
#define MAX_CPUCOUNT 1 extern CDisasm *disasmWindow;
extern CMemoryDlg *memoryWindow;
extern CDisasm *disasmWindow[MAX_CPUCOUNT];
extern CMemoryDlg *memoryWindow[MAX_CPUCOUNT];
#if PPSSPP_API(ANY_GL) #if PPSSPP_API(ANY_GL)
#include "Windows/GEDebugger/GEDebugger.h" #include "Windows/GEDebugger/GEDebugger.h"