mirror of
https://github.com/izzy2lost/ppsspp.git
synced 2026-03-10 12:43:04 -07:00
Scan/remove -> edit symbols
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
#include "Windows/Debugger/Debugger_MemoryDlg.h"
|
||||
#include "Windows/Debugger/DebuggerShared.h"
|
||||
#include "Windows/Debugger/BreakpointWindow.h"
|
||||
#include "Windows/Debugger/ScanRemoveWindow.h"
|
||||
#include "Windows/Debugger/EditSymbolsWindow.h"
|
||||
#include "Windows/main.h"
|
||||
|
||||
#include "Common/CommonWindows.h"
|
||||
@@ -979,11 +979,11 @@ void CtrlDisAsmView::onMouseUp(WPARAM wParam, LPARAM lParam, int button)
|
||||
NopInstructions(selectRangeStart, selectRangeEnd);
|
||||
redraw();
|
||||
break;
|
||||
case ID_DISASM_SCANREMOVE:
|
||||
case ID_DISASM_EDITSYMBOLS:
|
||||
{
|
||||
ScanRemoveWindow srw(wnd, debugger);
|
||||
if (srw.exec()) {
|
||||
srw.eval();
|
||||
EditSymbolsWindow esw(wnd, debugger);
|
||||
if (esw.exec()) {
|
||||
esw.eval();
|
||||
SendMessage(GetParent(wnd), WM_DEB_MAPLOADED, 0, 0);
|
||||
redraw();
|
||||
}
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
#include "ScanRemoveWindow.h"
|
||||
#include "EditSymbolsWindow.h"
|
||||
#include "../resource.h"
|
||||
|
||||
|
||||
bool ScanRemoveWindow::GetCheckState(HWND hwnd, int dlgItem) {
|
||||
bool EditSymbolsWindow::GetCheckState(HWND hwnd, int dlgItem) {
|
||||
return SendMessage(GetDlgItem(hwnd, dlgItem), BM_GETCHECK, 0, 0) != 0;
|
||||
}
|
||||
|
||||
bool ScanRemoveWindow::fetchDialogData(HWND hwnd)
|
||||
bool EditSymbolsWindow::fetchDialogData(HWND hwnd)
|
||||
{
|
||||
char str[256], errorMessage[512];
|
||||
PostfixExpression exp;
|
||||
|
||||
scan_ = GetCheckState(hwnd, IDC_SCANREMOVE_SCAN);
|
||||
scan_ = GetCheckState(hwnd, IDC_EDITSYMBOLS_SCAN);
|
||||
|
||||
// Parse the address
|
||||
GetWindowTextA(GetDlgItem(hwnd, IDC_SCANREMOVE_ADDRESS), str, 256);
|
||||
GetWindowTextA(GetDlgItem(hwnd, IDC_EDITSYMBOLS_ADDRESS), str, 256);
|
||||
|
||||
if (cpu->initExpression(str, exp) == false)
|
||||
{
|
||||
@@ -30,7 +30,7 @@ bool ScanRemoveWindow::fetchDialogData(HWND hwnd)
|
||||
}
|
||||
|
||||
// Parse the size
|
||||
GetWindowTextA(GetDlgItem(hwnd, IDC_SCANREMOVE_SIZE), str, 256);
|
||||
GetWindowTextA(GetDlgItem(hwnd, IDC_EDITSYMBOLS_SIZE), str, 256);
|
||||
|
||||
if (cpu->initExpression(str, exp) == false)
|
||||
{
|
||||
@@ -54,14 +54,14 @@ bool ScanRemoveWindow::fetchDialogData(HWND hwnd)
|
||||
return true;
|
||||
}
|
||||
|
||||
INT_PTR CALLBACK ScanRemoveWindow::StaticDlgFunc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam) {
|
||||
ScanRemoveWindow *thiz;
|
||||
INT_PTR CALLBACK EditSymbolsWindow::StaticDlgFunc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam) {
|
||||
EditSymbolsWindow *thiz;
|
||||
if (iMsg == WM_INITDIALOG) {
|
||||
SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR)lParam);
|
||||
thiz = (ScanRemoveWindow *)lParam;
|
||||
thiz = (EditSymbolsWindow *)lParam;
|
||||
}
|
||||
else {
|
||||
thiz = (ScanRemoveWindow *)GetWindowLongPtr(hWnd, GWLP_USERDATA);
|
||||
thiz = (EditSymbolsWindow *)GetWindowLongPtr(hWnd, GWLP_USERDATA);
|
||||
}
|
||||
|
||||
if (!thiz)
|
||||
@@ -69,7 +69,7 @@ INT_PTR CALLBACK ScanRemoveWindow::StaticDlgFunc(HWND hWnd, UINT iMsg, WPARAM wP
|
||||
return thiz->DlgFunc(hWnd, iMsg, wParam, lParam);
|
||||
}
|
||||
|
||||
INT_PTR ScanRemoveWindow::DlgFunc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
|
||||
INT_PTR EditSymbolsWindow::DlgFunc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
char str[128];
|
||||
|
||||
@@ -78,22 +78,22 @@ INT_PTR ScanRemoveWindow::DlgFunc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lP
|
||||
case WM_INITDIALOG:
|
||||
|
||||
// Set the radiobutton values
|
||||
SendMessage(GetDlgItem(hwnd, IDC_SCANREMOVE_SCAN), BM_SETCHECK, scan_ ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hwnd, IDC_SCANREMOVE_REMOVE), BM_SETCHECK, scan_ ? BST_UNCHECKED : BST_CHECKED, 0);
|
||||
SendMessage(GetDlgItem(hwnd, IDC_EDITSYMBOLS_SCAN), BM_SETCHECK, scan_ ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hwnd, IDC_EDITSYMBOLS_REMOVE), BM_SETCHECK, scan_ ? BST_UNCHECKED : BST_CHECKED, 0);
|
||||
|
||||
// Set the text in the textboxes
|
||||
if (address_ != -1) {
|
||||
snprintf(str, sizeof(str), "0x%08X", address_);
|
||||
SetWindowTextA(GetDlgItem(hwnd, IDC_SCANREMOVE_ADDRESS), str);
|
||||
SetWindowTextA(GetDlgItem(hwnd, IDC_EDITSYMBOLS_ADDRESS), str);
|
||||
}
|
||||
snprintf(str, sizeof(str), "0x%08X", size_);
|
||||
SetWindowTextA(GetDlgItem(hwnd, IDC_SCANREMOVE_SIZE), str);
|
||||
SetWindowTextA(GetDlgItem(hwnd, IDC_EDITSYMBOLS_SIZE), str);
|
||||
|
||||
return TRUE;
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case IDC_SCANREMOVE_SCAN:
|
||||
case IDC_EDITSYMBOLS_SCAN:
|
||||
switch (HIWORD(wParam))
|
||||
{
|
||||
case BN_CLICKED:
|
||||
@@ -101,7 +101,7 @@ INT_PTR ScanRemoveWindow::DlgFunc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lP
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case IDC_SCANREMOVE_REMOVE:
|
||||
case IDC_EDITSYMBOLS_REMOVE:
|
||||
switch (HIWORD(wParam))
|
||||
{
|
||||
case BN_CLICKED:
|
||||
@@ -109,7 +109,7 @@ INT_PTR ScanRemoveWindow::DlgFunc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lP
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case IDC_SCANREMOVE_OK:
|
||||
case IDC_EDITSYMBOLS_OK:
|
||||
switch (HIWORD(wParam))
|
||||
{
|
||||
case BN_CLICKED:
|
||||
@@ -119,7 +119,7 @@ INT_PTR ScanRemoveWindow::DlgFunc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lP
|
||||
break;
|
||||
};
|
||||
break;
|
||||
case IDC_SCANREMOVE_CANCEL:
|
||||
case IDC_EDITSYMBOLS_CANCEL:
|
||||
switch (HIWORD(wParam))
|
||||
{
|
||||
case BN_CLICKED:
|
||||
@@ -141,16 +141,16 @@ INT_PTR ScanRemoveWindow::DlgFunc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lP
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool ScanRemoveWindow::exec() {
|
||||
return DialogBoxParam(GetModuleHandle(0), MAKEINTRESOURCE(IDD_SCANREMOVE), parentHwnd, StaticDlgFunc, (LPARAM)this) != 0;
|
||||
bool EditSymbolsWindow::exec() {
|
||||
return DialogBoxParam(GetModuleHandle(0), MAKEINTRESOURCE(IDD_EDITSYMBOLS), parentHwnd, StaticDlgFunc, (LPARAM)this) != 0;
|
||||
}
|
||||
|
||||
void ScanRemoveWindow::Scan() {
|
||||
void EditSymbolsWindow::Scan() {
|
||||
bool insertSymbols = MIPSAnalyst::ScanForFunctions(address_, address_ + size_ - 1, true);
|
||||
MIPSAnalyst::FinalizeScan(insertSymbols);
|
||||
}
|
||||
|
||||
void ScanRemoveWindow::Remove() {
|
||||
void EditSymbolsWindow::Remove() {
|
||||
u32 func_address = g_symbolMap->GetFunctionStart(address_);
|
||||
if (func_address == SymbolMap::INVALID_ADDRESS) {
|
||||
func_address = g_symbolMap->GetNextSymbolAddress(address_, SymbolType::ST_FUNCTION);
|
||||
@@ -182,7 +182,7 @@ void ScanRemoveWindow::Remove() {
|
||||
}
|
||||
}
|
||||
|
||||
void ScanRemoveWindow::eval() {
|
||||
void EditSymbolsWindow::eval() {
|
||||
if (scan_) {
|
||||
Scan();
|
||||
}
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "Core/Debugger/DisassemblyManager.h"
|
||||
#include "Core/MemMap.h"
|
||||
|
||||
class ScanRemoveWindow {
|
||||
class EditSymbolsWindow {
|
||||
HWND parentHwnd;
|
||||
DebugInterface* cpu;
|
||||
|
||||
@@ -27,7 +27,7 @@ class ScanRemoveWindow {
|
||||
INT_PTR DlgFunc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
public:
|
||||
ScanRemoveWindow(HWND parent, DebugInterface* cpu) : cpu(cpu) {
|
||||
EditSymbolsWindow(HWND parent, DebugInterface* cpu) : cpu(cpu) {
|
||||
parentHwnd = parent;
|
||||
scan_ = true;
|
||||
address_ = -1;
|
||||
Reference in New Issue
Block a user