VBoxTarget.h
Go to the documentation of this file.
1 #pragma once
2 #include "../../GDBServerFoundation/IGDBTarget.h"
3 #include "VBoxClient.h"
4 
5 namespace VBoxGDB
6 {
7  using namespace GDBServerFoundation;
8 
10 
13  class VBoxTarget32 : public GDBServerFoundation::MinimalTargetBase
14  {
15  private:
16  VBoxClient *m_pClient;
17  bool m_bOwn;
18 
19  public:
20  VBoxTarget32(VBoxClient *pClient, bool own);
21  ~VBoxTarget32();
22 
23  public:
24  virtual const PlatformRegisterList *GetRegisterList();
25  virtual GDBStatus ReadTargetRegisters(int threadID, RegisterSetContainer &registers);
26  virtual GDBStatus WriteTargetRegisters(int threadID, const RegisterSetContainer &registers);
27  virtual GDBStatus ReadTargetMemory(ULONGLONG Address, void *pBuffer, size_t *pSizeInBytes);
28  virtual GDBStatus WriteTargetMemory(ULONGLONG Address, const void *pBuffer, size_t sizeInBytes);
29 
30  virtual GDBStatus GetLastStopRecord(TargetStopRecord *pRec);
31  virtual GDBStatus ResumeAndWait(int threadID);
32  virtual GDBStatus Step(int threadID);
33  virtual GDBStatus SendBreakInRequestAsync();
34 
35  virtual GDBStatus ExecuteRemoteCommand(const std::string &command, std::string &output);
36 
37  virtual GDBStatus CreateBreakpoint(BreakpointType type, ULONGLONG Address, unsigned kind, OUT INT_PTR *pCookie);
38  virtual GDBStatus RemoveBreakpoint(BreakpointType type, ULONGLONG Address, INT_PTR Cookie);
39  virtual void CloseSessionSafely();
40  };
41 
42 }