mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
38 lines
691 B
C++
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; }
|
|
};
|