GDBServerFoundation Namespace Reference

Namespaces

namespace  HexHelpers
 Contains various helper functions for parsing and generating hex-encoded strings.
 

Classes

class  BasicGDBStub
 Implements basic GDB stub functionality (recognizing packet types, reporting features, formatting common replies). More...
 
class  IBreakInTarget
 Receives asynchronous break-in requests from a BreakInSocket. More...
 
class  BreakInSocket
 Encapsulates a socket with asynchronous break-in support. More...
 
struct  RegisterEntry
 Describes a single register of the target platform. More...
 
struct  PlatformRegisterList
 Contains a fixed list of registers defined at compile time. More...
 
struct  RegisterValue
 Contains the value of a single register. Register values are normally passed via RegisterSetContainer objects. More...
 
class  RegisterSetContainer
 Stores values of some or all target registers. More...
 
class  GDBServer
 Implements a TCP/IP server handling the gdbserver protocol. More...
 
class  GDBStub
 Implements supported gdbserver packets by invoking methods of a provided IGDBTarget object. More...
 
class  StubResponse
 Contains the response sent to GDB by the target. The response it not escaped or RLE-encoded and does not include packet header and checksum. More...
 
struct  StandardResponses
 Contains common responses sent by gdbserver to GDB. More...
 
class  IGDBStub
 Defines a GDB stub capable of handling raw gdbserver requests. Use the GDBStub class to instantiate. More...
 
class  IGDBStubFactory
 Defines a class that creates instances of IGDBStub when incoming connections from GDB are received. More...
 
struct  DynamicLibraryRecord
 Describes a shared library loaded in to the process address space. More...
 
struct  ThreadRecord
 Describes a single thread of the debugged program. More...
 
struct  EmbeddedMemoryRegion
 Specifies a single memory region inside an embedded device. Used to detect the FLASH memory that requires erasing. More...
 
class  IFLASHProgrammer
 Implements methods required to program the FLASH memory. More...
 
class  IStoppedGDBTarget
 Defines methods called when the target is stopped. More...
 
struct  TargetStopRecord
 Defines the last debug event (i.e. the reason why the target was stopped) More...
 
class  ISyncGDBTarget
 Defines a GDB target. More...
 
class  MinimalTargetBase
 Provides default "not supported" implementations for optional methods of IStoppedGDBTarget. More...
 

Enumerations

enum  GDBStatus { kGDBSuccess, kGDBUnknownError, kGDBNotSupported = 0x1000 }
 Denotes a status returned by all GDB Target operations. More...
 
enum  DebugThreadMode { dtmProbe, dtmSingleStep, dtmSuspend, dtmRestore }
 Specifies the mode in which separate threads can be put before resuming execution. More...
 
enum  BreakpointType {
  bptSoftwareBreakpoint, bptHardwareBreakpoint, bptWriteWatchpoint, bptReadWatchpoint,
  bptAccessWatchpoint
}
 Enumerates all breakpoint types supported by GDB. More...
 
enum  EmbeddedMemoryType { mtRAM, mtROM, mtFLASH }
 Tells GDB about the type of a certain memory range. More...
 
enum  TargetStopReason { kUnspecified, kSignalReceived, kProcessExited, kLibraryEvent }
 Specifies the type last debug event (i.e. the reason why the target was stopped) More...
 
enum  UnixSignal {
  SIGHUP = 1, SIGINT = 2, SIGQUIT = 3, SIGILL = 4,
  SIGTRAP = 5, SIGABRT = 6, SIGIOT = 6, SIGBUS = 7,
  SIGFPE = 8, SIGKILL = 9, SIGUSR1 = 10, SIGSEGV = 11,
  SIGUSR2 = 12, SIGPIPE = 13, SIGALRM = 14, SIGTERM = 15,
  SIGSTKFLT = 16, SIGCHLD = 17, SIGCONT = 18, SIGSTOP = 19,
  SIGTSTP = 20, SIGTTIN = 21, SIGTTOU = 22, SIGURG = 23,
  SIGXCPU = 24, SIGXFSZ = 25, SIGVTALRM = 26, SIGPROF = 27,
  SIGWINCH = 28, SIGIO = 29, SIGPWR = 30, SIGSYS = 31,
  SIGUNUSED = 31
}
 Defines UNIX signal numbers expected by GDB. More...
 

Enumeration Type Documentation

Enumerates all breakpoint types supported by GDB.

Enumerator:
bptSoftwareBreakpoint 

Normal software breakpoint set with "break" command. If unsupported, GDB will implement it by writing memory manually.

bptHardwareBreakpoint 

A code breakpoint based on hardware registers set with "hbreak" command.

bptWriteWatchpoint 

A data breakpoint sensitive to writing.

bptReadWatchpoint 

A data berakpoint sensitive to reading.

bptAccessWatchpoint 

A data breakpoint sensitive to either reading or writing.

Specifies the mode in which separate threads can be put before resuming execution.

Enumerator:
dtmProbe 

Do not change anything, return either kGDBSuccess or kGDBNotSupported.

dtmSingleStep 

Put the thread into single-stepping mode.

dtmSuspend 

Keep the thread stopped until next debug event from another thread.

dtmRestore 

Restore the thread state saved in pRestoreCookie.

Tells GDB about the type of a certain memory range.

Enumerator:
mtRAM 

Normal read/write RAM memory. WriteTargetMemory() will be used to write it.

mtROM 

Read-only memory. GDB will not try to write to it and will not use software breakpoints.

mtFLASH 

FLASH memory. GDB will use the FLASH erasing/programming commands to write to this memory and will not use software breakpoints.

Denotes a status returned by all GDB Target operations.

Enumerator:
kGDBSuccess 

The operation has succeeded.

kGDBUnknownError 

The operation has failed now, but is generally supported and can be retried with different arguments.

kGDBNotSupported 

The entire command is not supported. GDB should never try this command again in this session.

Specifies the type last debug event (i.e. the reason why the target was stopped)

Enumerator:
kUnspecified 

The stop reason is unknown.

kSignalReceived 

The target has received a signal. The TargetStopRecord::Extension::SignalNumber should contain the signal (e.g. SIGTRAP for a breakpoint).

kProcessExited 

The process has exited.

kLibraryEvent 

A dynamic library has loaded or unloaded.

Defines UNIX signal numbers expected by GDB.

Enumerator:
SIGHUP 
SIGINT 
SIGQUIT 
SIGILL 
SIGTRAP 
SIGABRT 
SIGIOT 
SIGBUS 
SIGFPE 
SIGKILL 
SIGUSR1 
SIGSEGV 
SIGUSR2 
SIGPIPE 
SIGALRM 
SIGTERM 
SIGSTKFLT 
SIGCHLD 
SIGCONT 
SIGSTOP 
SIGTSTP 
SIGTTIN 
SIGTTOU 
SIGURG 
SIGXCPU 
SIGXFSZ 
SIGVTALRM 
SIGPROF 
SIGWINCH 
SIGIO 
SIGPWR 
SIGSYS 
SIGUNUSED