#bpfsnoop 读取任意内核内存:
s grep __per_cpu_offset /proc/kallsyms
ffffffffaf260d40 D __per_cpu_offset
s ./bpfsnoop --read 'slice((unsigned long *)0xffffffffaf260d40, 2)'
Expr: slice((unsigned long *)0xffffffffaf260d40, 2)
Out: (long unsigned int)'slice((unsigned long *)0xffffffffaf260d40, 2)'=[18446613494905176064,18446614319517925376]
不再依赖 gdb/drgn 等工具来读取内核数据了。
#bpfsnoop
s grep __per_cpu_offset /proc/kallsyms
ffffffffaf260d40 D __per_cpu_offset
s ./bpfsnoop --read 'slice((unsigned long *)0xffffffffaf260d40, 2)'
Expr: slice((unsigned long *)0xffffffffaf260d40, 2)
Out: (long unsigned int)'slice((unsigned long *)0xffffffffaf260d40, 2)'=[18446613494905176064,18446614319517925376]
不再依赖 gdb/drgn 等工具来读取内核数据了。
#bpfsnoop