diff options
| author | Sepalani <sepalani@hotmail.fr> | 2017-03-28 01:58:22 +0100 |
|---|---|---|
| committer | Sepalani <sepalani@hotmail.fr> | 2017-04-21 00:32:06 +0100 |
| commit | 694b10da111a86d573f8a984599a5fc3466a7897 (patch) | |
| tree | 3bf2066cae00b86219258531c623d695fecab239 /Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp | |
| parent | e0c489d80cbd512cff50328d77aa93d5c3600f84 (diff) | |
Generate Symbols From RSO Modules added
Diffstat (limited to 'Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp')
| -rw-r--r-- | Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
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 <cstddef> +#include <cstdlib> #include <fstream> #include <istream> +#include <limits> #include <sstream> #include <string> #include <utility> @@ -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<u32>::max()) + { + RSOChainView rso_chain; + if (rso_chain.Load(static_cast<u32>(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) { |
