2 #include <bzsnet/BufferedSocket.h>
3 #include <bzscore/buffer.h>
4 #include <bzscore/string.h>
10 #define USE_REG_WORKAROUND_DLL
25 BazisLib::Network::TCPSocketEx m_Socket;
26 BazisLib::DynamicStringA m_Buffer;
27 size_t m_BufferAllocationSize;
30 int m_BreakpointIDOfLastStopEvent;
32 typedef std::hash_map<int, ULONGLONG> BreakpointAddressMap;
33 BreakpointAddressMap m_BreakpointMap;
35 BazisLib::BasicBuffer m_LastBlockReadBuffer;
36 ULONGLONG m_LastBlockReadAddr;
38 BazisLib::Network::InternetAddress m_TargetAddr;
45 VBoxClient(
const BazisLib::Network::InternetAddress &addr);
52 bool RecvTillCommandPrompt();
53 bool ReadMemoryBlockAligned(ULONGLONG address, BazisLib::BasicBuffer &buffer);
54 void AdjustPCAfterBreakpoint(
int breakpointNumber);
55 ULONGLONG GetCurrentPC();
58 std::vector<BazisLib::DynamicStringA>
ExecuteCommand(
const char *pCommand);
62 std::map<BazisLib::DynamicStringA, ULONGLONG>
ReadRegisters();
93 bool ReadMemory(ULONGLONG address,
void *pData,
size_t *pLength,
bool allowCaching =
true);
96 bool WriteMemory(ULONGLONG address,
const void *pData,
size_t length);
110 bool IsSuccessfulReply(
const std::vector<BazisLib::DynamicStringA> &reply,
bool report =
true);
129 virtual void ReportError(
const char *pErrorDescription);