Tools fixes (#2009)
* tools: the argument of get_kprobe_functions() should be a bytes object
It fixes the following error:
Traceback (most recent call last):
File "/usr/share/bcc/tools/ext4dist", line 189, in <module>
if BPF.get_kprobe_functions('ext4_file_read_iter'):
File "/usr/lib/python3.6/site-packages/bcc/__init__.py", line 519, in get_kprobe_functions
if (t.lower() in [b't', b'w']) and re.match(event_re, fn) \
File "/usr/lib64/python3.6/re.py", line 172, in match
return _compile(pattern, flags).match(string)
TypeError: cannot use a string pattern on a bytes-like object
* tools: fix freeze in offwaketime
Since commit 47cecb65ce6e, the sigint signal is ignored
unconditionally which prevents offwaketime to be stopped by
pressing Ctrl-C when run without a specified duration.
diff --git a/tools/offwaketime.py b/tools/offwaketime.py
index 674be22..0e4f35e 100755
--- a/tools/offwaketime.py
+++ b/tools/offwaketime.py
@@ -277,11 +277,13 @@
else:
print("... Hit Ctrl-C to end.")
-# as cleanup can take many seconds, trap Ctrl-C:
-# print a newline for folded output on Ctrl-C
-signal.signal(signal.SIGINT, signal_ignore)
+try:
+ sleep(duration)
+except KeyboardInterrupt:
+ # as cleanup can take many seconds, trap Ctrl-C:
+ # print a newline for folded output on Ctrl-C
+ signal.signal(signal.SIGINT, signal_ignore)
-sleep(duration)
if not folded:
print()