6 changed files with 0 additions and 124 deletions
-
2src/common/CMakeLists.txt
-
46src/common/symbols.cpp
-
30src/common/symbols.h
-
2src/core/CMakeLists.txt
-
31src/core/arm/disassembler/load_symbol_map.cpp
-
13src/core/arm/disassembler/load_symbol_map.h
@ -1,46 +0,0 @@ |
|||
// Copyright 2014 Citra Emulator Project
|
|||
// Licensed under GPLv2 or any later version
|
|||
// Refer to the license.txt file included.
|
|||
|
|||
#include "common/symbols.h"
|
|||
|
|||
TSymbolsMap g_symbols; |
|||
|
|||
namespace Symbols { |
|||
bool HasSymbol(u32 address) { |
|||
return g_symbols.find(address) != g_symbols.end(); |
|||
} |
|||
|
|||
void Add(u32 address, const std::string& name, u32 size, u32 type) { |
|||
if (!HasSymbol(address)) { |
|||
TSymbol symbol; |
|||
symbol.address = address; |
|||
symbol.name = name; |
|||
symbol.size = size; |
|||
symbol.type = type; |
|||
|
|||
g_symbols.emplace(address, symbol); |
|||
} |
|||
} |
|||
|
|||
TSymbol GetSymbol(u32 address) { |
|||
const auto iter = g_symbols.find(address); |
|||
|
|||
if (iter != g_symbols.end()) |
|||
return iter->second; |
|||
|
|||
return {}; |
|||
} |
|||
|
|||
const std::string GetName(u32 address) { |
|||
return GetSymbol(address).name; |
|||
} |
|||
|
|||
void Remove(u32 address) { |
|||
g_symbols.erase(address); |
|||
} |
|||
|
|||
void Clear() { |
|||
g_symbols.clear(); |
|||
} |
|||
} |
|||
@ -1,30 +0,0 @@ |
|||
// Copyright 2014 Citra Emulator Project |
|||
// Licensed under GPLv2 or any later version |
|||
// Refer to the license.txt file included. |
|||
|
|||
#pragma once |
|||
|
|||
#include <map> |
|||
#include <string> |
|||
#include <utility> |
|||
#include "common/common_types.h" |
|||
|
|||
struct TSymbol { |
|||
u32 address = 0; |
|||
std::string name; |
|||
u32 size = 0; |
|||
u32 type = 0; |
|||
}; |
|||
|
|||
typedef std::map<u32, TSymbol> TSymbolsMap; |
|||
typedef std::pair<u32, TSymbol> TSymbolsPair; |
|||
|
|||
namespace Symbols { |
|||
bool HasSymbol(u32 address); |
|||
|
|||
void Add(u32 address, const std::string& name, u32 size, u32 type); |
|||
TSymbol GetSymbol(u32 address); |
|||
const std::string GetName(u32 address); |
|||
void Remove(u32 address); |
|||
void Clear(); |
|||
} |
|||
@ -1,31 +0,0 @@ |
|||
// Copyright 2014 Citra Emulator Project
|
|||
// Licensed under GPLv2 or any later version
|
|||
// Refer to the license.txt file included.
|
|||
|
|||
#include <sstream>
|
|||
#include <string>
|
|||
#include <vector>
|
|||
#include "common/file_util.h"
|
|||
#include "common/symbols.h"
|
|||
#include "core/arm/disassembler/load_symbol_map.h"
|
|||
|
|||
/*
|
|||
* Loads a symbol map file for use with the disassembler |
|||
* @param filename String filename path of symbol map file |
|||
*/ |
|||
void LoadSymbolMap(std::string filename) { |
|||
std::ifstream infile(filename); |
|||
|
|||
std::string address_str, function_name, line; |
|||
u32 size; |
|||
|
|||
while (std::getline(infile, line)) { |
|||
std::istringstream iss(line); |
|||
if (!(iss >> address_str >> size >> function_name)) { |
|||
break; // Error parsing
|
|||
} |
|||
u32 address = std::stoul(address_str, nullptr, 16); |
|||
|
|||
Symbols::Add(address, function_name, size, 2); |
|||
} |
|||
} |
|||
@ -1,13 +0,0 @@ |
|||
// Copyright 2014 Citra Emulator Project |
|||
// Licensed under GPLv2 or any later version |
|||
// Refer to the license.txt file included. |
|||
|
|||
#pragma once |
|||
|
|||
#include <string> |
|||
|
|||
/* |
|||
* Loads a symbol map file for use with the disassembler |
|||
* @param filename String filename path of symbol map file |
|||
*/ |
|||
void LoadSymbolMap(std::string filename); |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue