tools: remove redundant Python event data structure definitions (#2204)
Simplify code following #2198 (https://github.com/iovisor/bcc/pull/2198).
Some tools are not touched: mountsnoop.py, trace.py, lib/*.py, old/*.py.
diff --git a/tools/bashreadline.py b/tools/bashreadline.py
index da9c1b7..af4f18e 100755
--- a/tools/bashreadline.py
+++ b/tools/bashreadline.py
@@ -14,7 +14,6 @@
from __future__ import print_function
from bcc import BPF
from time import strftime
-import ctypes as ct
# load BPF program
bpf_text = """
@@ -40,13 +39,6 @@
return 0;
};
"""
-STR_DATA = 80
-
-class Data(ct.Structure):
- _fields_ = [
- ("pid", ct.c_ulonglong),
- ("str", ct.c_char * STR_DATA)
- ]
b = BPF(text=bpf_text)
b.attach_uretprobe(name="/bin/bash", sym="readline", fn_name="printret")
@@ -55,7 +47,7 @@
print("%-9s %-6s %s" % ("TIME", "PID", "COMMAND"))
def print_event(cpu, data, size):
- event = ct.cast(data, ct.POINTER(Data)).contents
+ event = b["events"].event(data)
print("%-9s %-6d %s" % (strftime("%H:%M:%S"), event.pid,
event.str.decode('utf-8', 'replace')))