Module uhyvelib::gdb_parser[][src]

An implementation of the server side of the GDB Remote Serial Protocol – the protocol used by GDB and LLDB to talk to remote targets.

This library attempts to hide many of the protocol warts from server implementations. It is also mildly opinionated, in that it implements certain features itself and requires users of the library to conform. For example, it unconditionally implements the multiprocess and non-stop modes.

Protocol Documentation

Structs

Breakpoint

A descriptor for a breakpoint. The particular implementation technique of the breakpoint, hardware or software, is handled elsewhere.

Bytecode

Target-specific bytecode.

FileData

simple wrapper around File contents. TODO: extend, so we can return errors as well.

MemoryRegion

A descriptor for a region of memory.

ProcessInfo

A process identifier for LLDBs qfProcessInfo.

ThreadId

A thread identifier. In the RSP this is just a numeric handle that is passed across the wire. It needn’t correspond to any real thread or process id (though obviously it may be more convenient when it does).

Watchpoint

A descriptor for a watchpoint. The particular semantics of the watchpoint (watching memory for read or write access) are addressed elsewhere.

Enums

Error

An error as returned by a Handler method.

Id

Part of a process id.

ProcessType

The qAttached packet lets the client distinguish between attached and created processes, so that it knows whether to send a detach request when disconnecting.

Response
StopReason

The possible reasons for a thread to stop.

VCont

vCont commands

VContFeature

The name of certain vCont features to be addressed when queried for which are supported.

Traits

Handler

This trait should be implemented by servers. Methods in the trait generally default to returning Error::Unimplemented; but some exceptions are noted below. Methods that must be implemented in order for the server to work at all do not have a default implementation.

Functions

handle_packet

Handle a single packet data with handler and return response