python: With DEBUG_BPF, print BPF error even if log_buf is not empty.
authorQuentin Monnet <quentin.monnet@6wind.com>
Thu, 9 Jun 2016 12:55:29 +0000 (14:55 +0200)
committerQuentin Monnet <quentin.monnet@6wind.com>
Mon, 13 Jun 2016 09:04:45 +0000 (11:04 +0200)
When BPF syscall fails and DEBUG_FLAG has been provided to a Python
caller script, the BPF error string would be printed only if log_buf had
not been filled by the kernel. This commit removes this requirement,
printing the error string even if log_buf is not empty.

Signed-off-by: Quentin Monnet <quentin.monnet@6wind.com>
src/python/bcc/__init__.py

index b9259df..882e43a 100644 (file)
@@ -211,7 +211,7 @@ class BPF(object):
             print(log_buf.value.decode(), file=sys.stderr)
 
         if fd < 0:
-            if self.debug & DEBUG_BPF and not log_buf.value:
+            if self.debug & DEBUG_BPF:
                 errstr = os.strerror(ct.get_errno())
                 raise Exception("Failed to load BPF program %s: %s" %
                                 (func_name, errstr))