summaryrefslogtreecommitdiff
path: root/internal/generate/tracepointsgo.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/generate/tracepointsgo.go')
-rw-r--r--internal/generate/tracepointsgo.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/internal/generate/tracepointsgo.go b/internal/generate/tracepointsgo.go
index 47c2e8f..bc44b2f 100644
--- a/internal/generate/tracepointsgo.go
+++ b/internal/generate/tracepointsgo.go
@@ -10,7 +10,7 @@ import (
)
var secRe = regexp.MustCompile(`^SEC.*sys_((?:enter|exit)_[a-z_0-9]+)`)
-var kindLineRe = regexp.MustCompile(`^(sys_enter_[a-z0-9_]+)\s+is a struct\s+([a-z0-9_]+)(?:\s+.*)?$`)
+var kindLineRe = regexp.MustCompile(`^(sys_enter_[a-z0-9_]+)\s+is a struct\s+([a-z0-9_]+)(?:.*\(kind=([a-z0-9-]+)\))?\s*$`)
// ExtractTracepoints reads generated C code and extracts tracepoint names from
// SEC annotations, producing the generated_tracepoints.go content.
@@ -66,7 +66,10 @@ func extractSyscallKinds(r io.Reader) (map[string]string, error) {
continue
}
syscall := strings.TrimPrefix(m[1], "sys_enter_")
- kind := normalizeStructKind(m[2])
+ kind := strings.TrimSpace(m[3])
+ if kind == "" {
+ kind = normalizeStructKind(m[2])
+ }
if kind == "" {
continue
}