summaryrefslogtreecommitdiff
path: root/Source/Core/DebuggerWX/src/CodeWindow.cpp
diff options
context:
space:
mode:
authorhrydgard <hrydgard@gmail.com>2008-08-09 16:56:24 +0000
committerhrydgard <hrydgard@gmail.com>2008-08-09 16:56:24 +0000
commite3d21c0b11e124dee453825f27f463f442c39b72 (patch)
tree9af64870f4fa62a455b98a5e7430a9c8bdb43548 /Source/Core/DebuggerWX/src/CodeWindow.cpp
parent61398ea83ff24b2eb84537ca0508ce4fc623c3fe (diff)
32-bit speedup (videos mostly affected). Lots of various cleanup and future proofing. A small debugger feature.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@162 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/DebuggerWX/src/CodeWindow.cpp')
-rw-r--r--Source/Core/DebuggerWX/src/CodeWindow.cpp44
1 files changed, 35 insertions, 9 deletions
diff --git a/Source/Core/DebuggerWX/src/CodeWindow.cpp b/Source/Core/DebuggerWX/src/CodeWindow.cpp
index b878dff18d..a2f77dbc4a 100644
--- a/Source/Core/DebuggerWX/src/CodeWindow.cpp
+++ b/Source/Core/DebuggerWX/src/CodeWindow.cpp
@@ -39,6 +39,7 @@
#include "Debugger/PPCDebugInterface.h"
#include "Debugger/Debugger_SymbolMap.h"
+#include "PowerPC/PPCAnalyst.h"
#include "Core.h"
#include "LogManager.h"
@@ -64,6 +65,8 @@ BEGIN_EVENT_TABLE(CCodeWindow, wxFrame)
EVT_MENU(IDM_REGISTERWINDOW, CCodeWindow::OnToggleRegisterWindow)
EVT_MENU(IDM_BREAKPOINTWINDOW, CCodeWindow::OnToggleBreakPointWindow)
EVT_MENU(IDM_MEMORYWINDOW, CCodeWindow::OnToggleMemoryWindow)
+
+ EVT_MENU(IDM_SCANFUNCTIONS, CCodeWindow::OnSymbolsMenu)
// toolbar
EVT_MENU(IDM_DEBUG_GO, CCodeWindow::OnCodeStep)
EVT_MENU(IDM_STEP, CCodeWindow::OnCodeStep)
@@ -195,14 +198,14 @@ void CCodeWindow::CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParam
wxMenuBar* pMenuBar = new wxMenuBar(wxMB_DOCKABLE);
{
- wxMenu* pDebugMenu = new wxMenu;
- wxMenuItem* interpreter = pDebugMenu->Append(IDM_INTERPRETER, _T("&Interpreter"), wxEmptyString, wxITEM_CHECK);
+ wxMenu* pCoreMenu = new wxMenu;
+ wxMenuItem* interpreter = pCoreMenu->Append(IDM_INTERPRETER, _T("&Interpreter"), wxEmptyString, wxITEM_CHECK);
interpreter->Check(!_LocalCoreStartupParameter.bUseDynarec);
// wxMenuItem* dualcore = pDebugMenu->Append(IDM_DUALCORE, _T("&DualCore"), wxEmptyString, wxITEM_CHECK);
// dualcore->Check(_LocalCoreStartupParameter.bUseDualCore);
- pMenuBar->Append(pDebugMenu, _T("&Core Startup"));
+ pMenuBar->Append(pCoreMenu, _T("&Core Startup"));
}
{
@@ -225,6 +228,11 @@ void CCodeWindow::CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParam
pMenuBar->Append(pDebugDialogs, _T("&Views"));
}
+ {
+ wxMenu *pSymbolsMenu = new wxMenu;
+ pSymbolsMenu->Append(IDM_SCANFUNCTIONS, _T("&Scan for functions"));
+ pMenuBar->Append(pSymbolsMenu, _T("&Symbols"));
+ }
SetMenuBar(pMenuBar);
}
@@ -246,6 +254,23 @@ void CCodeWindow::JumpToAddress(u32 _Address)
codeview->Center(_Address);
}
+void CCodeWindow::OnSymbolsMenu(wxCommandEvent& event)
+{
+ if (Core::GetState() == Core::CORE_UNINITIALIZED)
+ {
+ // TODO: disable menu items instead :P
+ return;
+ }
+ switch (event.GetId())
+ {
+ case IDM_SCANFUNCTIONS:
+ PPCAnalyst::FindFunctions(0x80003100, 0x80400000);
+ PPCAnalyst::LoadFuncDB("data/totaldb.dsy");
+ Debugger::GetFromAnalyzer();
+ NotifyMapLoaded();
+ break;
+ }
+}
void CCodeWindow::OnCodeStep(wxCommandEvent& event)
{
@@ -537,6 +562,7 @@ void CCodeWindow::OnToggleMemoryWindow(wxCommandEvent& event)
}
}
}
+
void CCodeWindow::OnHostMessage(wxCommandEvent& event)
{
switch (event.GetId())
@@ -582,13 +608,13 @@ void CCodeWindow::PopulateToolbar(wxToolBar* toolBar)
h = m_Bitmaps[Toolbar_DebugGo].GetHeight();
toolBar->SetToolBitmapSize(wxSize(w, h));
- toolBar->AddTool(IDM_DEBUG_GO, _T("Play"), m_Bitmaps[Toolbar_DebugGo], _T("Delete the selected BreakPoint or MemoryCheck"));
- toolBar->AddTool(IDM_STEP, _T("Step"), m_Bitmaps[Toolbar_Step], _T("Add BreakPoint..."));
- toolBar->AddTool(IDM_STEPOVER, _T("Step Over"), m_Bitmaps[Toolbar_StepOver], _T("Add BreakPoint..."));
- toolBar->AddTool(IDM_SKIP, _T("Skip"), m_Bitmaps[Toolbar_Skip], _T("Add BreakPoint..."));
+ toolBar->AddTool(IDM_DEBUG_GO, _T("Play"), m_Bitmaps[Toolbar_DebugGo]);
+ toolBar->AddTool(IDM_STEP, _T("Step"), m_Bitmaps[Toolbar_Step]);
+ toolBar->AddTool(IDM_STEPOVER, _T("Step Over"), m_Bitmaps[Toolbar_StepOver]);
+ toolBar->AddTool(IDM_SKIP, _T("Skip"), m_Bitmaps[Toolbar_Skip]);
toolBar->AddSeparator();
- toolBar->AddTool(IDM_GOTOPC, _T("Goto PC"), m_Bitmaps[Toolbar_GotoPC], _T("Add BreakPoint..."));
- toolBar->AddTool(IDM_SETPC, _T("Set PC"), m_Bitmaps[Toolbar_SetPC], _T("Add BreakPoint..."));
+ toolBar->AddTool(IDM_GOTOPC, _T("Goto PC"), m_Bitmaps[Toolbar_GotoPC]);
+ toolBar->AddTool(IDM_SETPC, _T("Set PC"), m_Bitmaps[Toolbar_SetPC]);
toolBar->AddSeparator();
toolBar->AddControl(new wxTextCtrl(toolBar, IDM_ADDRBOX, _T("")));