# 現環境

eBPFの環境構築を以下のページを参考にして、動かしています。

[ubuntu 20.04.3 LTS
でeBPFをインストール](https://qiita.com/hayama17/items/d06d11c47f1803cc9e1d)

```

    uname -a
    Linux *** 5.4.0-156-generic #173-Ubuntu SMP Tue Jul 11 07:25:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
    
```

# 困っていること

参照したページに掲載のコードを以下の通り実行するとエラーが出てきます。  
少し変えて動かしたり、他のコードを動かしても同じようなエラーが出てしまいます。

**実行結果:**

```

    $ sudo -E python3 hello_world.py
    bpf: Argument list too long. Program  too large (0 insns), at most 4096 insns
    
    Traceback (most recent call last):
      File "hello_world.py", line 18, in <module>
        b.attach_kprobe(event=b.get_syscall_fnname("clone"), fn_name="hello")
      File "/usr/lib/python3/dist-packages/bcc-0.28.0+173282d3-py3.8.egg/bcc/__init__.py", line 851, in attach_kprobe
      File "/usr/lib/python3/dist-packages/bcc-0.28.0+173282d3-py3.8.egg/bcc/__init__.py", line 526, in load_func
    Exception: Failed to load BPF program b'hello': Argument list too long
    
```

エラーの内容も以下の通りで意味不明なので、どうすればいいのかわかりません。  
よろしくお願いいたします。

```

    Argument list too long. Program  too large (0 insns), at most 4096 insns
    
```

**実行したコード:**

```

    #!/usr/bin/python
    #
    # This is a Hello World example that formats output as fields.
    
    from bcc import BPF
    from bcc.utils import printb
    
    # define BPF program
    prog = """
    int hello(void *ctx) {
        bpf_trace_printk("Hello, World!\\n");
        return 0;
    }
    """
    
    # load BPF program
    b = BPF(text=prog)
    b.attach_kprobe(event=b.get_syscall_fnname("clone"), fn_name="hello")
    
    # header
    print("%-18s %-16s %-6s %s" % ("TIME(s)", "COMM", "PID", "MESSAGE"))
    
    # format output
    while 1:
        try:
            (task, pid, cpu, flags, ts, msg) = b.trace_fields()
        except ValueError:
            continue
        except KeyboardInterrupt:
            exit()
        printb(b"%-18.9f %-16s %-6d %s" % (ts, task, pid, msg))
    
```
CC BY-SA 4.0
2023-08-24T05:40:27.357
96032
2023-08-24T07:56:02.290
2023-08-24T07:56:02.290
3060
58699
question
python linux c security
eBPFのサンプルコード実行時に Argument list too long