From 105ee65a32d8c2ab456d7b246d3e8808b07880c4 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 28 Feb 2024 01:08:12 +0200 Subject: can print out all fd syscall traces --- internal/generated/nqc.raku | 14 +++++++++++--- internal/generated/types/types.go | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 4 deletions(-) (limited to 'internal/generated') diff --git a/internal/generated/nqc.raku b/internal/generated/nqc.raku index a975df6..835365f 100644 --- a/internal/generated/nqc.raku +++ b/internal/generated/nqc.raku @@ -73,13 +73,13 @@ class NQCToGoActions { {$.map(*.made).join('; ')} \} - {self!struct-go-string-method($/)} + {self!struct-go-methods($/)} {($.made.ends-with('Event') ?? "\n" ~ self!struct-go-sync-pool($/) !! '')} END } - # Generate String() method on the Go struct, for pretty printing. - method !struct-go-string-method($/) returns Str { + # Generate String() and other methods on the Go struct, for pretty printing. + method !struct-go-methods($/) returns Str { my Str $self-ref = $.lc.substr(0,1); my Str @format = $.map({ $_..made ~ ':%v' }); @@ -93,6 +93,14 @@ class NQCToGoActions { func ($self-ref {$.made}) String() string \{ return fmt.Sprintf("{@format.join(' ')}", {@args.join(', ')}) \} + + func ($self-ref *{$.made}) TID() uint32 \{ + return $self-ref.Tid + \} + + func ($self-ref *{$.made}) Timestamp() uint32 \{ + return $self-ref.Time + \} END } diff --git a/internal/generated/types/types.go b/internal/generated/types/types.go index e3f89db..e52bad0 100644 --- a/internal/generated/types/types.go +++ b/internal/generated/types/types.go @@ -155,6 +155,14 @@ func (o OpenEnterEvent) String() string { return fmt.Sprintf("EventType:%v SyscallId:%v Pid:%v Tid:%v Time:%v Filename:%v Comm:%v", o.EventType, o.SyscallId, o.Pid, o.Tid, o.Time, string(o.Filename[:]), string(o.Comm[:])) } +func (o *OpenEnterEvent) TID() uint32 { + return o.Tid +} + +func (o *OpenEnterEvent) Timestamp() uint32 { + return o.Time +} + var poolOfOpenEnterEvents = sync.Pool{ New: func() interface{} { return &OpenEnterEvent{} }, } @@ -184,6 +192,14 @@ func (n NullEvent) String() string { return fmt.Sprintf("EventType:%v SyscallId:%v Pid:%v Tid:%v Time:%v", n.EventType, n.SyscallId, n.Pid, n.Tid, n.Time) } +func (n *NullEvent) TID() uint32 { + return n.Tid +} + +func (n *NullEvent) Timestamp() uint32 { + return n.Time +} + var poolOfNullEvents = sync.Pool{ New: func() interface{} { return &NullEvent{} }, } @@ -214,6 +230,14 @@ func (f FdEvent) String() string { return fmt.Sprintf("EventType:%v SyscallId:%v Pid:%v Tid:%v Time:%v Fd:%v", f.EventType, f.SyscallId, f.Pid, f.Tid, f.Time, f.Fd) } +func (f *FdEvent) TID() uint32 { + return f.Tid +} + +func (f *FdEvent) Timestamp() uint32 { + return f.Time +} + var poolOfFdEvents = sync.Pool{ New: func() interface{} { return &FdEvent{} }, } @@ -237,13 +261,21 @@ type RetEvent struct { Pid uint32 Tid uint32 Time uint32 - Ret uint64 + Ret int64 } func (r RetEvent) String() string { return fmt.Sprintf("EventType:%v SyscallId:%v Pid:%v Tid:%v Time:%v Ret:%v", r.EventType, r.SyscallId, r.Pid, r.Tid, r.Time, r.Ret) } +func (r *RetEvent) TID() uint32 { + return r.Tid +} + +func (r *RetEvent) Timestamp() uint32 { + return r.Time +} + var poolOfRetEvents = sync.Pool{ New: func() interface{} { return &RetEvent{} }, } -- cgit v1.2.3