From 694b10da111a86d573f8a984599a5fc3466a7897 Mon Sep 17 00:00:00 2001 From: Sepalani Date: Tue, 28 Mar 2017 01:58:22 +0100 Subject: Generate Symbols From RSO Modules added --- .../DolphinWX/Debugger/CodeWindowFunctions.cpp | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp') diff --git a/Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp b/Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp index df287220df..f271c8a979 100644 --- a/Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp +++ b/Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp @@ -3,8 +3,10 @@ // Refer to the license.txt file included. #include +#include #include #include +#include #include #include #include @@ -29,6 +31,7 @@ #include "Core/Boot/Boot.h" #include "Core/ConfigManager.h" #include "Core/Core.h" +#include "Core/Debugger/RSO.h" #include "Core/HLE/HLE.h" #include "Core/Host.h" #include "Core/PowerPC/JitInterface.h" @@ -202,6 +205,35 @@ void CCodeWindow::OnSymbolsMenu(wxCommandEvent& event) NotifyMapLoaded(); break; } + case IDM_SCAN_RSO: + { + wxTextEntryDialog dialog(this, _("Enter the RSO module address:")); + if (dialog.ShowModal() == wxID_OK) + { + unsigned long address; + if (dialog.GetValue().ToULong(&address, 0) && address <= std::numeric_limits::max()) + { + RSOChainView rso_chain; + if (rso_chain.Load(static_cast(address))) + { + rso_chain.Apply(&g_symbolDB); + // Update GUI + NotifyMapLoaded(); + } + else + { + Parent->StatusBarMessage("Failed to load RSO module at %s", + dialog.GetValue().ToStdString().c_str()); + } + } + else + { + Parent->StatusBarMessage("Invalid RSO module address: %s", + dialog.GetValue().ToStdString().c_str()); + } + } + break; + } case IDM_LOAD_MAP_FILE: if (!map_exists) { -- cgit v1.2.3