BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more
This report presents the forensic synthetic code analysis of iovisor/bcc, a C project with 22,547 GitHub stars. SynthScan v2.0 examined 169,001 lines of code across 859 source files, recording 935 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 7.2 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 935 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/kvmexit.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/kvmexit.py | 21 | # | COMMENT |
| LOW | tools/wakeuptime.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/tcptop.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/tcpretrans.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/solisten.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/runqlen.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/runqlen.py | 61 | # struct load_weight load; | COMMENT |
| LOW | tools/cachestat.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/trace.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/funcslower.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/funcslower.py | 161 | u64 ip = PT_REGS_IP(ctx); | COMMENT |
| LOW | tools/vfscount.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/reset-trace.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/drsnoop.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/bitesize.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/pidpersec.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/funclatency.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/tcpaccept.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/numasched.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/sofdsnoop.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/bpflist.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/deadlock.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/deadlock.py | 21 | # | COMMENT |
| LOW | tools/swapin.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/mptcpify.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/cpudist.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/biotop.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/dcstat.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/tcptracer.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/tcptracer.py | 41 | help="trace IPv6 family only") | COMMENT |
| LOW | tools/biosnoop.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/threadsnoop.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/virtiostat.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/rdmaucma.py | 1 | #!/usr/bin/python | COMMENT |
| LOW | tools/mysqld_qslower.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/vfsstat.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/ext4slower.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/profile.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/profile.py | 201 | u64 ip = PT_REGS_IP(&ctx->regs); | COMMENT |
| LOW | tools/offwaketime.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/ttysnoop.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/biolatency.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/criticalstat.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/softirqslower.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/mdflush.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/wqlat.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/f2fsslower.py | 1 | #!/usr/bin/python | COMMENT |
| LOW | tools/tcpconnect.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/zfsdist.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/tcpstates.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/capable.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/tcpcong.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/oomkill.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/statsnoop.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/runqslower.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/runqslower.py | 21 | # finish_task_switch() with either raw tracepoints (if supported) or kprobes | COMMENT |
| LOW | tools/shmsnoop.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/softirqs.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | tools/filetop.py | 1 | #!/usr/bin/env python | COMMENT |
| 292 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/kvmexit.py | 31 | CODE | |
| LOW | tools/kvmexit.py | 37 | CODE | |
| LOW | tools/wakeuptime.py | 15 | CODE | |
| LOW | tools/tcptop.py | 28 | CODE | |
| LOW | tools/tcpretrans.py | 18 | CODE | |
| LOW | tools/solisten.py | 20 | CODE | |
| LOW | tools/runqlen.py | 22 | CODE | |
| LOW | tools/cachestat.py | 22 | CODE | |
| LOW | tools/cachestat.py | 27 | CODE | |
| LOW | tools/cachestat.py | 28 | CODE | |
| LOW | tools/trace.py | 14 | CODE | |
| LOW | tools/trace.py | 21 | CODE | |
| LOW | tools/funcslower.py | 24 | CODE | |
| LOW | tools/klockstat.py | 8 | CODE | |
| LOW | tools/klockstat.py | 9 | CODE | |
| LOW | tools/klockstat.py | 11 | CODE | |
| LOW | tools/klockstat.py | 13 | CODE | |
| LOW | tools/klockstat.py | 14 | CODE | |
| LOW | tools/klockstat.py | 14 | CODE | |
| LOW | tools/vfscount.py | 14 | CODE | |
| LOW | tools/drsnoop.py | 17 | CODE | |
| LOW | tools/funclatency.py | 26 | CODE | |
| LOW | tools/tcpaccept.py | 18 | CODE | |
| LOW | tools/numasched.py | 17 | CODE | |
| LOW | tools/numasched.py | 21 | CODE | |
| LOW | tools/numasched.py | 21 | CODE | |
| LOW | tools/numasched.py | 21 | CODE | |
| LOW | tools/numasched.py | 22 | CODE | |
| LOW | tools/numasched.py | 23 | CODE | |
| LOW | tools/sofdsnoop.py | 15 | CODE | |
| LOW | tools/bpflist.py | 15 | CODE | |
| LOW | tools/bpflist.py | 15 | CODE | |
| LOW | tools/bpflist.py | 19 | CODE | |
| LOW | tools/deadlock.py | 47 | CODE | |
| LOW | tools/deadlock.py | 47 | CODE | |
| LOW | tools/deadlock.py | 47 | CODE | |
| LOW | tools/deadlock.py | 47 | CODE | |
| LOW | tools/swapin.py | 18 | CODE | |
| LOW | tools/mptcpify.py | 17 | CODE | |
| LOW | tools/biopattern.py | 12 | CODE | |
| LOW | tools/cpudist.py | 19 | CODE | |
| LOW | tools/biotop.py | 19 | CODE | |
| LOW | tools/dcstat.py | 18 | CODE | |
| LOW | tools/nfsdist.py | 11 | CODE | |
| LOW | tools/tcptracer.py | 17 | CODE | |
| LOW | tools/biosnoop.py | 19 | CODE | |
| LOW | tools/threadsnoop.py | 15 | CODE | |
| LOW | tools/virtiostat.py | 14 | CODE | |
| LOW | tools/rdmaucma.py | 14 | CODE | |
| LOW | tools/rdmaucma.py | 19 | CODE | |
| LOW | tools/mysqld_qslower.py | 18 | CODE | |
| LOW | tools/vfsstat.py | 18 | CODE | |
| LOW | tools/vfsstat.py | 22 | CODE | |
| LOW | tools/ext4slower.py | 28 | CODE | |
| LOW | tools/profile.py | 31 | CODE | |
| LOW | tools/offwaketime.py | 15 | CODE | |
| LOW | tools/ttysnoop.py | 19 | CODE | |
| LOW | tools/biolatency.py | 16 | CODE | |
| LOW | tools/biolatency.py | 20 | CODE | |
| LOW | tools/criticalstat.py | 15 | CODE | |
| 269 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tools/mptcpify.py | 69 | if ((family == AF_INET || family == AF_INET6) && | CODE |
| HIGH⚡ | tools/mptcpify.py | 71 | (!protocol || protocol == IPPROTO_TCP) && | CODE |
| HIGH⚡ | tools/mptcpify.py | 72 | (mode && *mode == 0 || support_apps.lookup(&target))) | CODE |
| HIGH | tools/cpudist.py | 199 | if (ns_pid_val && ns_tgid_val) { | CODE |
| HIGH | tools/tcptracer.py | 140 | if (saddr == 0 || daddr == 0 || sport == 0 || dport == 0) { | CODE |
| HIGH | tools/tcptracer.py | 171 | if (saddr == 0 || daddr == 0 || sport == 0 || dport == 0) { | CODE |
| HIGH | tools/tcptracer.py | 293 | if (state != TCP_ESTABLISHED && state != TCP_CLOSE) { | CODE |
| HIGH | tools/tcptracer.py | 499 | if (evt4.saddr != 0 && evt4.daddr != 0 && | CODE |
| HIGH | tools/tcptracer.py | 500 | evt4.sport != 0 && evt4.dport != 0) { | CODE |
| HIGH | tools/tcptracer.py | 524 | if (evt6.saddr != 0 && evt6.daddr != 0 && | CODE |
| HIGH | tools/tcptracer.py | 525 | evt6.sport != 0 && evt6.dport != 0) { | CODE |
| HIGH | tools/criticalstat.py | 147 | if (stdp && stdp->active) { | CODE |
| HIGH | tools/tcpcong.py | 441 | 'if (lport < %d || lport > %d) { return 0; }' | STRING |
| HIGH | tools/tcpcong.py | 448 | 'if (dport < %d || dport > %d) { return 0; }' | STRING |
| HIGH | tools/runqslower.py | 92 | if (FILTER_PID || FILTER_TGID || pid == 0) | CODE |
| HIGH | tools/filetop.py | 119 | if (d_name.len == 0 || TYPE_FILTER) | CODE |
| HIGH | tools/tcplife.py | 165 | if (state == TCP_SYN_SENT || state == TCP_LAST_ACK) { | CODE |
| HIGH | tools/tcplife.py | 294 | if (args->newstate == TCP_SYN_SENT || args->newstate == TCP_LAST_ACK) { | CODE |
| HIGH | tools/inject.py | 175 | if (p->conds_met < 1 || p->conds_met >= %s) | CODE |
| HIGH | tools/inject.py | 227 | if (%s == 1 && %s && overridden < %s) { | CODE |
| HIGH | tools/inject.py | 242 | if (p->conds_met == %s && %s && overridden < %s) { | CODE |
| HIGH | tools/exitsnoop.py | 102 | if (FILTER_PID || FILTER_EXIT_CODE) { return 0; } | CODE |
| HIGH | tools/exitsnoop.py | 124 | filter_pid = "!(task->tgid == %s && task->pid == task->tgid)" % Global.args.pid | STRING |
| HIGH | tools/filegone.py | 89 | if (s_name.len == 0 || d_name.len == 0) | CODE |
| HIGH | tools/fileslower.py | 105 | if (de->d_name.len == 0 || TYPE_FILTER) | CODE |
| HIGH | tools/hardirqs.py | 180 | if (tsp == 0 || namep == 0) { | CODE |
| HIGH | tools/runqlat.py | 92 | if (FILTER || pid == 0) | CODE |
| HIGH | tools/runqlat.py | 160 | if (!(FILTER || pid == 0)) { | CODE |
| HIGH | tools/runqlat.py | 168 | if (FILTER || pid == 0) | CODE |
| HIGH | tools/runqlat.py | 214 | if (!(FILTER || pid == 0)) { | CODE |
| HIGH | tools/runqlat.py | 222 | if (FILTER || pid == 0) | CODE |
| HIGH | tools/memleak.py | 459 | size_filter = "if (size < %d || size > %d) return 0;" % \ | STRING |
| HIGH | tools/bindsnoop.py | 205 | if (ret != 0 && ignore_errors) { | CODE |
| HIGH | tools/opensnoop.py | 478 | if (filepart_length < 0 || filepart_length > NAME_MAX) | CODE |
| HIGH | tools/opensnoop.py | 484 | if (dentry == parent_dentry || dentry == mnt_root) { | CODE |
| HIGH | tools/old/filegone.py | 95 | if (s_name.len == 0 || d_name.len == 0) | CODE |
| HIGH | tools/old/hardirqs.py | 111 | if (tsp == 0 || descp == 0) { | CODE |
| HIGH | tools/old/memleak.py | 220 | size_filter = "if (size < %d || size > %d) return 0;" % \ | STRING |
| HIGH | tools/old/killsnoop.py | 63 | if (tpidp == 0 || sigp == 0) { | CODE |
| HIGH | tests/python/test_clang.py | 1320 | if (!disk || disk->major != 5 || disk->first_minor != 6) | CODE |
| HIGH | tests/python/test_queuestack.py | 24 | stack.push(ct.c_uint64(i)) | STRING |
| HIGH | tests/python/test_queuestack.py | 27 | stack.push(ct.c_uint(10)) | STRING |
| HIGH | tests/python/test_queuestack.py | 41 | stack.push(ct.c_uint64(i)) | STRING |
| HIGH | tests/python/test_queuestack.py | 57 | queue.push(ct.c_uint64(i)) | STRING |
| HIGH | tests/python/test_queuestack.py | 60 | queue.push(ct.c_uint(10)) | STRING |
| HIGH | tests/python/test_queuestack.py | 74 | queue.push(ct.c_uint64(i)) | STRING |
| HIGH | examples/tracing/nflatency.py | 108 | if (!s || s->ts == 0) { | CODE |
| HIGH | examples/tracing/dddos.py | 60 | if(rcv_packets_nb_ptr != 0 && rcv_packets_ts_ptr != 0){ | CODE |
| HIGH | examples/networking/vlan_learning/vlan_learning.py | 69 | "for i in {1..8}; do curl 172.16.1.5 -o /dev/null; sleep 1; done"] | CODE |
| HIGH | examples/networking/tunnel_monitor/main.py | 43 | self.processes.append(NSPopen(host[0].nl.netns, cmd, stdout=null)) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/nfsdist.py | 0 | examples: ./xfsdist # show operation latency as a histogram ./xfsdist -p 181 # trace pid 181 only ./xfsdist 1 10 # print | STRING |
| HIGH | tools/zfsdist.py | 0 | examples: ./xfsdist # show operation latency as a histogram ./xfsdist -p 181 # trace pid 181 only ./xfsdist 1 10 # print | STRING |
| HIGH | tools/ext4dist.py | 0 | examples: ./xfsdist # show operation latency as a histogram ./xfsdist -p 181 # trace pid 181 only ./xfsdist 1 10 # print | STRING |
| HIGH | tools/btrfsdist.py | 0 | examples: ./xfsdist # show operation latency as a histogram ./xfsdist -p 181 # trace pid 181 only ./xfsdist 1 10 # print | STRING |
| HIGH | tools/xfsdist.py | 0 | examples: ./xfsdist # show operation latency as a histogram ./xfsdist -p 181 # trace pid 181 only ./xfsdist 1 10 # print | STRING |
| HIGH | tools/nfsdist.py | 0 | #include <uapi/linux/ptrace.h> #include <linux/fs.h> #include <linux/sched.h> #define op_name_len 8 typedef struct dist_ | STRING |
| HIGH | tools/zfsdist.py | 0 | #include <uapi/linux/ptrace.h> #include <linux/fs.h> #include <linux/sched.h> #define op_name_len 8 typedef struct dist_ | STRING |
| HIGH | tools/xfsdist.py | 0 | #include <uapi/linux/ptrace.h> #include <linux/fs.h> #include <linux/sched.h> #define op_name_len 8 typedef struct dist_ | STRING |
| HIGH | tools/ext4slower.py | 0 | examples: ./zfsslower # trace operations slower than 10 ms (default) ./zfsslower 1 # trace operations slower than 1 ms . | STRING |
| HIGH | tools/f2fsslower.py | 0 | examples: ./zfsslower # trace operations slower than 10 ms (default) ./zfsslower 1 # trace operations slower than 1 ms . | STRING |
| HIGH | tools/xfsslower.py | 0 | examples: ./zfsslower # trace operations slower than 10 ms (default) ./zfsslower 1 # trace operations slower than 1 ms . | STRING |
| HIGH | tools/zfsslower.py | 0 | examples: ./zfsslower # trace operations slower than 10 ms (default) ./zfsslower 1 # trace operations slower than 1 ms . | STRING |
| HIGH | tests/python/simulation.py | 0 | helper class for controlling multiple namespaces. inherit from this class and setup your namespaces. | STRING |
| HIGH | examples/networking/simulation.py | 0 | helper class for controlling multiple namespaces. inherit from this class and setup your namespaces. | STRING |
| HIGH | examples/networking/vlan_learning/simulation.py | 0 | helper class for controlling multiple namespaces. inherit from this class and setup your namespaces. | STRING |
| HIGH | examples/networking/distributed_bridge/simulation.py | 0 | helper class for controlling multiple namespaces. inherit from this class and setup your namespaces. | STRING |
| HIGH | examples/networking/neighbor_sharing/simulation.py | 0 | helper class for controlling multiple namespaces. inherit from this class and setup your namespaces. | STRING |
| HIGH | examples/networking/tunnel_monitor/simulation.py | 0 | helper class for controlling multiple namespaces. inherit from this class and setup your namespaces. | STRING |
| HIGH | docs/reference_guide.md | 0 | int hello(void *ctx) { bpf_trace_printk("hello, world!\\n"); return 0; } | STRING |
| HIGH | docs/tutorial_bcc_python_developer.md | 0 | int hello(void *ctx) { bpf_trace_printk("hello, world!\\n"); return 0; } | STRING |
| HIGH | examples/tracing/trace_fields.py | 0 | int hello(void *ctx) { bpf_trace_printk("hello, world!\\n"); return 0; } | STRING |
| HIGH | examples/tracing/hello_fields.py | 0 | int hello(void *ctx) { bpf_trace_printk("hello, world!\\n"); return 0; } | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/kvmexit.py | 364 | except Exception as e: | STRING |
| MEDIUM | tools/funclatency.py | 80 | print("Error: " + error) | STRING |
| LOW | tools/deadlock.py | 507 | except Exception as e: | STRING |
| LOW | tools/deadlock.py | 518 | except Exception as e: | STRING |
| MEDIUM | tools/ppchcalls.py | 293 | print("Error: hcall '%s' not found. Exiting." % args.hcall) | CODE |
| LOW | tools/ppchcalls.py | 451 | except Exception: | STRING |
| MEDIUM | tools/ppchcalls.py | 239 | def handle_errno(errstr): | CODE |
| LOW | tools/threadsnoop.py | 59 | except Exception: | STRING |
| LOW | tools/profile.py | 333 | except Exception: | STRING |
| LOW | tools/criticalstat.py | 325 | except Exception: | STRING |
| MEDIUM | tools/criticalstat.py | 299 | def print_event(cpu, data, size): | CODE |
| MEDIUM | tools/tcpconnect.py | 353 | print("Error: you may not specify -d/--dns with -c/--count.") | STRING |
| MEDIUM | tools/tcpconnect.py | 486 | print("Error: The python packages dnslib and cachetools are required " | STRING |
| MEDIUM | tools/filetop.py | 186 | print(f'Error accessing directory {args.directory}: {e}') | STRING |
| LOW | tools/funccount.py | 309 | except Exception: | STRING |
| LOW | tools/llcstat.py | 98 | except Exception: | STRING |
| LOW | tools/exitsnoop.py | 215 | except Exception as e: | CODE |
| LOW | tools/execsnoop.py | 353 | except Exception: | STRING |
| LOW | tools/fileslower.py | 205 | except Exception: | STRING |
| LOW | tools/fileslower.py | 212 | except Exception: | STRING |
| MEDIUM | tools/syscount.py | 104 | print("Error: syscall '%s' not found. Exiting." % args.syscall) | CODE |
| LOW | tools/syscount.py | 265 | except Exception: | STRING |
| MEDIUM | tools/syscount.py | 37 | def handle_errno(errstr): | CODE |
| LOW | tools/biolatpcts.py | 125 | except Exception: | STRING |
| MEDIUM | tools/funcinterval.py | 70 | print("Error: " + error) | STRING |
| LOW | tools/memleak.py | 494 | except Exception: | STRING |
| LOW | tools/stackcount.py | 386 | except Exception: | STRING |
| LOW | tools/lib/ustat.py | 75 | except Exception: | CODE |
| LOW | tests/python/test_attach_perf_event.py | 60 | except Exception: | STRING |
| LOW | tests/python/test_attach_perf_event.py | 106 | except Exception: | STRING |
| LOW | tests/python/test_attach_perf_event.py | 151 | except Exception: | STRING |
| LOW | tests/python/test_clang.py | 869 | except Exception: | STRING |
| LOW | tests/python/test_bpf_log.py | 51 | except Exception: | STRING |
| LOW | tests/python/test_bpf_log.py | 61 | except Exception: | STRING |
| MEDIUM | examples/tracing/lbr.py | 132 | print('Error tracepoint or kretprobe is required') | STRING |
| MEDIUM | examples/tracing/lbr.py | 141 | print('Error binary path is invalid') | STRING |
| LOW | examples/networking/tcp_mon_block/src/web_server.py | 23 | except Exception as e: | CODE |
| MEDIUM | examples/networking/tcp_mon_block/src/web_server.py | 20 | def public_ip(): | CODE |
| LOW | .github/scripts/check_links.py | 30 | except Exception as e: | CODE |
| MEDIUM | src/python/bcc/__init__.py | 1831 | print("Error adding module to build sym cache"+str(e)) | CODE |
| LOW | src/python/bcc/__init__.py | 443 | except Exception as e: | CODE |
| LOW | src/python/bcc/__init__.py | 451 | except Exception as e: | CODE |
| LOW | src/python/bcc/__init__.py | 1598 | except Exception as e: | CODE |
| LOW | src/python/bcc/__init__.py | 1613 | except Exception as e: | CODE |
| LOW | src/python/bcc/__init__.py | 1830 | except Exception as e: | CODE |
| LOW | src/python/bcc/syscall.py | 467 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/kvmexit.py | 443 | def extract_pcpu_kvm_exit_reason_count(args): | STRING |
| LOW | tools/runqlen.py | 81 | def check_runnable_weight_field(): | STRING |
| LOW | tools/trace.py | 420 | def _generate_usdt_filter_read(self): | STRING |
| LOW | tools/deadlock.py | 139 | def strongly_connected_components(G): | CODE |
| LOW | tools/statsnoop.py | 171 | def try_attach_syscall_probes(syscall): | STRING |
| LOW | tools/cpuunclaimed.py | 123 | def check_runnable_weight_field(): | STRING |
| LOW | tools/argdist.py | 113 | def _generate_retprobe_prefix(self): | STRING |
| LOW | tools/argdist.py | 298 | def _generate_usdt_arg_assignment(self, i): | STRING |
| LOW | tools/argdist.py | 310 | def _generate_field_assignment(self, i): | STRING |
| LOW | tools/memleak.py | 562 | def print_outstanding_combined(): | STRING |
| LOW | tools/tplist.py | 66 | def print_usdt_argument_details(location): | CODE |
| LOW | tests/python/test_attach_perf_event.py | 17 | def test_attach_raw_event_powerpc(self): | CODE |
| LOW | tests/python/test_map_batch_ops.py | 64 | def test_lookup_and_delete_batch_all_keys(self): | CODE |
| LOW | tests/python/test_map_batch_ops.py | 76 | def test_lookup_batch_all_keys(self): | CODE |
| LOW | tests/python/test_map_batch_ops.py | 84 | def test_delete_batch_all_keys(self): | CODE |
| LOW | tests/python/test_map_batch_ops.py | 105 | def test_update_batch_all_keys(self): | CODE |
| LOW | tests/python/test_array.py | 76 | def test_perf_buffer_for_each_cpu(self): | STRING |
| LOW | tests/python/test_clang.py | 438 | def test_probe_simple_member_assign(self): | CODE |
| LOW | tests/python/test_clang.py | 451 | def test_probe_member_expr_deref(self): | CODE |
| LOW | tests/python/test_clang.py | 58 | def test_load_cgroup_sockopt_prog(self): | STRING |
| LOW | tests/python/test_clang.py | 272 | def test_consecutive_probe_read(self): | STRING |
| LOW | tests/python/test_clang.py | 307 | def test_nested_probe_read_deref(self): | STRING |
| LOW | tests/python/test_clang.py | 361 | def test_probe_unnamed_union_deref(self): | STRING |
| LOW | tests/python/test_clang.py | 492 | def test_probe_read_nested_deref(self): | STRING |
| LOW | tests/python/test_clang.py | 771 | def test_ext_ptr_maps_reverse(self): | STRING |
| LOW | tests/python/test_clang.py | 800 | def test_ext_ptr_maps_indirect(self): | STRING |
| LOW | tests/python/test_clang.py | 830 | def test_bpf_dins_pkt_rewrite(self): | STRING |
| LOW | tests/python/test_clang.py | 963 | def test_invalid_noninline_call(self): | STRING |
| LOW | tests/python/test_clang.py | 1041 | def test_probe_read_tracepoint_context(self): | STRING |
| LOW | tests/python/test_clang.py | 1051 | def test_probe_read_kprobe_ctx(self): | STRING |
| LOW | tests/python/test_clang.py | 1064 | def test_probe_read_ctx_array(self): | STRING |
| LOW | tests/python/test_clang.py | 1110 | def test_probe_read_multiple_return(self): | STRING |
| LOW | tests/python/test_clang.py | 1130 | def test_probe_read_return_expr(self): | STRING |
| LOW | tests/python/test_clang.py | 1145 | def test_probe_read_return_call(self): | STRING |
| LOW | tests/python/test_clang.py | 1159 | def test_no_probe_read_addrof(self): | STRING |
| LOW | tests/python/test_clang.py | 1264 | def test_arbitrary_increment_simple(self): | STRING |
| LOW | tests/python/test_map_in_map.py | 92 | def test_hash_table_custom_key(self): | STRING |
| LOW | tests/python/test_license.py | 75 | def test_gpl_compatible_macro(self): | STRING |
| LOW | tests/python/test_license.py | 79 | def test_proprietary_words_macro(self): | STRING |
| LOW | tests/python/test_license.py | 99 | def test_proprietary_fail_macro(self): | STRING |
| LOW | tests/python/test_license.py | 104 | def test_proprietary_cflags_fail(self): | STRING |
| LOW | tests/python/test_disassembler.py | 154 | def _assert_equal_ignore_fd_id(s1, s2): | CODE |
| LOW | examples/tracing/strlen_hist_ifunc.py | 46 | def get_indirect_function_sym(module, symname): | STRING |
| LOW | src/python/bcc/containers.py | 15 | def _cgroup_filter_func_writer(cgroupmap): | CODE |
| LOW | src/python/bcc/containers.py | 34 | def _mntns_filter_func_writer(mntnsmap): | STRING |
| LOW | src/python/bcc/__init__.py | 929 | def detach_kprobe_event_by_fn(self, ev_name, fn_name): | CODE |
| LOW | src/python/bcc/__init__.py | 1271 | def support_raw_tracepoint_in_module(): | CODE |
| LOW | src/python/bcc/__init__.py | 1390 | def get_user_functions_and_addresses(name, sym_re): | CODE |
| LOW | src/python/bcc/table.py | 453 | def _sanity_check_keys_values(self, keys=None, values=None): | CODE |
| LOW | src/python/bcc/table.py | 548 | def items_lookup_and_delete_batch(self): | CODE |
| LOW | src/python/bcc/table.py | 563 | def _items_lookup_and_optionally_delete_batch(self, delete=True): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/trace.py | 386 | CODE | |
| LOW | tools/deadlock.py | 139 | CODE | |
| LOW | tools/deadlock.py | 194 | CODE | |
| LOW | tools/deadlock.py | 389 | CODE | |
| LOW | tools/inject.py | 379 | CODE | |
| LOW | tools/inject.py | 464 | CODE | |
| LOW | tools/nfsslower.py | 384 | CODE | |
| LOW | tools/funccount.py | 37 | CODE | |
| LOW | tools/funccount.py | 89 | CODE | |
| LOW | tools/funccount.py | 118 | CODE | |
| LOW | tools/execsnoop.py | 303 | CODE | |
| LOW | tools/execsnoop.py | 314 | CODE | |
| LOW | tools/cachetop.py | 143 | CODE | |
| LOW | tools/dirtop.py | 144 | CODE | |
| LOW | tools/argdist.py | 514 | CODE | |
| LOW | tools/biolatpcts.py | 215 | CODE | |
| LOW | tools/mountsnoop.py | 683 | CODE | |
| LOW | tools/stackcount.py | 30 | CODE | |
| LOW | tools/stackcount.py | 315 | CODE | |
| LOW | tools/opensnoop.py | 562 | CODE | |
| LOW | tests/python/test_debuginfo.py | 12 | CODE | |
| LOW | examples/networking/http_filter/http-parse-complete.py | 38 | CODE | |
| LOW | examples/networking/distributed_bridge/tunnel_mesh.py | 41 | CODE | |
| LOW | examples/networking/tunnel_monitor/main.py | 29 | CODE | |
| LOW | src/python/bcc/disassembler.py | 234 | CODE | |
| LOW | src/python/bcc/disassembler.py | 355 | CODE | |
| LOW | src/python/bcc/__init__.py | 345 | CODE | |
| LOW | src/python/bcc/__init__.py | 603 | CODE | |
| LOW | src/python/bcc/__init__.py | 719 | CODE | |
| LOW | src/python/bcc/__init__.py | 1038 | CODE | |
| LOW | src/python/bcc/__init__.py | 1540 | CODE | |
| LOW | src/python/bcc/table.py | 273 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/python/bcc/table.py | 419 | Allocate keys and/or values arrays. Useful for in items_*_batch. Args: alloc_k (bool): True to allo | STRING |
| HIGH | src/python/bcc/table.py | 454 | Check if the given keys or values have the right type and size. Args: keys (ct.Array): keys array t | STRING |
| HIGH | src/python/bcc/table.py | 484 | Look up all the key-value pairs in the map. Args: None Yields: tuple: The tuple | STRING |
| HIGH | src/python/bcc/table.py | 498 | Delete the key-value pairs related to the keys given as parameters. Note that if no key are given, it is faster | STRING |
| HIGH | src/python/bcc/table.py | 549 | Look up and delete all the key-value pairs in the map. Args: None Yields: tuple | STRING |
| HIGH | src/python/bcc/table.py | 564 | Look up and optionally delete all the key-value pairs in the map. Args: delete (bool) : look up and | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/tcptop.py | 13 | # WARNING: This traces all send/receives at the TCP level, and while it | COMMENT |
| LOW | tools/funcslower.py | 10 | # WARNING: This tool traces function calls by instrumenting the entry and | COMMENT |
| LOW | tools/ext4slower.py | 13 | # WARNING: This adds low-overhead instrumentation to these ext4 operations, | COMMENT |
| LOW | tools/f2fsslower.py | 14 | # WARNING: This adds low-overhead instrumentation to these f2fs operations, | COMMENT |
| LOW | tools/nfsslower.py | 15 | # WARNING: This adds low-overhead instrumentation to these NFS operations, | COMMENT |
| LOW | tools/xfsslower.py | 13 | # WARNING: This adds low-overhead instrumentation to these XFS operations, | COMMENT |
| LOW | tools/fileslower.py | 20 | # WARNING: This traces VFS reads and writes, which can be extremely frequent, | COMMENT |
| LOW | tools/tcpsubnet.py | 14 | # WARNING: This traces all send at the TCP level, and while it | COMMENT |
| LOW | tools/btrfsslower.py | 13 | # WARNING: This adds low-overhead instrumentation to these btrfs operations, | COMMENT |
| LOW | tools/zfsslower.py | 13 | # WARNING: This adds low-overhead instrumentation to these ZFS operations, | COMMENT |
| LOW | tools/old/tcptop.py | 12 | # WARNING: This traces all send/receives at the TCP level, and while it | COMMENT |
| LOW⚡ | .github/prompts/review-pr.prompt.md | 5 | ## Step 1: Identify Changed File Categories | COMMENT |
| LOW⚡ | .github/prompts/review-pr.prompt.md | 13 | ## Step 2: General Checks (All PRs) | COMMENT |
| LOW⚡ | .github/prompts/review-pr.prompt.md | 19 | ## Step 3: Category-Specific Checks | COMMENT |
| LOW | .github/prompts/review-pr.prompt.md | 59 | ## Step 4: Output Format | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/python/simulation.py | 23 | CODE | |
| LOW | tests/python/simulation.py | 105 | CODE | |
| LOW | examples/networking/simulation.py | 23 | CODE | |
| LOW | examples/networking/simulation.py | 105 | CODE | |
| LOW | examples/networking/vlan_learning/simulation.py | 23 | CODE | |
| LOW | examples/networking/vlan_learning/simulation.py | 105 | CODE | |
| LOW | examples/networking/distributed_bridge/simulation.py | 23 | CODE | |
| LOW | examples/networking/distributed_bridge/simulation.py | 105 | CODE | |
| LOW | examples/networking/neighbor_sharing/simulation.py | 23 | CODE | |
| LOW | examples/networking/neighbor_sharing/simulation.py | 105 | CODE | |
| LOW | examples/networking/tunnel_monitor/simulation.py | 23 | CODE | |
| LOW | examples/networking/tunnel_monitor/simulation.py | 105 | CODE | |
| LOW | src/python/bcc/__init__.py | 411 | CODE | |
| LOW | src/python/bcc/__init__.py | 1323 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/runqlen.py | 82 | # Define the bpf program for checking purpose | STRING |
| MEDIUM | tools/tcpaccept.py | 97 | # The following code uses kprobes to instrument inet_csk_accept(). | STRING |
| MEDIUM | tools/tcptracer.py | 11 | # The following code should be replaced, and simplified, when static TCP probes | COMMENT |
| MEDIUM | tools/cpuunclaimed.py | 124 | # Define the bpf program for checking purpose | STRING |
| MEDIUM | tools/execsnoop.py | 108 | # Define the bpf program for checking purpose | STRING |
| MEDIUM | …les/networking/neighbor_sharing/tc_neighbor_sharing.py | 29 | # Create the wan namespace, and attach an ingress filter for throttling | COMMENT |
| MEDIUM | src/python/bcc/table.py | 667 | # The above code assumes that self.Key._fields_[1][0] holds the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/exitsnoop.py | 182 | # ============================= | COMMENT |
| MEDIUM | tools/exitsnoop.py | 184 | # ============================= | COMMENT |
| MEDIUM | tools/exitsnoop.py | 245 | # ============================= | COMMENT |
| MEDIUM | tools/exitsnoop.py | 247 | # ============================= | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/killsnoop.py | 155 | pass # not fatal error, just use the default value | STRING |
| MEDIUM | examples/tracing/stack_buildid_example.py | 77 | # libc.so and ping are added here so that any symbols pertaining to | STRING |
| LOW | examples/networking/vlan_filter/data-plane-tracing.py | 94 | #get interface ip address. In case ip is not set then just add 127.0.0.1. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/bcc-test.yml | 241 | # To debug weird issues, you can add this step to be able to SSH to the test environment | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/kvmexit.py | 359 | # Check if kvm module is loaded | STRING |
| LOW | scripts/docker/auth.sh | 15 | # Set this to match the name of the bot user on quay.io | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/networking/tcp_mon_block/src/tcp_mon_block.py | 9 | # Usage: | COMMENT |