mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Debugger: Notate more cases of memory clears.
This commit is contained in:
parent
44a0c54538
commit
ca7d127adc
3 changed files with 7 additions and 2 deletions
|
@ -475,10 +475,11 @@ int ElfReader::LoadInto(u32 loadAddress, bool fromTop)
|
|||
if (srcSize < dstSize)
|
||||
{
|
||||
memset(dst + srcSize, 0, dstSize - srcSize); //zero out bss
|
||||
NotifyMemInfo(MemBlockFlags::WRITE, writeAddr + srcSize, dstSize - srcSize, "ELFZero");
|
||||
}
|
||||
|
||||
memcpy(dst, src, srcSize);
|
||||
NotifyMemInfo(MemBlockFlags::WRITE, writeAddr, dstSize, "ELFLoad");
|
||||
NotifyMemInfo(MemBlockFlags::WRITE, writeAddr, srcSize, "ELFLoad");
|
||||
DEBUG_LOG(LOADER,"Loadable Segment Copied to %08x, size %08x", writeAddr, (u32)p->p_memsz);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1965,6 +1965,7 @@ int __KernelFreeTls(TLSPL *tls, SceUID threadID)
|
|||
|
||||
// Whenever freeing a block, clear it (even if it's not going to wake anyone.)
|
||||
Memory::Memset(freedAddress, 0, tls->ntls.blockSize);
|
||||
NotifyMemInfo(MemBlockFlags::WRITE, freedAddress, tls->ntls.blockSize, "TlsFree");
|
||||
|
||||
// First, let's remove the end check for the freeing thread.
|
||||
auto freeingLocked = tlsplThreadEndChecks.equal_range(threadID);
|
||||
|
@ -2239,8 +2240,10 @@ int sceKernelGetTlsAddr(SceUID uid)
|
|||
NotifyMemInfo(MemBlockFlags::SUB_ALLOC, allocAddress, tls->ntls.blockSize, "TlsAddr");
|
||||
|
||||
// We clear the blocks upon first allocation (and also when they are freed, both are necessary.)
|
||||
if (needsClear)
|
||||
if (needsClear) {
|
||||
Memory::Memset(allocAddress, 0, tls->ntls.blockSize);
|
||||
NotifyMemInfo(MemBlockFlags::WRITE, allocAddress, tls->ntls.blockSize, "TlsAddr");
|
||||
}
|
||||
|
||||
return allocAddress;
|
||||
}
|
||||
|
|
|
@ -857,6 +857,7 @@ void PSPModule::Cleanup() {
|
|||
Memory::Write_U32(MIPS_MAKE_BREAK(1), nm.text_addr + i);
|
||||
}
|
||||
Memory::Memset(nm.text_addr + nm.text_size, -1, nm.data_size + nm.bss_size);
|
||||
NotifyMemInfo(MemBlockFlags::WRITE, nm.text_addr + nm.text_size, nm.data_size + nm.bss_size, "ModuleClear");
|
||||
|
||||
// Let's also invalidate, just to make sure it's cleared out for any future data.
|
||||
currentMIPS->InvalidateICache(memoryBlockAddr, memoryBlockSize);
|
||||
|
|
Loading…
Add table
Reference in a new issue