iovisor / iovisor/bcc

parse error " 8@x0 4@[x21, #:lo12:.LANCHOR2] " on aarch64

Open
#4,185 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
22.7k
Forks
4.1k
Avg merge
10d 4h
Merged PRs (30d)
3

Description

When I run "bpftrace -l 'usdt:/usr/bin/bash:*' -p $$" on aarch64, there is parse error as follows:

Parse error:
8@x0 4@[x21, #:lo12:.LANCHOR2]
Parse error:
8@x0 8@[x1, #:lo12:.LANCHOR0] -4@[x2, 52]
Parse error:
8@x0 8@[x2, #:lo12:.LANCHOR2]
Parse error:
8@x20 8@[x1, #:lo12:.LANCHOR2]
Parse error:
8@x20 8@[x22, #:lo12:.LANCHOR0] -4@[x0, 52]

The libbpf, bcc ,bpftrace I use are all the latest code. I compiled and installed them from source code.
bpftrace info shows:
########
_System
OS: Linux 5.19.0-rc3-c2c #1 SMP Fri Jul 29 10:47:58 UTC 2022
Arch: aarch64

Build
version: v0.15.0-85-g14ec-dirty
LLVM: 12.0.0
ORC: v2
foreach_sym: yes
unsafe uprobe: no
bfd: yes
bcc_usdt_addsem: yes
bcc bpf_attach_uprobe refcount: yes
bcc library path resolution: yes
libbpf btf dump: yes
libbpf btf dump type decl: yes
libbpf bpf_prog_load: yes
libbpf bpf_map_create: yes
libdw (DWARF support): no

Kernel helpers
probe_read: yes
probe_read_str: yes
probe_read_user: yes
probe_read_user_str: yes
probe_read_kernel: yes
probe_read_kernel_str: yes
get_current_cgroup_id: yes
send_signal: yes
override_return: yes
get_boot_ns: yes
dpath: yes
skboutput: no

Kernel features
Instruction limit: 1000000
Loop support: yes
btf: yes
map batch: yes
uprobe refcount (depends on Build:bcc bpf_attach_uprobe refcount): yes

Map types
hash: yes
percpu hash: yes
array: yes
percpu array: yes
stack_trace: yes
perf_event_array: yes

Probe types
kprobe: yes
tracepoint: yes
perf_event: yes
kfunc: yes
iter:task: yes
iter:task_file: yes
kprobe_multi: no
raw_tp_special: yes_
######

And I checked usdt_args.cc, there is no related code to parse "#:lo12:.LANCHOR2". But I'm not sure if it's the root cause. Would there be some fix about this?

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the reported command on aarch64 with the stated bpftrace, BCC, libbpf, LLVM, and kernel context. Start by tracing how USDT arguments reach usdt_args.cc and how the displayed AArch64 expressions are parsed. Done means the command no longer reports parse errors for these inputs, with regression coverage for the affected expressions.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
operating-systems, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.