浏览代码

require either `debugfs` or `tracefs` to be mounted

Nikolay Sivko 2 年之前
父节点
当前提交
4e9a6fc2f0
共有 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 {
 		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))