mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Remove ability to load symbol maps
This was now mostly unused except by thread creation, which used a symbol of the entrypoint, if available, to name the thread.
This commit is contained in:
		
							parent
							
								
									4af2a1a3d7
								
							
						
					
					
						commit
						6577bbc3c5
					
				| @ -38,7 +38,6 @@ | |||||||
| #include "common/scm_rev.h" | #include "common/scm_rev.h" | ||||||
| #include "common/scope_exit.h" | #include "common/scope_exit.h" | ||||||
| #include "common/string_util.h" | #include "common/string_util.h" | ||||||
| #include "core/arm/disassembler/load_symbol_map.h" |  | ||||||
| #include "core/core.h" | #include "core/core.h" | ||||||
| #include "core/file_sys/archive_source_sd_savedata.h" | #include "core/file_sys/archive_source_sd_savedata.h" | ||||||
| #include "core/gdbstub/gdbstub.h" | #include "core/gdbstub/gdbstub.h" | ||||||
| @ -253,8 +252,6 @@ void GMainWindow::ConnectWidgetEvents() { | |||||||
| void GMainWindow::ConnectMenuEvents() { | void GMainWindow::ConnectMenuEvents() { | ||||||
|     // File
 |     // File
 | ||||||
|     connect(ui.action_Load_File, &QAction::triggered, this, &GMainWindow::OnMenuLoadFile); |     connect(ui.action_Load_File, &QAction::triggered, this, &GMainWindow::OnMenuLoadFile); | ||||||
|     connect(ui.action_Load_Symbol_Map, &QAction::triggered, this, |  | ||||||
|             &GMainWindow::OnMenuLoadSymbolMap); |  | ||||||
|     connect(ui.action_Select_Game_List_Root, &QAction::triggered, this, |     connect(ui.action_Select_Game_List_Root, &QAction::triggered, this, | ||||||
|             &GMainWindow::OnMenuSelectGameListRoot); |             &GMainWindow::OnMenuSelectGameListRoot); | ||||||
|     connect(ui.action_Exit, &QAction::triggered, this, &QMainWindow::close); |     connect(ui.action_Exit, &QAction::triggered, this, &QMainWindow::close); | ||||||
| @ -506,16 +503,6 @@ void GMainWindow::OnMenuLoadFile() { | |||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void GMainWindow::OnMenuLoadSymbolMap() { |  | ||||||
|     QString filename = QFileDialog::getOpenFileName( |  | ||||||
|         this, tr("Load Symbol Map"), UISettings::values.symbols_path, tr("Symbol Map (*.*)")); |  | ||||||
|     if (!filename.isEmpty()) { |  | ||||||
|         UISettings::values.symbols_path = QFileInfo(filename).path(); |  | ||||||
| 
 |  | ||||||
|         LoadSymbolMap(filename.toStdString()); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void GMainWindow::OnMenuSelectGameListRoot() { | void GMainWindow::OnMenuSelectGameListRoot() { | ||||||
|     QString dir_path = QFileDialog::getExistingDirectory(this, tr("Select Directory")); |     QString dir_path = QFileDialog::getExistingDirectory(this, tr("Select Directory")); | ||||||
|     if (!dir_path.isEmpty()) { |     if (!dir_path.isEmpty()) { | ||||||
|  | |||||||
| @ -116,7 +116,6 @@ private slots: | |||||||
|     void OnGameListLoadFile(QString game_path); |     void OnGameListLoadFile(QString game_path); | ||||||
|     void OnGameListOpenSaveFolder(u64 program_id); |     void OnGameListOpenSaveFolder(u64 program_id); | ||||||
|     void OnMenuLoadFile(); |     void OnMenuLoadFile(); | ||||||
|     void OnMenuLoadSymbolMap(); |  | ||||||
|     /// Called whenever a user selects the "File->Select Game List Root" menu item
 |     /// Called whenever a user selects the "File->Select Game List Root" menu item
 | ||||||
|     void OnMenuSelectGameListRoot(); |     void OnMenuSelectGameListRoot(); | ||||||
|     void OnMenuRecentFile(); |     void OnMenuRecentFile(); | ||||||
|  | |||||||
| @ -58,7 +58,6 @@ | |||||||
|      </property> |      </property> | ||||||
|     </widget> |     </widget> | ||||||
|     <addaction name="action_Load_File"/> |     <addaction name="action_Load_File"/> | ||||||
|     <addaction name="action_Load_Symbol_Map"/> |  | ||||||
|     <addaction name="separator"/> |     <addaction name="separator"/> | ||||||
|     <addaction name="action_Select_Game_List_Root"/> |     <addaction name="action_Select_Game_List_Root"/> | ||||||
|     <addaction name="menu_recent_files"/> |     <addaction name="menu_recent_files"/> | ||||||
|  | |||||||
| @ -2,12 +2,12 @@ | |||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
|  | #include <cinttypes> | ||||||
| #include <map> | #include <map> | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
| #include "common/microprofile.h" | #include "common/microprofile.h" | ||||||
| #include "common/scope_exit.h" | #include "common/scope_exit.h" | ||||||
| #include "common/string_util.h" | #include "common/string_util.h" | ||||||
| #include "common/symbols.h" |  | ||||||
| #include "core/arm/arm_interface.h" | #include "core/arm/arm_interface.h" | ||||||
| #include "core/core_timing.h" | #include "core/core_timing.h" | ||||||
| #include "core/hle/function_wrappers.h" | #include "core/hle/function_wrappers.h" | ||||||
| @ -524,13 +524,7 @@ static ResultCode CreateThread(Kernel::Handle* out_handle, s32 priority, u32 ent | |||||||
|                                u32 stack_top, s32 processor_id) { |                                u32 stack_top, s32 processor_id) { | ||||||
|     using Kernel::Thread; |     using Kernel::Thread; | ||||||
| 
 | 
 | ||||||
|     std::string name; |     std::string name = Common::StringFromFormat("unknown-%08" PRIX32, entry_point); | ||||||
|     if (Symbols::HasSymbol(entry_point)) { |  | ||||||
|         TSymbol symbol = Symbols::GetSymbol(entry_point); |  | ||||||
|         name = symbol.name; |  | ||||||
|     } else { |  | ||||||
|         name = Common::StringFromFormat("unknown-%08x", entry_point); |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     if (priority > THREADPRIO_LOWEST) { |     if (priority > THREADPRIO_LOWEST) { | ||||||
|         return ResultCode(ErrorDescription::OutOfRange, ErrorModule::OS, |         return ResultCode(ErrorDescription::OutOfRange, ErrorModule::OS, | ||||||
|  | |||||||
| @ -8,7 +8,6 @@ | |||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
| #include "common/file_util.h" | #include "common/file_util.h" | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
| #include "common/symbols.h" |  | ||||||
| #include "core/hle/kernel/process.h" | #include "core/hle/kernel/process.h" | ||||||
| #include "core/hle/kernel/resource_limit.h" | #include "core/hle/kernel/resource_limit.h" | ||||||
| #include "core/loader/elf.h" | #include "core/loader/elf.h" | ||||||
| @ -210,7 +209,6 @@ public: | |||||||
|         return (u32)(header->e_flags); |         return (u32)(header->e_flags); | ||||||
|     } |     } | ||||||
|     SharedPtr<CodeSet> LoadInto(u32 vaddr); |     SharedPtr<CodeSet> LoadInto(u32 vaddr); | ||||||
|     bool LoadSymbols(); |  | ||||||
| 
 | 
 | ||||||
|     int GetNumSegments() const { |     int GetNumSegments() const { | ||||||
|         return (int)(header->e_phnum); |         return (int)(header->e_phnum); | ||||||
| @ -258,8 +256,6 @@ ElfReader::ElfReader(void* ptr) { | |||||||
|     sections = (Elf32_Shdr*)(base + header->e_shoff); |     sections = (Elf32_Shdr*)(base + header->e_shoff); | ||||||
| 
 | 
 | ||||||
|     entryPoint = header->e_entry; |     entryPoint = header->e_entry; | ||||||
| 
 |  | ||||||
|     LoadSymbols(); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char* ElfReader::GetSectionName(int section) const { | const char* ElfReader::GetSectionName(int section) const { | ||||||
| @ -362,34 +358,6 @@ SectionID ElfReader::GetSectionByName(const char* name, int firstSection) const | |||||||
|     return -1; |     return -1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool ElfReader::LoadSymbols() { |  | ||||||
|     bool hasSymbols = false; |  | ||||||
|     SectionID sec = GetSectionByName(".symtab"); |  | ||||||
|     if (sec != -1) { |  | ||||||
|         int stringSection = sections[sec].sh_link; |  | ||||||
|         const char* stringBase = reinterpret_cast<const char*>(GetSectionDataPtr(stringSection)); |  | ||||||
| 
 |  | ||||||
|         // We have a symbol table!
 |  | ||||||
|         const Elf32_Sym* symtab = reinterpret_cast<const Elf32_Sym*>(GetSectionDataPtr(sec)); |  | ||||||
|         unsigned int numSymbols = sections[sec].sh_size / sizeof(Elf32_Sym); |  | ||||||
|         for (unsigned sym = 0; sym < numSymbols; sym++) { |  | ||||||
|             int size = symtab[sym].st_size; |  | ||||||
|             if (size == 0) |  | ||||||
|                 continue; |  | ||||||
| 
 |  | ||||||
|             int type = symtab[sym].st_info & 0xF; |  | ||||||
| 
 |  | ||||||
|             const char* name = stringBase + symtab[sym].st_name; |  | ||||||
| 
 |  | ||||||
|             Symbols::Add(symtab[sym].st_value, name, size, type); |  | ||||||
| 
 |  | ||||||
|             hasSymbols = true; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     return hasSymbols; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ||||||
| // Loader namespace
 | // Loader namespace
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Yuri Kunde Schlesner
						Yuri Kunde Schlesner