Mesen/Core/Breakpoint.h

44 lines
679 B
C++

#pragma once
#include "stdafx.h"
#include "ExpressionEvaluator.h"
enum BreakpointType
{
Global = 0,
Execute = 1,
ReadRam = 2,
WriteRam = 3,
ReadVram = 4,
WriteVram = 5,
};
class Breakpoint
{
private:
enum BreakpointTypeFlags
{
Global = 0,
Execute = 1,
ReadRam = 2,
WriteRam = 4,
ReadVram = 8,
WriteVram = 16,
};
public:
Breakpoint();
~Breakpoint();
bool Matches(uint32_t memoryAddr, uint32_t absoluteAddr);
bool HasBreakpointType(BreakpointType type);
string GetCondition();
bool HasCondition();
void ClearCondition();
private:
BreakpointTypeFlags _type;
int32_t _startAddr;
int32_t _endAddr;
bool _isAbsoluteAddr;
char _condition[1000];
};