1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 20:12:21 +02:00

Fixed Get Debug Alloc Information pausing

This commit is contained in:
Brian Fiete 2022-06-04 18:30:56 -07:00
parent f8083037f9
commit a730e782f5
3 changed files with 4 additions and 3 deletions

View file

@ -189,6 +189,7 @@ enum DbgHotResolveFlags : uint8
DbgHotResolveFlag_None = 0, DbgHotResolveFlag_None = 0,
DbgHotResolveFlag_ActiveMethods = 1, DbgHotResolveFlag_ActiveMethods = 1,
DbgHotResolveFlag_Allocations = 2, DbgHotResolveFlag_Allocations = 2,
DbgHotResolveFlag_KeepThreadState = 4
}; };
enum DbgMemoryFlags : uint8 enum DbgMemoryFlags : uint8

View file

@ -338,7 +338,7 @@ void DbgHotScanner::ScanRoot(addr_target rootPtr, int memKind)
void DbgHotScanner::Scan(DbgHotResolveFlags flags) void DbgHotScanner::Scan(DbgHotResolveFlags flags)
{ {
auto prevRunState = mDebugger->mRunState; auto prevRunState = mDebugger->mRunState;
if (mDebugger->mRunState == RunState_Running) if ((mDebugger->mRunState == RunState_Running) && ((flags & DbgHotResolveFlag_KeepThreadState) == 0))
{ {
mDebugger->ThreadRestorePause(NULL, NULL); mDebugger->ThreadRestorePause(NULL, NULL);
mDebugger->mRunState = RunState_Paused; mDebugger->mRunState = RunState_Paused;
@ -379,7 +379,7 @@ void DbgHotScanner::Scan(DbgHotResolveFlags flags)
ScanRoot(mDbgGCData.mRawRootPtr, 1); ScanRoot(mDbgGCData.mRawRootPtr, 1);
} }
if (prevRunState == RunState_Running) if ((prevRunState == RunState_Running) && ((flags & DbgHotResolveFlag_KeepThreadState) == 0))
{ {
mDebugger->ThreadRestoreUnpause(); mDebugger->ThreadRestoreUnpause();
mDebugger->mRunState = prevRunState; mDebugger->mRunState = prevRunState;

View file

@ -1220,7 +1220,7 @@ String WinDebugger::GetDbgAllocInfo()
mHotResolveData = new DbgHotResolveData(); mHotResolveData = new DbgHotResolveData();
DbgHotScanner* hotScanner = new DbgHotScanner(this); DbgHotScanner* hotScanner = new DbgHotScanner(this);
hotScanner->Scan(DbgHotResolveFlag_Allocations); hotScanner->Scan((DbgHotResolveFlags)(DbgHotResolveFlag_Allocations | DbgHotResolveFlag_KeepThreadState));
delete hotScanner; delete hotScanner;
String result; String result;