proc,service,terminal: add events call use it for dld notifications (#3980)

Add a GetEvents method that can be used to retrieve debug events, adds
events for downloading debug info through debuginfod and shows those
events in the command line client as well as console messages in DAP.

In the future this events mechanism can be used to unify EBPF
tracepoints with old style tracepoints.

Update #3906
This commit is contained in:
Alessandro Arzilli
2025-08-04 17:12:48 +02:00
committed by GitHub
parent be3019a9eb
commit 17acdb87a7
17 changed files with 267 additions and 35 deletions

View File

@ -411,6 +411,10 @@ type DebuggerCommand struct {
// Expr is the expression argument for a Call command
Expr string `json:"expr,omitempty"`
// If WithEvents is set events are generated that should be read by calling
// GetEvents.
WithEvents bool
// UnsafeCall disables parameter escape checking for function calls.
// Go objects can be allocated on the stack or on the heap. Heap objects
// can be used by any goroutine; stack objects can only be used by the
@ -684,3 +688,22 @@ type GuessSubstitutePathIn struct {
ClientGOROOT string
ClientModuleDirectories map[string]string
}
// Event is an event that happened during execution of the debugged program.
type Event struct {
Kind EventKind
*BinaryInfoDownloadEventDetails
}
type EventKind uint8
const (
EventResumed EventKind = iota
EventStopped
EventBinaryInfoDownload
)
// BinaryInfoDownloadEventDetails describes the details of a BinaryInfoDownloadEvent
type BinaryInfoDownloadEventDetails struct {
ImagePath, Progress string
}