Преглед на файлове

Merge pull request #78 from coroot/tracefs

require either `debugfs` or `tracefs` to be mounted
Nikolay Sivko преди 2 години
родител
ревизия
58f0336ded
променени са 1 файла, в които са добавени 4 реда и са изтрити 2 реда
  1. 4 2
      ebpftracer/tracer.go

+ 4 - 2
ebpftracer/tracer.go

@@ -170,9 +170,11 @@ func (t *Tracer) ebpf(ch chan<- Event) error {
 	if len(prg) == 0 {
 	if len(prg) == 0 {
 		return fmt.Errorf("unsupported kernel version: %s", t.kernelVersion)
 		return fmt.Errorf("unsupported kernel version: %s", t.kernelVersion)
 	}
 	}
+	_, debugFsErr := os.Stat("/sys/kernel/debug/tracing")
+	_, traceFsErr := os.Stat("/sys/kernel/tracing")
 
 
-	if _, err := os.Stat("/sys/kernel/debug/tracing"); err != nil {
-		return fmt.Errorf("kernel tracing is not available: %w", err)
+	if debugFsErr != nil && traceFsErr != nil {
+		return fmt.Errorf("kernel tracing is not available: debugfs or tracefs must be mounted")
 	}
 	}
 
 
 	collectionSpec, err := ebpf.LoadCollectionSpecFromReader(bytes.NewReader(prg))
 	collectionSpec, err := ebpf.LoadCollectionSpecFromReader(bytes.NewReader(prg))