Mesen-SX/Core/CallstackManager.h

25 lines
621 B
C
Raw Permalink Normal View History

2019-03-24 12:05:51 -04:00
#pragma once
#include "stdafx.h"
#include "DebugTypes.h"
class Debugger;
class Profiler;
2019-03-24 12:05:51 -04:00
class CallstackManager
{
private:
Debugger* _debugger;
deque<StackFrameInfo> _callstack;
unique_ptr<Profiler> _profiler;
2019-03-24 12:05:51 -04:00
public:
CallstackManager(Debugger* debugger);
~CallstackManager();
2019-03-24 12:05:51 -04:00
void Push(AddressInfo& src, uint32_t srcAddr, AddressInfo& dest, uint32_t destAddr, AddressInfo& ret, uint32_t returnAddress, StackFrameFlags flags);
void Pop(AddressInfo& dest, uint32_t destAddr);
2019-03-24 12:05:51 -04:00
void GetCallstack(StackFrameInfo* callstackArray, uint32_t &callstackSize);
int32_t GetReturnAddress();
Profiler* GetProfiler();
};