minor dsp debugger improvements
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2907 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
957127d505
commit
b801e16cd3
|
@ -26,9 +26,9 @@
|
||||||
// Event table and class
|
// Event table and class
|
||||||
BEGIN_EVENT_TABLE(DSPDebuggerLLE, wxFrame)
|
BEGIN_EVENT_TABLE(DSPDebuggerLLE, wxFrame)
|
||||||
EVT_CLOSE(DSPDebuggerLLE::OnClose)
|
EVT_CLOSE(DSPDebuggerLLE::OnClose)
|
||||||
EVT_SIZE(DSPDebuggerLLE::OnChangeSize)
|
|
||||||
|
|
||||||
EVT_MENU_RANGE(ID_RUNTOOL, ID_STEPTOOL, DSPDebuggerLLE::OnChangeState)
|
EVT_MENU_RANGE(ID_RUNTOOL, ID_STEPTOOL, DSPDebuggerLLE::OnChangeState)
|
||||||
|
EVT_MENU(ID_SHOWPCTOOL, DSPDebuggerLLE::OnShowPC)
|
||||||
EVT_MENU(ID_DUMPCODETOOL, DSPDebuggerLLE::OnDumpCode)
|
EVT_MENU(ID_DUMPCODETOOL, DSPDebuggerLLE::OnDumpCode)
|
||||||
|
|
||||||
EVT_LIST_ITEM_RIGHT_CLICK(ID_DISASM, DSPDebuggerLLE::OnRightClick)
|
EVT_LIST_ITEM_RIGHT_CLICK(ID_DISASM, DSPDebuggerLLE::OnRightClick)
|
||||||
|
@ -100,12 +100,6 @@ void DSPDebuggerLLE::OnClose(wxCloseEvent& event)
|
||||||
event.Skip();
|
event.Skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSPDebuggerLLE::OnChangeSize(wxSizeEvent& event)
|
|
||||||
{
|
|
||||||
Refresh();
|
|
||||||
event.Skip();
|
|
||||||
}
|
|
||||||
|
|
||||||
void DSPDebuggerLLE::OnChangeState(wxCommandEvent& event)
|
void DSPDebuggerLLE::OnChangeState(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
switch (event.GetId())
|
switch (event.GetId())
|
||||||
|
@ -122,11 +116,13 @@ void DSPDebuggerLLE::OnChangeState(wxCommandEvent& event)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((m_State == RUN) || (m_State == RUN_START))
|
UpdateState();
|
||||||
m_Toolbar->FindById(ID_RUNTOOL)->SetLabel(wxT("Pause"));
|
}
|
||||||
else
|
|
||||||
m_Toolbar->FindById(ID_RUNTOOL)->SetLabel(wxT("Run"));
|
void DSPDebuggerLLE::OnShowPC(wxCommandEvent& event)
|
||||||
m_Toolbar->Realize();
|
{
|
||||||
|
Refresh();
|
||||||
|
FocusOnPC();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSPDebuggerLLE::OnDumpCode(wxCommandEvent& event)
|
void DSPDebuggerLLE::OnDumpCode(wxCommandEvent& event)
|
||||||
|
@ -160,6 +156,40 @@ void DSPDebuggerLLE::Refresh()
|
||||||
UpdateSymbolMap();
|
UpdateSymbolMap();
|
||||||
UpdateDisAsmListView();
|
UpdateDisAsmListView();
|
||||||
UpdateRegisterFlags();
|
UpdateRegisterFlags();
|
||||||
|
UpdateState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DSPDebuggerLLE::FocusOnPC()
|
||||||
|
{
|
||||||
|
UnselectAll();
|
||||||
|
|
||||||
|
for (int i = 0; i < m_Disasm->GetItemCount(); i++)
|
||||||
|
{
|
||||||
|
if (m_Disasm->GetItemData(i) == g_dsp.pc)
|
||||||
|
{
|
||||||
|
m_Disasm->EnsureVisible(i - 5);
|
||||||
|
m_Disasm->EnsureVisible(i + 5);
|
||||||
|
m_Disasm->SetItemState(i, wxLIST_STATE_FOCUSED|wxLIST_STATE_SELECTED, wxLIST_STATE_FOCUSED|wxLIST_STATE_SELECTED);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DSPDebuggerLLE::UnselectAll()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < m_Disasm->GetItemCount(); i++)
|
||||||
|
{
|
||||||
|
m_Disasm->SetItemState(i, 0, wxLIST_STATE_SELECTED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DSPDebuggerLLE::UpdateState()
|
||||||
|
{
|
||||||
|
if ((m_State == RUN) || (m_State == RUN_START))
|
||||||
|
m_Toolbar->FindById(ID_RUNTOOL)->SetLabel(wxT("Pause"));
|
||||||
|
else
|
||||||
|
m_Toolbar->FindById(ID_RUNTOOL)->SetLabel(wxT("Run"));
|
||||||
|
m_Toolbar->Realize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSPDebuggerLLE::RebuildDisAsmListView()
|
void DSPDebuggerLLE::RebuildDisAsmListView()
|
||||||
|
@ -280,16 +310,7 @@ void DSPDebuggerLLE::UpdateDisAsmListView()
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// show PC
|
// show PC
|
||||||
for (int i = 0; i < m_Disasm->GetItemCount(); i++)
|
FocusOnPC();
|
||||||
{
|
|
||||||
if (m_Disasm->GetItemData(i) == g_dsp.pc)
|
|
||||||
{
|
|
||||||
m_Disasm->EnsureVisible(i - 5);
|
|
||||||
m_Disasm->EnsureVisible(i + 14);
|
|
||||||
m_Disasm->SetItemState(i, wxLIST_STATE_FOCUSED|wxLIST_STATE_SELECTED, wxLIST_STATE_FOCUSED|wxLIST_STATE_SELECTED);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
m_CachedStepCounter = g_dsp.step_counter;
|
m_CachedStepCounter = g_dsp.step_counter;
|
||||||
|
|
||||||
|
@ -319,6 +340,8 @@ void DSPDebuggerLLE::UpdateRegisterFlags()
|
||||||
if (m_CachedCR == g_dsp.cr)
|
if (m_CachedCR == g_dsp.cr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
m_Toolbar->ToggleTool(ID_DUMPCODETOOL, g_dsp.dump_imem);
|
||||||
|
|
||||||
m_Toolbar->ToggleTool(ID_CHECK_ASSERTINT, g_dsp.cr & 0x02 ? true : false);
|
m_Toolbar->ToggleTool(ID_CHECK_ASSERTINT, g_dsp.cr & 0x02 ? true : false);
|
||||||
m_Toolbar->ToggleTool(ID_CHECK_HALT, g_dsp.cr & 0x04 ? true : false);
|
m_Toolbar->ToggleTool(ID_CHECK_HALT, g_dsp.cr & 0x04 ? true : false);
|
||||||
m_Toolbar->ToggleTool(ID_CHECK_INIT, g_dsp.cr & 0x800 ? true : false);
|
m_Toolbar->ToggleTool(ID_CHECK_INIT, g_dsp.cr & 0x800 ? true : false);
|
||||||
|
|
|
@ -137,6 +137,7 @@ private:
|
||||||
void UpdateDisAsmListView();
|
void UpdateDisAsmListView();
|
||||||
void UpdateRegisterFlags();
|
void UpdateRegisterFlags();
|
||||||
void UpdateSymbolMap();
|
void UpdateSymbolMap();
|
||||||
|
void UpdateState();
|
||||||
|
|
||||||
void RebuildDisAsmListView();
|
void RebuildDisAsmListView();
|
||||||
|
|
||||||
|
@ -146,14 +147,16 @@ private:
|
||||||
DSPRegisterView* m_Regs;
|
DSPRegisterView* m_Regs;
|
||||||
|
|
||||||
void OnClose(wxCloseEvent& event);
|
void OnClose(wxCloseEvent& event);
|
||||||
void OnChangeSize(wxSizeEvent& event);
|
|
||||||
void OnChangeState(wxCommandEvent& event);
|
void OnChangeState(wxCommandEvent& event);
|
||||||
|
void OnShowPC(wxCommandEvent& event);
|
||||||
void OnDumpCode(wxCommandEvent& event);
|
void OnDumpCode(wxCommandEvent& event);
|
||||||
void OnRightClick(wxListEvent& event);
|
void OnRightClick(wxListEvent& event);
|
||||||
void OnDoubleClick(wxListEvent& event);
|
void OnDoubleClick(wxListEvent& event);
|
||||||
|
|
||||||
void CreateGUIControls();
|
void CreateGUIControls();
|
||||||
void Refresh();
|
void Refresh();
|
||||||
|
void FocusOnPC();
|
||||||
|
void UnselectAll();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //_DSP_DEBUGGER_LLE_H
|
#endif //_DSP_DEBUGGER_LLE_H
|
||||||
|
|
Loading…
Reference in New Issue