1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 11:38:21 +02:00
Beef/IDEHelper/MiniDumpDebugger.h

63 lines
2.1 KiB
C
Raw Normal View History

2019-08-23 11:56:54 -07:00
#pragma once
#include "WinDebugger.h"
#include "DbgMiniDump.h"
NS_BF_DBG_BEGIN
class MiniDumpMemoryRegion
{
public:
addr_target mAddress;
intptr_target mAddressLength;
void* mData;
MiniDumpMemoryRegion* mNext;
};
class MiniDumpDebugger : public WinDebugger
{
public:
DbgMiniDump* mMiniDump;
Array<MappedFile*> mMappedFiles;
DbgRadixMap<MiniDumpMemoryRegion*> mMemMap;
BumpAllocator mAlloc;
WdThreadInfo* mExceptionThread;
uintptr mExceptionContextRVA;
public:
MiniDumpDebugger(DebugManager* debugManager, DbgMiniDump* miniDump);
~MiniDumpDebugger();
void MapMemory(addr_target addr, void* data, intptr_target size);
MappedFile* MapModule(COFF* dbgModule, const StringImpl& fileName);
2022-07-30 09:11:38 -04:00
2019-08-23 11:56:54 -07:00
virtual bool PopulateRegisters(CPURegisters* registers) override;
using WinDebugger::PopulateRegisters;
virtual bool ReadMemory(intptr address, uint64 length, void* dest, bool isLocal) override;
virtual bool WriteMemory(intptr address, void* src, uint64 length) override;
virtual bool IsOnDemandDebugger() override { return true; }
2022-07-30 09:11:38 -04:00
virtual bool IsMiniDumpDebugger() override { return true; }
2019-08-23 11:56:54 -07:00
virtual void ContinueDebugEvent() { }
virtual Breakpoint* CreateBreakpoint(const StringImpl& fileName, int lineNum, int wantColumn, int instrOffset) { return NULL; }
virtual Breakpoint* CreateMemoryBreakpoint(intptr addr, int byteCount, const StringImpl& addrType) { return NULL; }
virtual Breakpoint* CreateSymbolBreakpoint(const StringImpl& symbolName) { return NULL; }
virtual Breakpoint* CreateAddressBreakpoint(intptr address) { return NULL; }
virtual void BreakAll() override {};
virtual bool TryRunContinue() override { return false; }
virtual void StepInto(bool inAssembly) override { }
virtual void StepIntoSpecific(intptr addr) override { }
virtual void StepOver(bool inAssembly) override { }
virtual void StepOut(bool inAssembly) override { }
virtual void SetNextStatement(bool inAssembly, const StringImpl& fileName, int64 lineNumOrAsmAddr, int wantColumn) { }
virtual Profiler* StartProfiling() { return NULL; }
virtual Profiler* PopProfiler() { return NULL; }
};
NS_BF_DBG_END