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;
|
||||
}
|
||||
|
||||
void CdlManager::RefreshCodeCache()
|
||||
void CdlManager::RefreshCodeCache(bool resetPrgCache)
|
||||
{
|
||||
_disassembler->ResetPrgCache();
|
||||
if(resetPrgCache) {
|
||||
_disassembler->ResetPrgCache();
|
||||
}
|
||||
|
||||
for(CodeDataLogger* cdl : _codeDataLoggers) {
|
||||
if(cdl) {
|
||||
|
|
|
@ -29,7 +29,7 @@ public:
|
|||
void SaveCdlFile(MemoryType memType, char* cdlFile);
|
||||
void RegisterCdl(MemoryType memType, CodeDataLogger* cdl);
|
||||
|
||||
void RefreshCodeCache();
|
||||
void RefreshCodeCache(bool resetPrgCache = true);
|
||||
|
||||
CodeDataLogger* GetCodeDataLogger(MemoryType memType);
|
||||
};
|
||||
|
|
|
@ -51,8 +51,7 @@ bool CodeDataLogger::LoadCdlFile(string cdlFilepath, bool autoResetCdl)
|
|||
VirtualFile cdlFile = cdlFilepath;
|
||||
if(cdlFile.IsValid()) {
|
||||
uint32_t fileSize = (uint32_t)cdlFile.GetSize();
|
||||
vector<uint8_t> cdlData;
|
||||
cdlFile.ReadFile(cdlData);
|
||||
vector<uint8_t>& cdlData = cdlFile.GetData();
|
||||
|
||||
if(fileSize >= _memSize) {
|
||||
Reset();
|
||||
|
|
|
@ -114,7 +114,7 @@ Debugger::Debugger(Emulator* emu, IConsole* console)
|
|||
_breakRequestCount = 0;
|
||||
_suspendRequestCount = 0;
|
||||
|
||||
_cdlManager->RefreshCodeCache();
|
||||
_cdlManager->RefreshCodeCache(false);
|
||||
|
||||
if(_emu->IsPaused()) {
|
||||
//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++) {
|
||||
uint32_t memSize = _debugger->GetMemoryDumper()->GetMemorySize((MemoryType)i);
|
||||
_counters[i].reserve(memSize);
|
||||
for(uint32_t j = 0; j < memSize; j++) {
|
||||
_counters[i].push_back({});
|
||||
if(memSize > 0) {
|
||||
_counters[i] = vector<AddressCounters>(memSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -235,6 +235,12 @@ void VirtualFile::InitChunks()
|
|||
}
|
||||
}
|
||||
|
||||
vector<uint8_t>& VirtualFile::GetData()
|
||||
{
|
||||
LoadFile();
|
||||
return _data;
|
||||
}
|
||||
|
||||
bool VirtualFile::ReadFile(vector<uint8_t>& out)
|
||||
{
|
||||
LoadFile();
|
||||
|
|
|
@ -44,6 +44,8 @@ public:
|
|||
bool CheckFileSignature(vector<string> signatures, bool loadArchives = false);
|
||||
void InitChunks();
|
||||
|
||||
vector<uint8_t>& GetData();
|
||||
|
||||
bool ReadFile(vector<uint8_t> &out);
|
||||
bool ReadFile(std::stringstream &out);
|
||||
bool ReadFile(uint8_t* out, uint32_t expectedSize);
|
||||
|
|
Loading…
Add table
Reference in a new issue