more fixes, prefix filter for export symbols
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@304 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
4871626af8
commit
a47f8cbe9a
Source/Core
|
@ -133,14 +133,18 @@ void SignatureDB::Apply(SymbolDB *symbol_db)
|
||||||
symbol_db->Index();
|
symbol_db->Index();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SignatureDB::Initialize(SymbolDB *symbol_db)
|
void SignatureDB::Initialize(SymbolDB *symbol_db, const char *prefix)
|
||||||
{
|
{
|
||||||
|
std::string prefix_str(prefix);
|
||||||
for (SymbolDB::XFuncMap::const_iterator iter = symbol_db->GetConstIterator(); iter != symbol_db->End(); iter++)
|
for (SymbolDB::XFuncMap::const_iterator iter = symbol_db->GetConstIterator(); iter != symbol_db->End(); iter++)
|
||||||
{
|
{
|
||||||
DBFunc temp_dbfunc;
|
if (iter->second.name.substr(0, prefix_str.size()) == prefix_str)
|
||||||
temp_dbfunc.name = iter->second.name;
|
{
|
||||||
temp_dbfunc.size = iter->second.size;
|
DBFunc temp_dbfunc;
|
||||||
database[iter->second.hash] = temp_dbfunc;
|
temp_dbfunc.name = iter->second.name;
|
||||||
|
temp_dbfunc.size = iter->second.size;
|
||||||
|
database[iter->second.hash] = temp_dbfunc;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ public:
|
||||||
void Clear();
|
void Clear();
|
||||||
void List();
|
void List();
|
||||||
|
|
||||||
void Initialize(SymbolDB *func_db);
|
void Initialize(SymbolDB *func_db, const char *prefix = "");
|
||||||
void Apply(SymbolDB *func_db);
|
void Apply(SymbolDB *func_db);
|
||||||
|
|
||||||
static u32 ComputeCodeChecksum(u32 offsetStart, u32 offsetEnd);
|
static u32 ComputeCodeChecksum(u32 offsetStart, u32 offsetEnd);
|
||||||
|
|
|
@ -62,7 +62,7 @@ void CBreakPointView::Update()
|
||||||
Symbol *symbol = g_symbolDB.GetSymbolFromAddr(rBP.iAddress);
|
Symbol *symbol = g_symbolDB.GetSymbolFromAddr(rBP.iAddress);
|
||||||
if (symbol)
|
if (symbol)
|
||||||
{
|
{
|
||||||
temp = wxString::FromAscii("halloj"); //Debugger::GetDescription(rBP.iAddress));
|
temp = wxString::FromAscii(g_symbolDB.GetDescription(rBP.iAddress));
|
||||||
SetItem(Item, 2, temp);
|
SetItem(Item, 2, temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ void CBreakPointView::Update()
|
||||||
Symbol *symbol = g_symbolDB.GetSymbolFromAddr(rMemCheck.StartAddress);
|
Symbol *symbol = g_symbolDB.GetSymbolFromAddr(rMemCheck.StartAddress);
|
||||||
if (symbol)
|
if (symbol)
|
||||||
{
|
{
|
||||||
temp = wxString::FromAscii("bjorn"); //Debugger::GetDescription(rMemCheck.StartAddress));
|
temp = wxString::FromAscii(g_symbolDB.GetDescription(rMemCheck.StartAddress));
|
||||||
SetItem(Item, 2, temp);
|
SetItem(Item, 2, temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -348,15 +348,20 @@ void CCodeWindow::OnSymbolsMenu(wxCommandEvent& event)
|
||||||
break;
|
break;
|
||||||
case IDM_CREATESIGNATUREFILE:
|
case IDM_CREATESIGNATUREFILE:
|
||||||
{
|
{
|
||||||
wxString path = wxFileSelector(
|
wxTextEntryDialog input_prefix(this, wxString::FromAscii("Only export symbols with prefix:"), wxGetTextFromUserPromptStr, ".");
|
||||||
_T("Save signature as"), wxEmptyString, wxEmptyString, wxEmptyString,
|
if (input_prefix.ShowModal() == wxID_OK) {
|
||||||
_T("Dolphin Signature File (*.dsy)|*.dsy;"), wxFD_SAVE,
|
std::string prefix = input_prefix.GetValue().mb_str();
|
||||||
this);
|
|
||||||
if (path) {
|
wxString path = wxFileSelector(
|
||||||
SignatureDB db;
|
_T("Save signature as"), wxEmptyString, wxEmptyString, wxEmptyString,
|
||||||
db.Initialize(&g_symbolDB);
|
_T("Dolphin Signature File (*.dsy)|*.dsy;"), wxFD_SAVE,
|
||||||
std::string filename(path.ToAscii()); // PPCAnalyst::SaveSignatureDB(
|
this);
|
||||||
db.Save(path.ToAscii());
|
if (path) {
|
||||||
|
SignatureDB db;
|
||||||
|
db.Initialize(&g_symbolDB, prefix.c_str());
|
||||||
|
std::string filename(path.ToAscii()); // PPCAnalyst::SaveSignatureDB(
|
||||||
|
db.Save(path.ToAscii());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue