mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-19 09:19:05 +02:00
-ctrl+g for goto in mem viewer/disassembly
-removed skipping of zz_/z_ in disassembly -fixes to the expression parser
This commit is contained in:
1 parent
9ec27e4f92
commit
6df25d52f0
6 files changed
+33
-15
No files matched your search
@@ -248,7 +248,7 @@ bool SymbolMap::getSymbolValue(char* symbol, u32& dest)
|
||||
if (strcasecmp(entry.name,symbol) == 0)
|
||||
#endif
|
||||
{
|
||||
dest = entries[i].address;
|
||||
dest = entries[i].vaddress;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,9 +194,6 @@ bool CtrlDisAsmView::getDisasmAddressText(u32 address, char* dest, bool abbrevia
|
||||
const char* addressSymbol = debugger->findSymbolForAddress(address);
|
||||
if (addressSymbol != NULL)
|
||||
{
|
||||
if (memcmp(addressSymbol,"z_",2) == 0) addressSymbol += 2;
|
||||
if (memcmp(addressSymbol,"zz_",3) == 0) addressSymbol += 3;
|
||||
|
||||
for (int k = 0; addressSymbol[k] != 0; k++)
|
||||
{
|
||||
// abbreviate long names
|
||||
@@ -250,8 +247,6 @@ void CtrlDisAsmView::parseDisasm(const char* disasm, char* opcode, char* argumen
|
||||
const char* addressSymbol = debugger->findSymbolForAddress(branchTarget);
|
||||
if (addressSymbol != NULL && displaySymbols)
|
||||
{
|
||||
if (memcmp(addressSymbol,"z_",2) == 0) addressSymbol += 2;
|
||||
if (memcmp(addressSymbol,"zz_",3) == 0) addressSymbol += 3;
|
||||
arguments += sprintf(arguments,"%s",addressSymbol);
|
||||
} else {
|
||||
arguments += sprintf(arguments,"0x%08X",branchTarget);
|
||||
@@ -490,20 +485,25 @@ void CtrlDisAsmView::onKeyDown(WPARAM wParam, LPARAM lParam)
|
||||
|
||||
if (controlHeld)
|
||||
{
|
||||
switch (wParam & 0xFFFF)
|
||||
switch (tolower(wParam & 0xFFFF))
|
||||
{
|
||||
case 'S':
|
||||
case 's':
|
||||
search(false);
|
||||
break;
|
||||
case 'C':
|
||||
case 'c':
|
||||
search(true);
|
||||
break;
|
||||
case 'x':
|
||||
case 'X':
|
||||
disassembleToFile();
|
||||
break;
|
||||
case 'g':
|
||||
{
|
||||
u32 addr;
|
||||
controlHeld = false;
|
||||
if (executeExpressionWindow(wnd,debugger,addr) == false) return;
|
||||
gotoAddr(addr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch (wParam & 0xFFFF)
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "../../Core/Debugger/SymbolMap.h"
|
||||
|
||||
#include "Debugger_Disasm.h"
|
||||
#include "ExpressionParser.h"
|
||||
|
||||
#include "CtrlMemView.h"
|
||||
|
||||
@@ -35,6 +36,7 @@ CtrlMemView::CtrlMemView(HWND _wnd)
|
||||
mode=MV_NORMAL;
|
||||
debugger = 0;
|
||||
|
||||
ctrlDown = false;
|
||||
hasFocus = false;
|
||||
windowStart = curAddress;
|
||||
asciiSelected = false;
|
||||
@@ -119,10 +121,13 @@ LRESULT CALLBACK CtrlMemView::wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
|
||||
return FALSE;
|
||||
case WM_KEYDOWN:
|
||||
ccp->onKeyDown(wParam,lParam);
|
||||
break;
|
||||
return 0;
|
||||
case WM_CHAR:
|
||||
ccp->onChar(wParam,lParam);
|
||||
break;
|
||||
return 0;
|
||||
case WM_KEYUP:
|
||||
if (wParam == VK_CONTROL) ccp->ctrlDown = false;
|
||||
return 0;
|
||||
case WM_LBUTTONDOWN: SetFocus(hwnd); lmbDown=true; ccp->onMouseDown(wParam,lParam,1); break;
|
||||
case WM_RBUTTONDOWN: SetFocus(hwnd); rmbDown=true; ccp->onMouseDown(wParam,lParam,2); break;
|
||||
case WM_MOUSEMOVE: ccp->onMouseMove(wParam,lParam,(lmbDown?1:0) | (rmbDown?2:0)); break;
|
||||
@@ -340,6 +345,15 @@ void CtrlMemView::onVScroll(WPARAM wParam, LPARAM lParam)
|
||||
|
||||
void CtrlMemView::onKeyDown(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (ctrlDown && tolower(wParam & 0xFFFF) == 'g')
|
||||
{
|
||||
ctrlDown = false;
|
||||
u32 addr;
|
||||
if (executeExpressionWindow(wnd,debugger,addr) == false) return;
|
||||
gotoAddr(addr);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (wParam & 0xFFFF)
|
||||
{
|
||||
case VK_DOWN:
|
||||
@@ -360,6 +374,9 @@ void CtrlMemView::onKeyDown(WPARAM wParam, LPARAM lParam)
|
||||
case VK_PRIOR:
|
||||
scrollWindow(-visibleRows);
|
||||
break;
|
||||
case VK_CONTROL:
|
||||
ctrlDown = true;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
@@ -367,6 +384,8 @@ void CtrlMemView::onKeyDown(WPARAM wParam, LPARAM lParam)
|
||||
|
||||
void CtrlMemView::onChar(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (ctrlDown) return;
|
||||
|
||||
if (!Memory::IsValidAddress(curAddress))
|
||||
{
|
||||
scrollCursor(1);
|
||||
|
||||
@@ -44,6 +44,7 @@ class CtrlMemView
|
||||
int asciiStart;
|
||||
bool asciiSelected;
|
||||
int selectedNibble;
|
||||
bool ctrlDown;
|
||||
|
||||
int visibleRows;
|
||||
|
||||
|
||||
@@ -362,8 +362,6 @@ void CDisasm::handleBreakpointNotify(LPARAM lParam)
|
||||
const char* sym = cpu->findSymbolForAddress(CBreakPoints::GetBreakpointAddress(index));
|
||||
if (sym != NULL)
|
||||
{
|
||||
if (memcmp(sym,"z_",2) == 0) sym += 2;
|
||||
if (memcmp(sym,"zz_",3) == 0) sym += 3;
|
||||
strcpy(breakpointText,sym);
|
||||
} else {
|
||||
strcpy(breakpointText,"-");
|
||||
|
||||
@@ -222,7 +222,7 @@ bool parseExpression(char* infix, DebugInterface* cpu, u32& dest)
|
||||
while (infixPos < infixLen)
|
||||
{
|
||||
char first = tolower(infix[infixPos]);
|
||||
char subStr[12];
|
||||
char subStr[256];
|
||||
int subPos = 0;
|
||||
|
||||
if (first == ' ' || first == '\t')
|
||||
|
||||
Reference in new issue
Block a user