4 changed files with 100 additions and 0 deletions
-
2src/common/common.vcxproj
-
2src/common/common.vcxproj.filters
-
57src/common/symbols.cpp
-
39src/common/symbols.h
@ -0,0 +1,57 @@ |
|||
// Copyright 2014 Citra Emulator Project
|
|||
// Licensed under GPLv2
|
|||
// 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.insert(TSymbolsPair(_address, symbol)); |
|||
} |
|||
} |
|||
|
|||
TSymbol GetSymbol(u32 _address) |
|||
{ |
|||
TSymbolsMap::iterator foundSymbolItr; |
|||
TSymbol symbol; |
|||
|
|||
foundSymbolItr = g_symbols.find(_address); |
|||
if (foundSymbolItr != g_symbols.end()) |
|||
{ |
|||
symbol = (*foundSymbolItr).second; |
|||
} |
|||
|
|||
return symbol; |
|||
} |
|||
const std::string& GetName(u32 _address) |
|||
{ |
|||
return GetSymbol(_address).name; |
|||
} |
|||
|
|||
void Remove(u32 _address) |
|||
{ |
|||
g_symbols.erase(_address); |
|||
} |
|||
|
|||
void Clear() |
|||
{ |
|||
g_symbols.clear(); |
|||
} |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
// Copyright 2014 Citra Emulator Project |
|||
// Licensed under GPLv2 |
|||
// Refer to the license.txt file included. |
|||
|
|||
#pragma once |
|||
|
|||
#include <map> |
|||
|
|||
#include "common/common.h" |
|||
|
|||
class DebugInterface; |
|||
|
|||
struct TSymbol |
|||
{ |
|||
TSymbol() : |
|||
address(0), |
|||
size(0), |
|||
type(0) |
|||
{} |
|||
u32 address; |
|||
std::string name; |
|||
u32 size; |
|||
u32 type; |
|||
}; |
|||
|
|||
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(); |
|||
}; |
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue