mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
Debugger: Minor performance improvements for debugger initialization
This commit is contained in:
parent
af9eda3524
commit
9e5d013c84
7 changed files with 17 additions and 9 deletions
|
@ -70,9 +70,11 @@ void CdlManager::RegisterCdl(MemoryType memType, CodeDataLogger* cdl)
|
||||||
_codeDataLoggers[(int)memType] = cdl;
|
_codeDataLoggers[(int)memType] = cdl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CdlManager::RefreshCodeCache()
|
void CdlManager::RefreshCodeCache(bool resetPrgCache)
|
||||||
{
|
{
|
||||||
_disassembler->ResetPrgCache();
|
if(resetPrgCache) {
|
||||||
|
_disassembler->ResetPrgCache();
|
||||||
|
}
|
||||||
|
|
||||||
for(CodeDataLogger* cdl : _codeDataLoggers) {
|
for(CodeDataLogger* cdl : _codeDataLoggers) {
|
||||||
if(cdl) {
|
if(cdl) {
|
||||||
|
|
|
@ -29,7 +29,7 @@ public:
|
||||||
void SaveCdlFile(MemoryType memType, char* cdlFile);
|
void SaveCdlFile(MemoryType memType, char* cdlFile);
|
||||||
void RegisterCdl(MemoryType memType, CodeDataLogger* cdl);
|
void RegisterCdl(MemoryType memType, CodeDataLogger* cdl);
|
||||||
|
|
||||||
void RefreshCodeCache();
|
void RefreshCodeCache(bool resetPrgCache = true);
|
||||||
|
|
||||||
CodeDataLogger* GetCodeDataLogger(MemoryType memType);
|
CodeDataLogger* GetCodeDataLogger(MemoryType memType);
|
||||||
};
|
};
|
||||||
|
|
|
@ -51,8 +51,7 @@ bool CodeDataLogger::LoadCdlFile(string cdlFilepath, bool autoResetCdl)
|
||||||
VirtualFile cdlFile = cdlFilepath;
|
VirtualFile cdlFile = cdlFilepath;
|
||||||
if(cdlFile.IsValid()) {
|
if(cdlFile.IsValid()) {
|
||||||
uint32_t fileSize = (uint32_t)cdlFile.GetSize();
|
uint32_t fileSize = (uint32_t)cdlFile.GetSize();
|
||||||
vector<uint8_t> cdlData;
|
vector<uint8_t>& cdlData = cdlFile.GetData();
|
||||||
cdlFile.ReadFile(cdlData);
|
|
||||||
|
|
||||||
if(fileSize >= _memSize) {
|
if(fileSize >= _memSize) {
|
||||||
Reset();
|
Reset();
|
||||||
|
|
|
@ -114,7 +114,7 @@ Debugger::Debugger(Emulator* emu, IConsole* console)
|
||||||
_breakRequestCount = 0;
|
_breakRequestCount = 0;
|
||||||
_suspendRequestCount = 0;
|
_suspendRequestCount = 0;
|
||||||
|
|
||||||
_cdlManager->RefreshCodeCache();
|
_cdlManager->RefreshCodeCache(false);
|
||||||
|
|
||||||
if(_emu->IsPaused()) {
|
if(_emu->IsPaused()) {
|
||||||
//Break on the current instruction if emulation was already paused
|
//Break on the current instruction if emulation was already paused
|
||||||
|
|
|
@ -15,9 +15,8 @@ MemoryAccessCounter::MemoryAccessCounter(Debugger* debugger)
|
||||||
|
|
||||||
for(int i = (int)DebugUtilities::GetLastCpuMemoryType() + 1; i < DebugUtilities::GetMemoryTypeCount(); i++) {
|
for(int i = (int)DebugUtilities::GetLastCpuMemoryType() + 1; i < DebugUtilities::GetMemoryTypeCount(); i++) {
|
||||||
uint32_t memSize = _debugger->GetMemoryDumper()->GetMemorySize((MemoryType)i);
|
uint32_t memSize = _debugger->GetMemoryDumper()->GetMemorySize((MemoryType)i);
|
||||||
_counters[i].reserve(memSize);
|
if(memSize > 0) {
|
||||||
for(uint32_t j = 0; j < memSize; j++) {
|
_counters[i] = vector<AddressCounters>(memSize);
|
||||||
_counters[i].push_back({});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -235,6 +235,12 @@ void VirtualFile::InitChunks()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vector<uint8_t>& VirtualFile::GetData()
|
||||||
|
{
|
||||||
|
LoadFile();
|
||||||
|
return _data;
|
||||||
|
}
|
||||||
|
|
||||||
bool VirtualFile::ReadFile(vector<uint8_t>& out)
|
bool VirtualFile::ReadFile(vector<uint8_t>& out)
|
||||||
{
|
{
|
||||||
LoadFile();
|
LoadFile();
|
||||||
|
|
|
@ -44,6 +44,8 @@ public:
|
||||||
bool CheckFileSignature(vector<string> signatures, bool loadArchives = false);
|
bool CheckFileSignature(vector<string> signatures, bool loadArchives = false);
|
||||||
void InitChunks();
|
void InitChunks();
|
||||||
|
|
||||||
|
vector<uint8_t>& GetData();
|
||||||
|
|
||||||
bool ReadFile(vector<uint8_t> &out);
|
bool ReadFile(vector<uint8_t> &out);
|
||||||
bool ReadFile(std::stringstream &out);
|
bool ReadFile(std::stringstream &out);
|
||||||
bool ReadFile(uint8_t* out, uint32_t expectedSize);
|
bool ReadFile(uint8_t* out, uint32_t expectedSize);
|
||||||
|
|
Loading…
Add table
Reference in a new issue