parse error " 8@x0 4@[x21, #:lo12:.LANCHOR2] " on aarch64
- 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