mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Debugger: Ignore small memory info by default.
The ini can be updated to enable higher resolution data. Allocations are always at least 0x100, so this is still pretty useful.
This commit is contained in:
parent
3b1c02fa49
commit
b93e02ad73
3 changed files with 16 additions and 11 deletions
|
@ -1053,6 +1053,7 @@ static ConfigSetting debuggerSettings[] = {
|
|||
ConfigSetting("ShowGpuProfile", &g_Config.bShowGpuProfile, false, false),
|
||||
ConfigSetting("SkipDeadbeefFilling", &g_Config.bSkipDeadbeefFilling, false),
|
||||
ConfigSetting("FuncHashMap", &g_Config.bFuncHashMap, false),
|
||||
ConfigSetting("MemInfoDetailed", &g_Config.bDebugMemInfoDetailed, false),
|
||||
ConfigSetting("DrawFrameGraph", &g_Config.bDrawFrameGraph, false),
|
||||
|
||||
ConfigSetting(false),
|
||||
|
|
|
@ -467,6 +467,7 @@ public:
|
|||
// Double edged sword: much easier debugging, but not accurate.
|
||||
bool bSkipDeadbeefFilling;
|
||||
bool bFuncHashMap;
|
||||
bool bDebugMemInfoDetailed;
|
||||
bool bDrawFrameGraph;
|
||||
|
||||
// Volatile development settings
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "Common/Log.h"
|
||||
#include "Common/Serialize/Serializer.h"
|
||||
#include "Common/Serialize/SerializeFuncs.h"
|
||||
#include "Core/Config.h"
|
||||
#include "Core/CoreTiming.h"
|
||||
#include "Core/Debugger/Breakpoints.h"
|
||||
#include "Core/Debugger/MemBlockInfo.h"
|
||||
|
@ -366,18 +367,20 @@ void NotifyMemInfoPC(MemBlockFlags flags, uint32_t start, uint32_t size, uint32_
|
|||
// Clear the uncached and kernel bits.
|
||||
start &= ~0xC0000000;
|
||||
|
||||
PendingNotifyMem info{ flags, start, size };
|
||||
info.ticks = CoreTiming::GetTicks();
|
||||
info.pc = pc;
|
||||
size_t copyLength = strLength;
|
||||
if (copyLength >= sizeof(info.tag)) {
|
||||
copyLength = sizeof(info.tag) - 1;
|
||||
}
|
||||
memcpy(info.tag, tagStr, copyLength);
|
||||
info.tag[copyLength] = 0;
|
||||
|
||||
bool needFlush = false;
|
||||
{
|
||||
// When the setting is off, we skip smaller info to keep things fast.
|
||||
if (g_Config.bDebugMemInfoDetailed || size >= 0x100) {
|
||||
PendingNotifyMem info{ flags, start, size };
|
||||
info.ticks = CoreTiming::GetTicks();
|
||||
info.pc = pc;
|
||||
|
||||
size_t copyLength = strLength;
|
||||
if (copyLength >= sizeof(info.tag)) {
|
||||
copyLength = sizeof(info.tag) - 1;
|
||||
}
|
||||
memcpy(info.tag, tagStr, copyLength);
|
||||
info.tag[copyLength] = 0;
|
||||
|
||||
std::lock_guard<std::mutex> guard(pendingMutex);
|
||||
pendingNotifies.push_back(info);
|
||||
needFlush = pendingNotifies.size() > MAX_PENDING_NOTIFIES;
|
||||
|
|
Loading…
Add table
Reference in a new issue