Mesen2/Core/Debugger/ITraceLogger.h

38 lines
691 B
C++

#pragma once
#include "pch.h"
#include "Debugger/DebugTypes.h"
struct TraceRow
{
uint32_t ProgramCounter;
CpuType Type;
uint8_t ByteCode[8];
uint8_t ByteCodeSize;
uint32_t LogSize;
char LogOutput[500];
};
struct TraceLoggerOptions
{
bool Enabled;
bool IndentCode;
bool UseLabels;
char Condition[1000];
char Format[1000];
};
class ITraceLogger
{
protected:
bool _enabled = false;
public:
static uint64_t NextRowId;
virtual int64_t GetRowId(uint32_t offset) = 0;
virtual void GetExecutionTrace(TraceRow& row, uint32_t offset) = 0;
virtual void Clear() = 0;
virtual void SetOptions(TraceLoggerOptions options) = 0;
__forceinline bool IsEnabled() { return _enabled; }
};