GDBServerFoundation::ISyncGDBTarget Class Referenceabstract

Defines a GDB target. More...

#include <IGDBTarget.h>

Inheritance diagram for GDBServerFoundation::ISyncGDBTarget:
GDBServerFoundation::IStoppedGDBTarget GDBServerFoundation::MinimalTargetBase

Public Member Functions

virtual GDBStatus GetLastStopRecord (TargetStopRecord *pRec)=0
 Returns the information explaining why the target has stopped (e.g. stopped at a breakpoint).
 
virtual GDBStatus ResumeAndWait (int threadID)=0
 Resumes the target and indefinitely waits till a next debug event occurs.
 
virtual GDBStatus Step (int threadID)=0
 Resumes the target in a single-step mode.
 
virtual GDBStatus SendBreakInRequestAsync ()=0
 Requests the target to stop executing (i.e. forces a breakpoint)
 
- Public Member Functions inherited from GDBServerFoundation::IStoppedGDBTarget
virtual const
PlatformRegisterList
GetRegisterList ()=0
 Returns a pointer to a persistent list of the registers supported by the target.
 
virtual GDBStatus ReadFrameRelatedRegisters (int threadID, RegisterSetContainer &registers)=0
 Reads program counter, stack pointer and stack base pointer registers.
 
virtual GDBStatus ReadTargetRegisters (int threadID, RegisterSetContainer &registers)=0
 Reads the values of all registers from the target.
 
virtual GDBStatus WriteTargetRegisters (int threadID, const RegisterSetContainer &registers)=0
 Writes one or more target registers.
 
virtual GDBStatus ReadTargetMemory (ULONGLONG Address, void *pBuffer, size_t *pSizeInBytes)=0
 Reads the memory of the underlying target.
 
virtual GDBStatus WriteTargetMemory (ULONGLONG Address, const void *pBuffer, size_t sizeInBytes)=0
 Writes the memory of the underlying target.
 
virtual GDBStatus GetDynamicLibraryList (std::vector< DynamicLibraryRecord > &libraries)=0
 Fills the list of the dynamic libraries currently loaded in the target.
 
virtual GDBStatus GetThreadList (std::vector< ThreadRecord > &threads)=0
 Fills the list of the threads currently present in the target.
 
virtual GDBStatus SetThreadModeForNextCont (int threadID, DebugThreadMode mode, OUT bool *pNeedRestoreCall, IN OUT INT_PTR *pRestoreCookie)=0
 Sets the mode in which an individual thread will continue before the next debug event.
 
virtual GDBStatus Terminate ()=0
 Terminates the target.
 
virtual GDBStatus CreateBreakpoint (BreakpointType type, ULONGLONG Address, unsigned kind, OUT INT_PTR *pCookie)=0
 Sets a breakpoint at a given address.
 
virtual GDBStatus RemoveBreakpoint (BreakpointType type, ULONGLONG Address, INT_PTR Cookie)=0
 Removes a previously set breakpoint.
 
virtual GDBStatus ExecuteRemoteCommand (const std::string &command, std::string &output)=0
 This handler is invoked when user sends an arbitrary command to the GDB stub ("mon <command>" in GDB).
 
virtual IFLASHProgrammerGetFLASHProgrammer ()=0
 Returns a pointer to an IFLASHProgrammer instance, or NULL if not supported. The returned instance should be persistent (e.g. the same object that implements IStoppedGDBTarget).
 
virtual ~IStoppedGDBTarget ()
 

Detailed Description

Defines a GDB target.

Remarks
Note that the target is assumed to be already stopped when an object implementing IStoppedGDBTarget is created. Thus, the first method of this interface to be called will be GetLastStopRecord().
Examples:
SimpleWin32Server/SimpleWin32Server.cpp.

Member Function Documentation

virtual GDBStatus GDBServerFoundation::ISyncGDBTarget::GetLastStopRecord ( TargetStopRecord pRec)
pure virtual

Returns the information explaining why the target has stopped (e.g. stopped at a breakpoint).

Remarks
This method can be called multiple times for the same stop event. Thus, it should not clear any caches or flags.
virtual GDBStatus GDBServerFoundation::ISyncGDBTarget::ResumeAndWait ( int  threadID)
pure virtual

Resumes the target and indefinitely waits till a next debug event occurs.

This method should resume the target and wait for the next debug event to occur. If SetThreadModeForNextCont() was previously called for one or more threads, the threadID will be 0 and the method should ensure that the thread previously set to single-step or halt mode will remain in that mode until the next debug event.

virtual GDBStatus GDBServerFoundation::ISyncGDBTarget::SendBreakInRequestAsync ( )
pure virtual

Requests the target to stop executing (i.e. forces a breakpoint)

Remarks
This method can be executed from an arbitrary thread (either an internal GDBServer worker thread, or the main thread) and thus should be fully thread-safe, should not wait for any event to complete and should return immediately.
virtual GDBStatus GDBServerFoundation::ISyncGDBTarget::Step ( int  threadID)
pure virtual

Resumes the target in a single-step mode.

This method is called to do single-stepping if SetThreadModeForNextCont() is not supported. It should perform a single step on the specified thread and wait until the step continues.


The documentation for this class was generated from the following file: