[Project64] Change CDebugger to CDebuggerUI
This commit is contained in:
parent
d56236356a
commit
6585657d05
|
@ -0,0 +1 @@
|
|||
#pragma once
|
|
@ -3,7 +3,7 @@ class CDebugDialog :
|
|||
public CDialogImpl < T >
|
||||
{
|
||||
protected:
|
||||
CDebugger * m_Debugger;
|
||||
CDebuggerUI * m_Debugger;
|
||||
HANDLE m_CreatedEvent;
|
||||
HANDLE m_DialogThread;
|
||||
|
||||
|
@ -20,7 +20,7 @@ protected:
|
|||
}
|
||||
|
||||
public:
|
||||
CDebugDialog (CDebugger * debugger) :
|
||||
CDebugDialog(CDebuggerUI * debugger) :
|
||||
m_Debugger(debugger),
|
||||
m_CreatedEvent(CreateEvent(NULL, true, false, NULL)),
|
||||
m_DialogThread(NULL)
|
||||
|
|
|
@ -10,10 +10,9 @@
|
|||
****************************************************************************/
|
||||
#include "stdafx.h"
|
||||
|
||||
#ifdef WINDOWS_UI
|
||||
#include "Debugger UI.h"
|
||||
|
||||
CDumpMemory::CDumpMemory(CDebugger * debugger) :
|
||||
CDumpMemory::CDumpMemory(CDebuggerUI * debugger) :
|
||||
CDebugDialog<CDumpMemory>(debugger)
|
||||
{
|
||||
}
|
||||
|
@ -124,207 +123,6 @@ LRESULT CDumpMemory::OnClicked(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
//#include "..\\..\\User Interface.h"
|
||||
//#include "..\\..\\N64 System.h"
|
||||
//#include <windows.h>
|
||||
//
|
||||
//DWORD CDumpMemory::m_StartAddress = 0x80000000;
|
||||
//DWORD CDumpMemory::m_EndAddress = 0x803FFFF0;
|
||||
//CDumpMemory::CDumpMemory(CMipsMemory * MMU) :
|
||||
// m_Window(NULL), g_MMU(MMU)
|
||||
//{
|
||||
//}
|
||||
//CDumpMemory::~CDumpMemory()
|
||||
//{
|
||||
//}
|
||||
//void CDumpMemory::DisplayDump(HWND & hParent)
|
||||
//{
|
||||
// DialogBoxParam(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_Cheats_DumpMemory),
|
||||
// (HWND)hParent, (DLGPROC)WinProc,(LPARAM)this);
|
||||
//}
|
||||
//DWORD CDumpMemory::AsciiToHex (const char * HexValue)
|
||||
//{
|
||||
// DWORD Count, Finish, Value = 0;
|
||||
// Finish = strlen(HexValue);
|
||||
// if (Finish > 8 )
|
||||
// {
|
||||
// Finish = 8;
|
||||
// }
|
||||
// for (Count = 0; Count < Finish; Count++
|
||||
// {
|
||||
// Value = (Value << 4);
|
||||
// switch ( HexValue[Count] )
|
||||
// {
|
||||
// case '0': break;
|
||||
// case '1': Value += 1; break;
|
||||
// case '2': Value += 2; break;
|
||||
// case '3': Value += 3; break;
|
||||
// case '4': Value += 4; break;
|
||||
// case '5': Value += 5; break;
|
||||
// case '6': Value += 6; break;
|
||||
// case '7': Value += 7; break;
|
||||
// case '8': Value += 8; break;
|
||||
// case '9': Value += 9; break;
|
||||
// case 'A': Value += 10; break;
|
||||
// case 'a': Value += 10; break;
|
||||
// case 'B': Value += 11; break;
|
||||
// case 'b': Value += 11; break;
|
||||
// case 'C': Value += 12; break;
|
||||
// case 'c': Value += 12; break;
|
||||
// case 'D': Value += 13; break;
|
||||
// case 'd': Value += 13; break;
|
||||
// case 'E': Value += 14; break;
|
||||
// case 'e': Value += 14; break;
|
||||
// case 'F': Value += 15; break;
|
||||
// case 'f': Value += 15; break;
|
||||
// default:
|
||||
// Value = (Value >> 4);
|
||||
// Count = Finish;
|
||||
// }
|
||||
// }
|
||||
// return Value;
|
||||
//}
|
||||
//int CALLBACK CDumpMemory::WinProc (HWND hDlg,DWORD uMsg,DWORD wParam, DWORD lParam)
|
||||
//{
|
||||
// switch (uMsg)
|
||||
// {
|
||||
// case WM_INITDIALOG:
|
||||
// {
|
||||
// CDumpMemory * _this = (CDumpMemory *)lParam;
|
||||
// SetProp(hDlg,"Class",_this);
|
||||
// _this->m_Window = hDlg;
|
||||
// SetDlgItemText(hDlg,IDC_E_START_ADDR,stdstr("0x%X",m_StartAddress).c_str());
|
||||
// SetDlgItemText(hDlg,IDC_E_END_ADDR,stdstr("0x%X",m_EndAddress).c_str());
|
||||
// SetDlgItemText(hDlg,IDC_E_ALT_PC,"0x80000000");
|
||||
// HWND hFormatList = GetDlgItem(hDlg,IDC_FORMAT);
|
||||
// int pos = SendMessage(hFormatList,CB_ADDSTRING,(WPARAM)0,(LPARAM)"TEXT - Disassembly + PC");
|
||||
// SendMessage(hFormatList,CB_SETITEMDATA,(WPARAM)pos,(LPARAM)DisassemblyWithPC);
|
||||
// SendMessage(hFormatList,CB_SETCURSEL,(WPARAM)0,(LPARAM)0);
|
||||
// }
|
||||
// break;
|
||||
// case WM_COMMAND:
|
||||
// switch (LOWORD(wParam))
|
||||
// {
|
||||
// case IDC_E_START_ADDR:
|
||||
// case IDC_E_END_ADDR:
|
||||
// case IDC_E_ALT_PC:
|
||||
// if (HIWORD(wParam) == EN_UPDATE)
|
||||
// {
|
||||
// CDumpMemory * _this = (CDumpMemory *)GetProp(hDlg,"Class");
|
||||
// TCHAR szTmp[20], szTmp2[20];
|
||||
// DWORD Value;
|
||||
// GetDlgItemText(hDlg,LOWORD(wParam),szTmp,sizeof(szTmp));
|
||||
// Value = szTmp[1] =='x'?AsciiToHex(&szTmp[2]):AsciiToHex(szTmp);
|
||||
// //if (Value > Stop)
|
||||
// //{
|
||||
// // Value = Stop;
|
||||
// //}
|
||||
// //if (Value < Start)
|
||||
// //{
|
||||
// // Value = Start;
|
||||
// //}
|
||||
// sprintf(szTmp2,"0x%X",Value);
|
||||
// if (strcmp(szTmp,szTmp2) != 0)
|
||||
// {
|
||||
// SetDlgItemText(hDlg,LOWORD(wParam),szTmp2);
|
||||
// if (_this->SelStop == 0)
|
||||
// {
|
||||
// _this->SelStop = strlen(szTmp2); _this->SelStart = _this->SelStop;
|
||||
// }
|
||||
// SendDlgItemMessage(hDlg,LOWORD(wParam),EM_SETSEL,(WPARAM)_this->SelStart,(LPARAM)_this->SelStop);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// WORD NewSelStart, NewSelStop;
|
||||
// SendDlgItemMessage(hDlg,LOWORD(wParam),EM_GETSEL,(WPARAM)&NewSelStart,(LPARAM)&NewSelStop);
|
||||
// if (NewSelStart != 0)
|
||||
// {
|
||||
// _this->SelStart = NewSelStart; _this->SelStop = NewSelStop;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
// case IDC_BTN_CHOOSE_FILE:
|
||||
// {
|
||||
// CDumpMemory * _this = (CDumpMemory *)GetProp(hDlg,"Class");
|
||||
// OPENFILENAME openfilename;
|
||||
// char FileName[_MAX_PATH],Directory[_MAX_PATH];
|
||||
// memset(&FileName, 0, sizeof(FileName));
|
||||
// memset(&openfilename, 0, sizeof(openfilename));
|
||||
// strcpy(Directory,g_Settings->LoadStringVal(ApplicationDir).c_str());
|
||||
// openfilename.lStructSize = sizeof( openfilename );
|
||||
// openfilename.hwndOwner = hDlg;
|
||||
// openfilename.lpstrFilter = "Text file (*.txt)\0*.txt;\0All files (*.*)\0*.*\0";
|
||||
// openfilename.lpstrFile = FileName;
|
||||
// openfilename.lpstrInitialDir = Directory;
|
||||
// openfilename.nMaxFile = MAX_PATH;
|
||||
// openfilename.Flags = OFN_HIDEREADONLY;
|
||||
// if (GetOpenFileName (&openfilename))
|
||||
// {
|
||||
// char drive[_MAX_DRIVE], dir[_MAX_DIR], fname[_MAX_FNAME], ext[_MAX_EXT];
|
||||
// _splitpath( FileName, drive, dir, fname, ext );
|
||||
// if (strlen(ext) == 0)
|
||||
// {
|
||||
// strcat(FileName,".txt");
|
||||
// }
|
||||
// SetDlgItemText(hDlg,IDC_FILENAME,FileName);
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
// case IDCANCEL:
|
||||
// RemoveProp(hDlg,"Class");
|
||||
// EndDialog(hDlg,0);
|
||||
// break;
|
||||
// case IDOK:
|
||||
// {
|
||||
// CDumpMemory * _this = (CDumpMemory *)GetProp(hDlg,"Class");
|
||||
// TCHAR szTmp[20], FileName[MAX_PATH];
|
||||
// int CurrentFormatSel = SendDlgItemMessage(hDlg,IDC_FORMAT,CB_GETCURSEL,0,0);
|
||||
// DumpFormat Format = (DumpFormat)SendDlgItemMessage(hDlg,IDC_FORMAT,CB_GETITEMDATA,CurrentFormatSel,0);
|
||||
// GetDlgItemText(hDlg,IDC_E_START_ADDR,szTmp,sizeof(szTmp));
|
||||
// DWORD StartPC = szTmp[1] =='x'?AsciiToHex(&szTmp[2]):AsciiToHex(szTmp);
|
||||
// GetDlgItemText(hDlg,IDC_E_END_ADDR,szTmp,sizeof(szTmp));
|
||||
// DWORD EndPC = szTmp[1] =='x'?AsciiToHex(&szTmp[2]):AsciiToHex(szTmp);
|
||||
// GetDlgItemText(hDlg,IDC_E_ALT_PC,szTmp,sizeof(szTmp));
|
||||
// DWORD DumpPC = szTmp[1] =='x'?AsciiToHex(&szTmp[2]):AsciiToHex(szTmp);
|
||||
// GetDlgItemText(hDlg,IDC_FILENAME,FileName,sizeof(FileName));
|
||||
// if (strlen(FileName) == 0)
|
||||
// {
|
||||
// g_Notify->DisplayError(L"Please Choose target file");
|
||||
// SetFocus(GetDlgItem(hDlg,IDC_FILENAME));
|
||||
// return false;
|
||||
// }
|
||||
// if (SendDlgItemMessage(hDlg,IDC_USE_ALT_PC,BM_GETSTATE, 0,0) != BST_CHECKED)
|
||||
// {
|
||||
// DumpPC = _this->g_MMU->SystemRegisters()->PROGRAM_COUNTER;
|
||||
// }
|
||||
// //disable buttons
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_E_START_ADDR),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_E_END_ADDR),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_E_ALT_PC),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_USE_ALT_PC),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_FILENAME),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_BTN_CHOOSE_FILE),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_FORMAT),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDOK),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDCANCEL),FALSE);
|
||||
// if (!_this->DumpMemory(FileName,Format,StartPC,EndPC,DumpPC))
|
||||
// {
|
||||
// //enable buttons
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
// RemoveProp(hDlg,"Class");
|
||||
// EndDialog(hDlg,0);
|
||||
// break;
|
||||
// }
|
||||
// break;
|
||||
// default:
|
||||
// return false;
|
||||
// }
|
||||
// return true;
|
||||
//}
|
||||
|
||||
bool CDumpMemory::DumpMemory(LPCSTR FileName, DumpFormat Format, DWORD StartPC, DWORD EndPC, DWORD /*DumpPC*/)
|
||||
{
|
||||
switch (Format)
|
||||
|
@ -357,242 +155,3 @@ bool CDumpMemory::DumpMemory ( LPCSTR FileName,DumpFormat Format, DWORD StartPC,
|
|||
}
|
||||
return false;
|
||||
}
|
||||
//
|
||||
//CDumpMemory::CDumpMemory(CMipsMemory * MMU) :
|
||||
// m_Window(NULL), g_MMU(MMU)
|
||||
//{
|
||||
//}
|
||||
//
|
||||
//CDumpMemory::~CDumpMemory()
|
||||
//{
|
||||
//}
|
||||
//
|
||||
//void CDumpMemory::DisplayDump(HWND & hParent)
|
||||
//{
|
||||
// DialogBoxParam(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_Cheats_DumpMemory),
|
||||
// (HWND)hParent, (DLGPROC)WinProc,(LPARAM)this);
|
||||
//}
|
||||
//
|
||||
//DWORD CDumpMemory::AsciiToHex (const char * HexValue)
|
||||
//{
|
||||
// DWORD Count, Finish, Value = 0;
|
||||
//
|
||||
// Finish = strlen(HexValue);
|
||||
// if (Finish > 8 )
|
||||
// {
|
||||
// Finish = 8;
|
||||
// }
|
||||
//
|
||||
// for (Count = 0; Count < Finish; Count++)
|
||||
// {
|
||||
// Value = (Value << 4);
|
||||
// switch ( HexValue[Count] )
|
||||
// {
|
||||
// case '0': break;
|
||||
// case '1': Value += 1; break;
|
||||
// case '2': Value += 2; break;
|
||||
// case '3': Value += 3; break;
|
||||
// case '4': Value += 4; break;
|
||||
// case '5': Value += 5; break;
|
||||
// case '6': Value += 6; break;
|
||||
// case '7': Value += 7; break;
|
||||
// case '8': Value += 8; break;
|
||||
// case '9': Value += 9; break;
|
||||
// case 'A': Value += 10; break;
|
||||
// case 'a': Value += 10; break;
|
||||
// case 'B': Value += 11; break;
|
||||
// case 'b': Value += 11; break;
|
||||
// case 'C': Value += 12; break;
|
||||
// case 'c': Value += 12; break;
|
||||
// case 'D': Value += 13; break;
|
||||
// case 'd': Value += 13; break;
|
||||
// case 'E': Value += 14; break;
|
||||
// case 'e': Value += 14; break;
|
||||
// case 'F': Value += 15; break;
|
||||
// case 'f': Value += 15; break;
|
||||
// default:
|
||||
// Value = (Value >> 4);
|
||||
// Count = Finish;
|
||||
// }
|
||||
// }
|
||||
// return Value;
|
||||
//}
|
||||
//
|
||||
//int CALLBACK CDumpMemory::WinProc (HWND hDlg,DWORD uMsg,DWORD wParam, DWORD lParam)
|
||||
//{
|
||||
// switch (uMsg)
|
||||
// {
|
||||
// case WM_INITDIALOG:
|
||||
// {
|
||||
// CDumpMemory * _this = (CDumpMemory *)lParam;
|
||||
// SetProp(hDlg,"Class",_this);
|
||||
// _this->m_Window = hDlg;
|
||||
// SetDlgItemText(hDlg,IDC_E_START_ADDR,stdstr("0x%X",m_StartAddress).c_str());
|
||||
// SetDlgItemText(hDlg,IDC_E_END_ADDR,stdstr("0x%X",m_EndAddress).c_str());
|
||||
// SetDlgItemText(hDlg,IDC_E_ALT_PC,"0x80000000");
|
||||
//
|
||||
// HWND hFormatList = GetDlgItem(hDlg,IDC_FORMAT);
|
||||
// int pos = SendMessage(hFormatList,CB_ADDSTRING,(WPARAM)0,(LPARAM)"TEXT - Disassembly + PC");
|
||||
// SendMessage(hFormatList,CB_SETITEMDATA,(WPARAM)pos,(LPARAM)DisassemblyWithPC);
|
||||
// SendMessage(hFormatList,CB_SETCURSEL,(WPARAM)0,(LPARAM)0);
|
||||
//
|
||||
// }
|
||||
// break;
|
||||
// case WM_COMMAND:
|
||||
// switch (LOWORD(wParam))
|
||||
// {
|
||||
// case IDC_E_START_ADDR:
|
||||
// case IDC_E_END_ADDR:
|
||||
// case IDC_E_ALT_PC:
|
||||
// if (HIWORD(wParam) == EN_UPDATE)
|
||||
// {
|
||||
// CDumpMemory * _this = (CDumpMemory *)GetProp(hDlg,"Class");
|
||||
//
|
||||
// TCHAR szTmp[20], szTmp2[20];
|
||||
// DWORD Value;
|
||||
//
|
||||
// GetDlgItemText(hDlg,LOWORD(wParam),szTmp,sizeof(szTmp));
|
||||
// Value = szTmp[1] =='x'?AsciiToHex(&szTmp[2]):AsciiToHex(szTmp);
|
||||
// //if (Value > Stop)
|
||||
// //{
|
||||
// // Value = Stop;
|
||||
// //}
|
||||
// //if (Value < Start)
|
||||
// //{
|
||||
// // Value = Start;
|
||||
// //}
|
||||
// sprintf(szTmp2,"0x%X",Value);
|
||||
// if (strcmp(szTmp,szTmp2) != 0)
|
||||
// {
|
||||
// SetDlgItemText(hDlg,LOWORD(wParam),szTmp2);
|
||||
// if (_this->SelStop == 0) { _this->SelStop = strlen(szTmp2); _this->SelStart = _this->SelStop; }
|
||||
// SendDlgItemMessage(hDlg,LOWORD(wParam),EM_SETSEL,(WPARAM)_this->SelStart,(LPARAM)_this->SelStop);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// WORD NewSelStart, NewSelStop;
|
||||
// SendDlgItemMessage(hDlg,LOWORD(wParam),EM_GETSEL,(WPARAM)&NewSelStart,(LPARAM)&NewSelStop);
|
||||
// if (NewSelStart != 0)
|
||||
// {
|
||||
// _this->SelStart = NewSelStart; _this->SelStop = NewSelStop;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
// case IDC_BTN_CHOOSE_FILE:
|
||||
// {
|
||||
// CDumpMemory * _this = (CDumpMemory *)GetProp(hDlg,"Class");
|
||||
//
|
||||
// OPENFILENAME openfilename;
|
||||
// char FileName[_MAX_PATH],Directory[_MAX_PATH];
|
||||
//
|
||||
// memset(&FileName, 0, sizeof(FileName));
|
||||
// memset(&openfilename, 0, sizeof(openfilename));
|
||||
//
|
||||
// strcpy(Directory,g_Settings->LoadStringVal(ApplicationDir).c_str());
|
||||
//
|
||||
// openfilename.lStructSize = sizeof( openfilename );
|
||||
// openfilename.hwndOwner = hDlg;
|
||||
// openfilename.lpstrFilter = "Text file (*.txt)\0*.txt;\0All files (*.*)\0*.*\0";
|
||||
// openfilename.lpstrFile = FileName;
|
||||
// openfilename.lpstrInitialDir = Directory;
|
||||
// openfilename.nMaxFile = MAX_PATH;
|
||||
// openfilename.Flags = OFN_HIDEREADONLY;
|
||||
//
|
||||
// if (GetOpenFileName (&openfilename))
|
||||
// {
|
||||
// char drive[_MAX_DRIVE], dir[_MAX_DIR], fname[_MAX_FNAME], ext[_MAX_EXT];
|
||||
//
|
||||
// _splitpath( FileName, drive, dir, fname, ext );
|
||||
// if (strlen(ext) == 0)
|
||||
// {
|
||||
// strcat(FileName,".txt");
|
||||
// }
|
||||
// SetDlgItemText(hDlg,IDC_FILENAME,FileName);
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
// case IDCANCEL:
|
||||
// RemoveProp(hDlg,"Class");
|
||||
// EndDialog(hDlg,0);
|
||||
// break;
|
||||
// case IDOK:
|
||||
// {
|
||||
// CDumpMemory * _this = (CDumpMemory *)GetProp(hDlg,"Class");
|
||||
// TCHAR szTmp[20], FileName[MAX_PATH];
|
||||
//
|
||||
// int CurrentFormatSel = SendDlgItemMessage(hDlg,IDC_FORMAT,CB_GETCURSEL,0,0);
|
||||
// DumpFormat Format = (DumpFormat)SendDlgItemMessage(hDlg,IDC_FORMAT,CB_GETITEMDATA,CurrentFormatSel,0);
|
||||
//
|
||||
// GetDlgItemText(hDlg,IDC_E_START_ADDR,szTmp,sizeof(szTmp));
|
||||
// DWORD StartPC = szTmp[1] =='x'?AsciiToHex(&szTmp[2]):AsciiToHex(szTmp);
|
||||
// GetDlgItemText(hDlg,IDC_E_END_ADDR,szTmp,sizeof(szTmp));
|
||||
// DWORD EndPC = szTmp[1] =='x'?AsciiToHex(&szTmp[2]):AsciiToHex(szTmp);
|
||||
// GetDlgItemText(hDlg,IDC_E_ALT_PC,szTmp,sizeof(szTmp));
|
||||
// DWORD DumpPC = szTmp[1] =='x'?AsciiToHex(&szTmp[2]):AsciiToHex(szTmp);
|
||||
// GetDlgItemText(hDlg,IDC_FILENAME,FileName,sizeof(FileName));
|
||||
//
|
||||
// if (strlen(FileName) == 0)
|
||||
// {
|
||||
// g_Notify->DisplayError(L"Please Choose target file");
|
||||
// SetFocus(GetDlgItem(hDlg,IDC_FILENAME));
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// if (SendDlgItemMessage(hDlg,IDC_USE_ALT_PC,BM_GETSTATE, 0,0) != BST_CHECKED)
|
||||
// {
|
||||
// DumpPC = _this->g_MMU->SystemRegisters()->PROGRAM_COUNTER;
|
||||
// }
|
||||
// //disable buttons
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_E_START_ADDR),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_E_END_ADDR),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_E_ALT_PC),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_USE_ALT_PC),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_FILENAME),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_BTN_CHOOSE_FILE),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDC_FORMAT),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDOK),FALSE);
|
||||
// EnableWindow(GetDlgItem(hDlg,IDCANCEL),FALSE);
|
||||
// if (!_this->DumpMemory(FileName,Format,StartPC,EndPC,DumpPC))
|
||||
// {
|
||||
// //enable buttons
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
// RemoveProp(hDlg,"Class");
|
||||
// EndDialog(hDlg,0);
|
||||
// break;
|
||||
// }
|
||||
// break;
|
||||
// default:
|
||||
// return false;
|
||||
// }
|
||||
// return true;
|
||||
//}
|
||||
//
|
||||
//bool CDumpMemory::DumpMemory ( LPCSTR FileName,DumpFormat Format, DWORD StartPC, DWORD EndPC, DWORD DumpPC )
|
||||
//{
|
||||
// switch (Format)
|
||||
// {
|
||||
// case DisassemblyWithPC:
|
||||
// {
|
||||
// CLog LogFile(FileName);
|
||||
// if (!LogFile.IsOpen())
|
||||
// {
|
||||
// g_Notify->DisplayError(L"Failed to open\n%s",FileName);
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// for (COpcode OpCode(g_MMU,StartPC); OpCode.PC() < EndPC; OpCode.Next())
|
||||
// {
|
||||
// LogFile.Log("%X: %s",OpCode.PC(),OpCode.Name().c_str());
|
||||
// }
|
||||
// m_StartAddress = StartPC;
|
||||
// m_EndAddress = EndPC;
|
||||
// return true;
|
||||
// }
|
||||
// break;
|
||||
// }
|
||||
// return false;
|
||||
//}
|
||||
#endif
|
||||
|
|
|
@ -16,7 +16,7 @@ class CDumpMemory :
|
|||
public:
|
||||
enum { IDD = IDD_Cheats_DumpMemory };
|
||||
|
||||
CDumpMemory(CDebugger * debugger);
|
||||
CDumpMemory(CDebuggerUI * debugger);
|
||||
virtual ~CDumpMemory(void);
|
||||
|
||||
private:
|
||||
|
|
|
@ -10,10 +10,9 @@
|
|||
****************************************************************************/
|
||||
#include "stdafx.h"
|
||||
|
||||
#ifdef WINDOWS_UI
|
||||
#include "Debugger UI.h"
|
||||
|
||||
CDebugMemorySearch::CDebugMemorySearch(CDebugger * debugger) :
|
||||
CDebugMemorySearch::CDebugMemorySearch(CDebuggerUI * debugger) :
|
||||
CDebugDialog<CDebugMemorySearch>(debugger),
|
||||
m_MemoryState(NULL),
|
||||
m_MemoryStateSize(0)
|
||||
|
@ -598,7 +597,7 @@ bool CDebugMemorySearch::SearchForChanges(SearchMemChangeState SearchType, Memor
|
|||
|
||||
if (SearchType == SearchChangeState_Reset)
|
||||
{
|
||||
Notify().BreakPoint(__FILEW__,__LINE__);
|
||||
g_Notify->BreakPoint(__FILEW__, __LINE__);
|
||||
}
|
||||
if (Size == _32Bit) { StartAddress = ((StartAddress + 3) & ~3); }
|
||||
if (Size == _16Bit) { StartAddress = ((StartAddress + 1) & ~1); }
|
||||
|
@ -789,4 +788,3 @@ bool CDebugMemorySearch::SearchForValue (DWORD Value, MemorySize Size, DWORD &St
|
|||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -16,7 +16,7 @@ class CDebugMemorySearch :
|
|||
public:
|
||||
enum { IDD = IDD_Debugger_Search };
|
||||
|
||||
CDebugMemorySearch(CDebugger * debugger);
|
||||
CDebugMemorySearch(CDebuggerUI * debugger);
|
||||
virtual ~CDebugMemorySearch(void);
|
||||
|
||||
private:
|
||||
|
|
|
@ -10,10 +10,9 @@
|
|||
****************************************************************************/
|
||||
#include "stdafx.h"
|
||||
|
||||
#ifdef WINDOWS_UI
|
||||
#include "Debugger UI.h"
|
||||
|
||||
CDebugTlb::CDebugTlb(CDebugger * debugger) :
|
||||
CDebugTlb::CDebugTlb(CDebuggerUI * debugger) :
|
||||
CDebugDialog<CDebugTlb>(debugger)
|
||||
{
|
||||
}
|
||||
|
@ -287,4 +286,3 @@ void CDebugTlb::RefreshTLBWindow (void)
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
class CDebugTlb :
|
||||
public CDebugDialog < CDebugTlb >
|
||||
{
|
||||
|
||||
BEGIN_MSG_MAP_EX(CDebugTlb)
|
||||
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
||||
COMMAND_CODE_HANDLER(BN_CLICKED, OnClicked)
|
||||
|
@ -25,7 +24,7 @@ class CDebugTlb :
|
|||
public:
|
||||
enum { IDD = IDD_Debugger_TLB };
|
||||
|
||||
CDebugTlb(CDebugger * debugger);
|
||||
CDebugTlb(CDebuggerUI * debugger);
|
||||
virtual ~CDebugTlb(void);
|
||||
|
||||
void RefreshTLBWindow(void);
|
||||
|
|
|
@ -10,10 +10,9 @@
|
|||
****************************************************************************/
|
||||
#include "stdafx.h"
|
||||
|
||||
#ifdef WINDOWS_UI
|
||||
#include "Debugger UI.h"
|
||||
|
||||
CDebugMemoryView::CDebugMemoryView(CDebugger * debugger) :
|
||||
CDebugMemoryView::CDebugMemoryView(CDebuggerUI * debugger) :
|
||||
CDebugDialog<CDebugMemoryView>(debugger),
|
||||
m_MemoryList(NULL)
|
||||
{
|
||||
|
@ -430,7 +429,6 @@ void CDebugMemoryView::RefreshMemory ( bool ResetCompare )
|
|||
}
|
||||
}
|
||||
WritePos = 4 - Offset;
|
||||
|
||||
}
|
||||
|
||||
for (DWORD Pos = ((m_DataStartLoc + 3) & ~3); Pos < (m_DataStartLoc + MemoryToDisplay); WritePos += 4, Pos += 4)
|
||||
|
@ -472,4 +470,3 @@ void CDebugMemoryView::RefreshMemory ( bool ResetCompare )
|
|||
Insert_MemoryLineDump(count);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -13,7 +13,15 @@
|
|||
class CDebugMemoryView :
|
||||
public CDebugDialog < CDebugMemoryView >
|
||||
{
|
||||
public:
|
||||
enum { IDD = IDD_Debugger_Memory };
|
||||
|
||||
CDebugMemoryView(CDebuggerUI * debugger);
|
||||
virtual ~CDebugMemoryView(void);
|
||||
|
||||
void ShowAddress(DWORD Address, bool VAddr);
|
||||
|
||||
private:
|
||||
BEGIN_MSG_MAP_EX(CDebugMemoryView)
|
||||
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
||||
COMMAND_CODE_HANDLER(BN_CLICKED, OnClicked)
|
||||
|
@ -47,12 +55,4 @@ class CDebugMemoryView :
|
|||
bool m_CompareVAddrr;
|
||||
BYTE m_CompareData[MemoryToDisplay];
|
||||
bool m_CompareValid[MemoryToDisplay];
|
||||
|
||||
public:
|
||||
enum { IDD = IDD_Debugger_Memory };
|
||||
|
||||
CDebugMemoryView(CDebugger * debugger);
|
||||
virtual ~CDebugMemoryView(void);
|
||||
|
||||
void ShowAddress (DWORD Address, bool VAddr);
|
||||
};
|
||||
|
|
|
@ -1,41 +1,4 @@
|
|||
////#define _WIN32_WINNT 0x0500
|
||||
|
||||
//#include <atlbase.h>
|
||||
//#include <wtl/atlapp.h>
|
||||
|
||||
////#include <atlbase.h>
|
||||
////#include <atlapp.h>
|
||||
|
||||
//class CPj64Module :
|
||||
// public CAppModule
|
||||
//{
|
||||
//public:
|
||||
// CPj64Module(void)
|
||||
// {
|
||||
// Init(NULL, GetModuleHandle(NULL));
|
||||
// }
|
||||
// virtual ~CPj64Module(void)
|
||||
// {
|
||||
// Term();
|
||||
// }
|
||||
//};
|
||||
//
|
||||
//
|
||||
//extern CPj64Module _Module;
|
||||
//
|
||||
//#define _WTL_NO_CSTRING
|
||||
//
|
||||
//#include <atlwin.h>
|
||||
//#include <wtl/atlmisc.h>
|
||||
//#include <wtl/atlcrack.h>
|
||||
//
|
||||
//#include <wtl/atlframe.h>
|
||||
//#include <wtl/atlctrls.h>
|
||||
//#include <wtl/atldlgs.h>
|
||||
//
|
||||
//#include "../../Support.h"
|
||||
//#include "Control/numberctrl.h"
|
||||
//#include "Control/ClistCtrl/ListCtrl.h"
|
||||
#pragma once
|
||||
|
||||
#include "../../WTL App.h"
|
||||
#include "../../N64 System.h"
|
||||
|
|
|
@ -9,26 +9,36 @@
|
|||
* *
|
||||
****************************************************************************/
|
||||
#include "stdafx.h"
|
||||
|
||||
#ifdef WINDOWS_UI
|
||||
#include "Debugger UI.h"
|
||||
|
||||
CPj64Module _Module;
|
||||
|
||||
CDebugger::CDebugger () :
|
||||
CDebuggerUI::CDebuggerUI () :
|
||||
m_MemoryDump(NULL),
|
||||
m_MemoryView(NULL),
|
||||
m_MemorySearch(NULL),
|
||||
m_DebugTLB(NULL)
|
||||
{
|
||||
g_Settings->RegisterChangeCB(GameRunning_InReset,this,(CSettings::SettingChangedFunc)GameReset);
|
||||
g_Debugger = this;
|
||||
}
|
||||
|
||||
CDebugger::~CDebugger (void)
|
||||
CDebuggerUI::~CDebuggerUI (void)
|
||||
{
|
||||
g_Settings->UnregisterChangeCB(GameRunning_InReset,this,(CSettings::SettingChangedFunc)GameReset);
|
||||
Debug_Reset();
|
||||
}
|
||||
|
||||
void CDebugger::Debug_Reset ( void )
|
||||
void CDebuggerUI::GameReset ( CDebuggerUI * _this )
|
||||
{
|
||||
if (!g_Settings->LoadBool(GameRunning_InReset))
|
||||
{
|
||||
return;
|
||||
}
|
||||
_this->Debug_Reset();
|
||||
}
|
||||
|
||||
void CDebuggerUI::Debug_Reset ( void )
|
||||
{
|
||||
if (m_MemoryDump)
|
||||
{
|
||||
|
@ -56,7 +66,7 @@ void CDebugger::Debug_Reset ( void )
|
|||
}
|
||||
}
|
||||
|
||||
void CDebugger::Debug_ShowMemoryDump()
|
||||
void CDebuggerUI::Debug_ShowMemoryDump()
|
||||
{
|
||||
if (g_MMU == NULL)
|
||||
{
|
||||
|
@ -72,7 +82,7 @@ void CDebugger::Debug_ShowMemoryDump()
|
|||
}
|
||||
}
|
||||
|
||||
void CDebugger::Debug_ShowMemoryWindow ( void )
|
||||
void CDebuggerUI::Debug_ShowMemoryWindow ( void )
|
||||
{
|
||||
if (g_MMU == NULL)
|
||||
{
|
||||
|
@ -88,7 +98,7 @@ void CDebugger::Debug_ShowMemoryWindow ( void )
|
|||
}
|
||||
}
|
||||
|
||||
void CDebugger::Debug_ShowMemoryLocation ( DWORD Address, bool VAddr )
|
||||
void CDebuggerUI::Debug_ShowMemoryLocation ( uint32_t Address, bool VAddr )
|
||||
{
|
||||
Debug_ShowMemoryWindow();
|
||||
if (m_MemoryView)
|
||||
|
@ -97,7 +107,7 @@ void CDebugger::Debug_ShowMemoryLocation ( DWORD Address, bool VAddr )
|
|||
}
|
||||
}
|
||||
|
||||
void CDebugger::Debug_ShowTLBWindow (void)
|
||||
void CDebuggerUI::Debug_ShowTLBWindow (void)
|
||||
{
|
||||
if (g_MMU == NULL)
|
||||
{
|
||||
|
@ -113,7 +123,7 @@ void CDebugger::Debug_ShowTLBWindow (void)
|
|||
}
|
||||
}
|
||||
|
||||
void CDebugger::Debug_RefreshTLBWindow(void)
|
||||
void CDebuggerUI::Debug_RefreshTLBWindow(void)
|
||||
{
|
||||
if (m_DebugTLB)
|
||||
{
|
||||
|
@ -121,7 +131,7 @@ void CDebugger::Debug_RefreshTLBWindow(void)
|
|||
}
|
||||
}
|
||||
|
||||
void CDebugger::Debug_ShowMemorySearch()
|
||||
void CDebuggerUI::Debug_ShowMemorySearch()
|
||||
{
|
||||
if (m_MemorySearch == NULL)
|
||||
{
|
||||
|
@ -132,4 +142,8 @@ void CDebugger::Debug_ShowMemorySearch()
|
|||
m_MemorySearch->ShowWindow();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void CDebuggerUI::TLBChanged()
|
||||
{
|
||||
Debug_RefreshTLBWindow();
|
||||
}
|
|
@ -13,8 +13,15 @@
|
|||
class CDumpMemory;
|
||||
class CDebugMemoryView;
|
||||
class CDebugMemorySearch;
|
||||
class CDebugTlb;
|
||||
|
||||
class CDebugger
|
||||
__interface CDebugger
|
||||
{
|
||||
virtual void TLBChanged ( void ) = 0;
|
||||
};
|
||||
|
||||
class CDebuggerUI :
|
||||
public CDebugger
|
||||
{
|
||||
CDumpMemory * m_MemoryDump;
|
||||
CDebugMemoryView * m_MemoryView;
|
||||
|
@ -22,16 +29,19 @@ class CDebugger
|
|||
CDebugTlb * m_DebugTLB;
|
||||
|
||||
protected:
|
||||
CDebugger();
|
||||
virtual ~CDebugger();
|
||||
CDebuggerUI();
|
||||
virtual ~CDebuggerUI();
|
||||
|
||||
void TLBChanged ( void );
|
||||
|
||||
public:
|
||||
|
||||
void Debug_Reset ( void );
|
||||
void Debug_ShowMemoryDump ( void );
|
||||
void Debug_ShowMemoryWindow ( void );
|
||||
void Debug_ShowMemoryLocation ( DWORD Address, bool VAddr );
|
||||
void Debug_ShowMemoryLocation ( uint32_t Address, bool VAddr );
|
||||
void Debug_ShowMemorySearch ( void );
|
||||
void Debug_ShowTLBWindow ( void );
|
||||
void Debug_RefreshTLBWindow ( void );
|
||||
|
||||
static void GameReset ( CDebuggerUI * _this );
|
||||
};
|
||||
|
|
|
@ -567,14 +567,10 @@ void CN64System::PluginReset()
|
|||
|
||||
void CN64System::Reset (bool bInitReg, bool ClearMenory)
|
||||
{
|
||||
g_Settings->SaveBool(GameRunning_InReset,true);
|
||||
RefreshGameSettings();
|
||||
m_Audio.Reset();
|
||||
m_MMU_VM.Reset(ClearMenory);
|
||||
#if defined(WINDOWS_UI)
|
||||
Debug_Reset();
|
||||
#else
|
||||
g_Notify -> BreakPoint(__FILEW__, __LINE__);
|
||||
#endif
|
||||
Mempak::Close();
|
||||
|
||||
m_CyclesToSkip = 0;
|
||||
|
@ -617,6 +613,7 @@ void CN64System::Reset (bool bInitReg, bool ClearMenory)
|
|||
{
|
||||
m_SyncCPU->Reset(bInitReg,ClearMenory);
|
||||
}
|
||||
g_Settings->SaveBool(GameRunning_InReset,true);
|
||||
}
|
||||
|
||||
bool CN64System::SetActiveSystem( bool bActive )
|
||||
|
@ -2098,9 +2095,8 @@ void CN64System::TLB_Unmaped ( DWORD VAddr, DWORD Len )
|
|||
|
||||
void CN64System::TLB_Changed()
|
||||
{
|
||||
#if defined(WINDOWS_UI)
|
||||
Debug_RefreshTLBWindow();
|
||||
#else
|
||||
g_Notify -> BreakPoint(__FILEW__, __LINE__);
|
||||
#endif
|
||||
if (g_Debugger)
|
||||
{
|
||||
g_Debugger->TLBChanged();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,21 +16,17 @@ typedef std::map<DWORD, DWORD> FUNC_CALLS;
|
|||
|
||||
class CPlugins;
|
||||
class CRSP_Plugin;
|
||||
class CRecompiler;
|
||||
|
||||
//#define TEST_SP_TRACKING //track the SP to make sure all ops pick it up fine
|
||||
|
||||
class CN64System :
|
||||
private CMipsMemory_CallBack,
|
||||
private CTLB_CB,
|
||||
public CMipsMemory_CallBack,
|
||||
public CTLB_CB,
|
||||
private CSystemEvents,
|
||||
protected CN64SystemSettings,
|
||||
public CGameSettings,
|
||||
#if defined(WINDOWS_UI)
|
||||
protected CDebugSettings,
|
||||
public CDebugger
|
||||
#else
|
||||
protected CDebugSettings
|
||||
#endif
|
||||
{
|
||||
public:
|
||||
CN64System(CPlugins * Plugins, bool SavesReadOnly);
|
||||
|
|
|
@ -26,6 +26,7 @@ CTransVaddr * g_TransVaddr = NULL;
|
|||
CSystemEvents * g_SystemEvents = NULL;
|
||||
DWORD * g_TLBLoadAddress = NULL;
|
||||
DWORD * g_TLBStoreAddress = NULL;
|
||||
CDebugger * g_Debugger = NULL;
|
||||
|
||||
int * g_NextTimer;
|
||||
|
||||
|
|
|
@ -29,3 +29,6 @@ extern CSystemEvents * g_SystemEvents;
|
|||
extern int * g_NextTimer;
|
||||
extern DWORD * g_TLBLoadAddress;
|
||||
extern DWORD * g_TLBStoreAddress;
|
||||
|
||||
__interface CDebugger;
|
||||
extern CDebugger * g_Debugger;
|
||||
|
|
|
@ -1064,6 +1064,10 @@
|
|||
RelativePath="N64 System\Cheat Class.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Debugger.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="N64 System\N64 Class.h"
|
||||
>
|
||||
|
|
|
@ -10,9 +10,13 @@
|
|||
****************************************************************************/
|
||||
#pragma once
|
||||
|
||||
#define MaxPluginSetting 65535
|
||||
enum
|
||||
{
|
||||
MaxPluginSetting = 65535
|
||||
};
|
||||
|
||||
enum SettingID {
|
||||
enum SettingID
|
||||
{
|
||||
//Default values
|
||||
Default_None,
|
||||
Default_Constant,
|
||||
|
@ -154,6 +158,7 @@ enum SettingID {
|
|||
GameRunning_InstantSaveFile,
|
||||
GameRunning_LimitFPS,
|
||||
GameRunning_ScreenHertz,
|
||||
GameRunning_InReset,
|
||||
|
||||
//User Interface
|
||||
UserInterface_BasicMode,
|
||||
|
|
|
@ -291,6 +291,7 @@ void CSettings::AddHowToHandleSetting ()
|
|||
AddHandler(GameRunning_InstantSaveFile, new CSettingTypeTempString(""));
|
||||
AddHandler(GameRunning_LimitFPS, new CSettingTypeTempBool(true));
|
||||
AddHandler(GameRunning_ScreenHertz, new CSettingTypeTempNumber(60));
|
||||
AddHandler(GameRunning_InReset, new CSettingTypeTempBool(false));
|
||||
|
||||
AddHandler(File_RecentGameFileCount, new CSettingTypeApplication("","Remembered Rom Files",(uint32_t)10));
|
||||
AddHandler(File_RecentGameFileIndex, new CSettingTypeApplicationIndex("Recent File","Recent Rom",Default_None));
|
||||
|
|
|
@ -10,15 +10,17 @@
|
|||
****************************************************************************/
|
||||
#pragma once
|
||||
|
||||
#include <Project64\N64 System\Debugger\debugger.h>
|
||||
|
||||
class CGfxPlugin; //Plugin that controls the rendering
|
||||
class CAudioPlugin; //Plugin for audio, need the hwnd
|
||||
class CControl_Plugin; //Controller needs hwnd to see if it is the focused window
|
||||
class CBaseMenu; //Menu for the gui
|
||||
class CN64System;
|
||||
class CNotification;
|
||||
class CriticalSection;
|
||||
|
||||
enum {
|
||||
enum
|
||||
{
|
||||
WM_HIDE_CUROSR = WM_USER + 10,
|
||||
WM_MAKE_FOCUS = WM_USER + 17,
|
||||
WM_RESET_PLUGIN = WM_USER + 18,
|
||||
|
@ -27,6 +29,7 @@ enum {
|
|||
|
||||
class CMainGui :
|
||||
public CRomBrowser,
|
||||
public CDebuggerUI,
|
||||
private CGuiSettings
|
||||
{
|
||||
enum { StatusBarID = 400 };
|
||||
|
|
|
@ -458,12 +458,10 @@ bool CMainMenu::ProcessMessage(HWND hWnd, DWORD /*FromAccelerator*/, DWORD MenuI
|
|||
case ID_DEBUGGER_GENERATELOG:
|
||||
g_Settings->SaveBool(Debugger_GenerateDebugLog,!g_Settings->LoadBool(Debugger_GenerateDebugLog));
|
||||
break;
|
||||
case ID_DEBUGGER_DUMPMEMORY:
|
||||
g_BaseSystem->Debug_ShowMemoryDump();
|
||||
break;
|
||||
case ID_DEBUGGER_SEARCHMEMORY: g_BaseSystem->Debug_ShowMemorySearch(); break;
|
||||
case ID_DEBUGGER_MEMORY: g_BaseSystem->Debug_ShowMemoryWindow(); break;
|
||||
case ID_DEBUGGER_TLBENTRIES: g_BaseSystem->Debug_ShowTLBWindow(); break;
|
||||
case ID_DEBUGGER_DUMPMEMORY: _Gui->Debug_ShowMemoryDump(); break;
|
||||
case ID_DEBUGGER_SEARCHMEMORY: _Gui->Debug_ShowMemorySearch(); break;
|
||||
case ID_DEBUGGER_MEMORY: _Gui->Debug_ShowMemoryWindow(); break;
|
||||
case ID_DEBUGGER_TLBENTRIES: _Gui->Debug_ShowTLBWindow(); break;
|
||||
case ID_DEBUGGER_INTERRUPT_SP: g_BaseSystem->ExternalEvent(SysEvent_Interrupt_SP); break;
|
||||
case ID_DEBUGGER_INTERRUPT_SI: g_BaseSystem->ExternalEvent(SysEvent_Interrupt_SI); break;
|
||||
case ID_DEBUGGER_INTERRUPT_AI: g_BaseSystem->ExternalEvent(SysEvent_Interrupt_AI); break;
|
||||
|
|
Loading…
Reference in New Issue