|
8 | 8 | "fmt"
|
9 | 9 |
|
10 | 10 | "github.com/cilium/ebpf"
|
11 |
| - "github.com/cilium/ebpf/btf" |
12 | 11 | "golang.org/x/sys/unix"
|
13 | 12 | )
|
14 | 13 |
|
@@ -47,26 +46,15 @@ func getEntryFuncName(prog *ebpf.Program) (string, string, error) {
|
47 | 46 | return "", "", fmt.Errorf("failed to get program info: %w", err)
|
48 | 47 | }
|
49 | 48 |
|
50 |
| - id, ok := info.BTFID() |
51 |
| - if !ok { |
52 |
| - return "", "", fmt.Errorf("bpf program %s does not have BTF", info.Name) |
53 |
| - } |
54 |
| - |
55 |
| - handle, err := btf.NewHandleFromID(id) |
56 |
| - if err != nil { |
57 |
| - return "", "", fmt.Errorf("failed to get BTF handle: %w", err) |
58 |
| - } |
59 |
| - defer handle.Close() |
60 |
| - |
61 |
| - spec, err := handle.Spec(nil) |
| 49 | + insns, err := info.Instructions() |
62 | 50 | if err != nil {
|
63 |
| - return "", "", fmt.Errorf("failed to get BTF spec: %w", err) |
| 51 | + return "", "", fmt.Errorf("failed to get program instructions: %w", err) |
64 | 52 | }
|
65 | 53 |
|
66 |
| - iter := spec.Iterate() |
67 |
| - for iter.Next() { |
68 |
| - if fn, ok := iter.Type.(*btf.Func); ok { |
69 |
| - return fn.Name, info.Name, nil |
| 54 | + for _, insn := range insns { |
| 55 | + sym := insn.Symbol() |
| 56 | + if sym != "" { |
| 57 | + return sym, info.Name, nil |
70 | 58 | }
|
71 | 59 | }
|
72 | 60 |
|
|
0 commit comments