debugger highlight:
- add numbers - fix opcodes - tweak pc default size restoration respects ida font width
This commit is contained in:
parent
ff1c1e0977
commit
11b17219eb
|
@ -115,7 +115,7 @@ void UpdateOtherDebuggingDialogs()
|
||||||
void RestoreSize(HWND hwndDlg)
|
void RestoreSize(HWND hwndDlg)
|
||||||
{
|
{
|
||||||
//If the dialog dimensions are changed those changes need to be reflected here. - adelikat
|
//If the dialog dimensions are changed those changes need to be reflected here. - adelikat
|
||||||
const int DEFAULT_WIDTH = 820; //Original width
|
const int DEFAULT_WIDTH = 820 + (debuggerIDAFont ? 64 : 0); //Original width
|
||||||
const int DEFAULT_HEIGHT = 574; //Original height
|
const int DEFAULT_HEIGHT = 574; //Original height
|
||||||
|
|
||||||
SetWindowPos(hwndDlg,HWND_TOP,DbgPosX,DbgPosY,DEFAULT_WIDTH,DEFAULT_HEIGHT,SWP_SHOWWINDOW);
|
SetWindowPos(hwndDlg,HWND_TOP,DbgPosX,DbgPosY,DEFAULT_WIDTH,DEFAULT_HEIGHT,SWP_SHOWWINDOW);
|
||||||
|
@ -404,48 +404,64 @@ void HighlightPC()
|
||||||
{
|
{
|
||||||
int old_start, old_end;
|
int old_start, old_end;
|
||||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_GETSEL, (WPARAM)&old_start, (LPARAM)&old_end);
|
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_GETSEL, (WPARAM)&old_start, (LPARAM)&old_end);
|
||||||
for (int end = start; end < start + 100; end++)
|
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETSEL, (WPARAM)start, (LPARAM)start+20);
|
||||||
{
|
|
||||||
if (debug_str[end] == '\n')
|
|
||||||
{
|
|
||||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETSEL, (WPARAM)start, (LPARAM)end);
|
|
||||||
CHARFORMAT2 cf;
|
CHARFORMAT2 cf;
|
||||||
memset(&cf, 0, sizeof cf);
|
memset(&cf, 0, sizeof cf);
|
||||||
cf.cbSize = sizeof cf;
|
cf.cbSize = sizeof cf;
|
||||||
cf.dwMask = CFM_COLOR;
|
cf.dwMask = CFM_COLOR;
|
||||||
cf.crTextColor = RGB(0,0,255);
|
cf.crTextColor = RGB(0,0,255);
|
||||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETCHARFORMAT, (WPARAM)SCF_SELECTION, (LPARAM)&cf);
|
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETCHARFORMAT, (WPARAM)SCF_SELECTION, (LPARAM)&cf);
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETSEL, (WPARAM)old_start, (LPARAM)old_end);
|
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETSEL, (WPARAM)old_start, (LPARAM)old_end);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HighlightSyntax(int lines)
|
void HighlightSyntax(int lines)
|
||||||
{
|
{
|
||||||
|
int wordbreak = 0;
|
||||||
int old_start, old_end;
|
int old_start, old_end;
|
||||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_GETSEL, (WPARAM)&old_start, (LPARAM)&old_end);
|
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_GETSEL, (WPARAM)&old_start, (LPARAM)&old_end);
|
||||||
|
|
||||||
CHARFORMAT2 cf;
|
CHARFORMAT2 cf;
|
||||||
memset(&cf, 0, sizeof cf);
|
memset(&cf, 0, sizeof cf);
|
||||||
cf.cbSize = sizeof cf;
|
cf.cbSize = sizeof cf;
|
||||||
|
//if (!debuggerIDAFont)
|
||||||
|
//{
|
||||||
|
// cf.dwMask = CFM_COLOR | CFM_BOLD;
|
||||||
|
// cf.dwEffects = CFE_BOLD;
|
||||||
|
//} else
|
||||||
cf.dwMask = CFM_COLOR;
|
cf.dwMask = CFM_COLOR;
|
||||||
cf.crTextColor = RGB(0,0,128);
|
cf.crTextColor = RGB(0,0,128);
|
||||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETSEL, (WPARAM)20, (LPARAM)23);
|
wordbreak = SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_FINDWORDBREAK, (WPARAM)WB_RIGHT, (LPARAM)21);
|
||||||
|
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETSEL, (WPARAM)20, (LPARAM)wordbreak);
|
||||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETCHARFORMAT, (WPARAM)SCF_SELECTION, (LPARAM)&cf);
|
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETCHARFORMAT, (WPARAM)SCF_SELECTION, (LPARAM)&cf);
|
||||||
|
|
||||||
FINDTEXT ft;
|
FINDTEXT ft;
|
||||||
ft.lpstrText = "\r";
|
ft.lpstrText = "\r";
|
||||||
ft.chrg.cpMax = -1;
|
ft.chrg.cpMax = -1;
|
||||||
int start = 0;
|
|
||||||
for (int line = 1; line <= lines; line++)
|
for (int line = 1; line <= lines; line++)
|
||||||
{
|
{
|
||||||
ft.chrg.cpMin = start+1;
|
ft.chrg.cpMin = SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_FINDTEXT, (WPARAM)FR_DOWN, (LPARAM)&ft) + 1;
|
||||||
start = SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_FINDTEXT, (WPARAM)FR_DOWN, (LPARAM)&ft);
|
wordbreak = SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_FINDWORDBREAK, (WPARAM)WB_RIGHT, (LPARAM)ft.chrg.cpMin+21);
|
||||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETSEL, (WPARAM)20+ft.chrg.cpMin, (LPARAM)23+ft.chrg.cpMin);
|
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETSEL, (WPARAM)ft.chrg.cpMin+20, (LPARAM)wordbreak);
|
||||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETCHARFORMAT, (WPARAM)SCF_SELECTION, (LPARAM)&cf);
|
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETCHARFORMAT, (WPARAM)SCF_SELECTION, (LPARAM)&cf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cf.crTextColor = RGB(0,128,0);
|
||||||
|
ft.lpstrText = "$";
|
||||||
|
ft.chrg.cpMin = 0;
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
ft.chrg.cpMin = SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_FINDTEXT, (WPARAM)FR_DOWN, (LPARAM)&ft) + 1;
|
||||||
|
if (ft.chrg.cpMin == 0)
|
||||||
|
break;
|
||||||
|
if (debug_str[ft.chrg.cpMin+2] == ',' || debug_str[ft.chrg.cpMin+2] == ')')
|
||||||
|
wordbreak = ft.chrg.cpMin+2;
|
||||||
|
else
|
||||||
|
wordbreak = ft.chrg.cpMin+4;
|
||||||
|
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETSEL, (WPARAM)ft.chrg.cpMin-1, (LPARAM)wordbreak);
|
||||||
|
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETCHARFORMAT, (WPARAM)SCF_SELECTION, (LPARAM)&cf);
|
||||||
|
}
|
||||||
|
|
||||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETSEL, (WPARAM)old_start, (LPARAM)old_end);
|
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETSEL, (WPARAM)old_start, (LPARAM)old_end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue