Skip to content

Commit 97eaeca

Browse files
authored
Fix event name too long error in python source (#5271)
When the event name is too long, such as p:uprobes/p__proc_124566_root_usr_lib64_libruby_so_3_2_2_0xda3ac_124566_bcc_131967, an error will occur when executing the write function of function create_probe_event. The kernel error path is probes_write trace_parse_run_command create_or_delete_trace_uprobe trace_uprobe_create trace_probe_create __trace_uprobe_create traceprobe_parse_event_name else if (len >= MAX_EVENT_NAME_LEN) Requires less than 64 bytes. Signed-off-by: Feng Yang <[email protected]>
1 parent 6ea2a0e commit 97eaeca

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/python/bcc/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1365,11 +1365,11 @@ def sym_cb(sym_name, addr):
13651365

13661366
def _get_uprobe_evname(self, prefix, path, addr, pid):
13671367
if pid == -1:
1368-
return b"%s_%s_0x%x" % (prefix, self._probe_repl.sub(b"_", path), addr)
1368+
return b"%s_%s_0x%x" % (prefix, self._probe_repl.sub(b"_", os.path.basename(path)), addr)
13691369
else:
13701370
# if pid is valid, put pid in the name, so different pid
13711371
# can have different event names
1372-
return b"%s_%s_0x%x_%d" % (prefix, self._probe_repl.sub(b"_", path), addr, pid)
1372+
return b"%s_%s_0x%x_%d" % (prefix, self._probe_repl.sub(b"_", os.path.basename(path)), addr, pid)
13731373

13741374
def attach_uprobe(self, name=b"", sym=b"", sym_re=b"", addr=None,
13751375
fn_name=b"", pid=-1, sym_off=0):

0 commit comments

Comments
 (0)