diff --git a/.gitignore b/.gitignore index d2d414be409d..fc3c07169d22 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +# Editor's files *.swp *.swo *.pyc + +# Build artefacts +/build/ diff --git a/INSTALL.md b/INSTALL.md index fa9451426d60..2ff9b23bc304 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -112,12 +112,15 @@ To build the toolchain from source, one needs: ### Install build dependencies ``` +# Trusty and older VER=trusty echo "deb http://llvm.org/apt/$VER/ llvm-toolchain-$VER-3.7 main deb-src http://llvm.org/apt/$VER/ llvm-toolchain-$VER-3.7 main" | \ sudo tee /etc/apt/sources.list.d/llvm.list wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add - sudo apt-get update + +# All versions sudo apt-get -y install bison build-essential cmake flex git libedit-dev \ libllvm3.7 llvm-3.7-dev libclang-3.7-dev python zlib1g-dev ``` diff --git a/README.md b/README.md index 7097cf149390..5a1f68ee350c 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,10 @@ many possible capabilities. See [INSTALL.md](INSTALL.md) for installation steps on your platform. +## FAQ + +See [FAQ.txt](FAQ.txt) for the most common troubleshoot questions. + ## Contents Some of these are single files that contain both C and Python, others have a diff --git a/examples/tracing/tcpv4connect.py b/examples/tracing/tcpv4connect.py index b5a10626b3c8..6841115e4010 100755 --- a/examples/tracing/tcpv4connect.py +++ b/examples/tracing/tcpv4connect.py @@ -62,7 +62,7 @@ bpf_probe_read(&dport, sizeof(dport), &skp->__sk_common.skc_dport); // output - bpf_trace_printk("%x %x %d\\n", saddr, daddr, ntohs(dport)); + bpf_trace_printk("trace_tcp4connect %x %x %d\\n", saddr, daddr, ntohs(dport)); currsock.delete(&pid); @@ -86,10 +86,19 @@ def inet_ntoa(addr): addr = addr >> 8 return dq -# format output +# filter and format output while 1: - (task, pid, cpu, flags, ts, msg) = b.trace_fields() - (saddr_hs, daddr_hs, dport_s) = msg.split(" ") + # Read messages from kernel pipe + try: + (task, pid, cpu, flags, ts, msg) = b.trace_fields() + (_tag, saddr_hs, daddr_hs, dport_s) = msg.split(" ") + except ValueError: + # Ignore messages from other tracers + continue + + # Ignore messages from other tracers + if _tag != "trace_tcp4connect": + continue print("%-6d %-12.12s %-16s %-16s %-4s" % (pid, task, inet_ntoa(int(saddr_hs, 16)),