aarch64 perf 因双重释放或损坏而中止 (!prev)

问题描述

当我使用 perf 工具分析我的业务流程时,它中止了!

只是碰巧抓到了我的业务流程数据,其他流程正常。

我不知道原因。

我的程序有问题吗?如何调试?

如何正常使用perf record?

感谢您的帮助。 谢谢大家

环境:

# uname -a
Linux rk3326_64 4.4.194 #6 SMP Tue Jun 15 19:28:51 CST 2021 aarch64 GNU/Linux

# perf --version
perf version 4.4.194

perf top 命令和响应

# perf top -p <pid>
double free or corruption (!prev)
Aborted

perf 记录命令

# because this version perf doesn't support --sleep (specify the acquisition time ),so I use Ctrl-C to stop the perf command. when I stopped(Ctrl-C),it was aborted
# perf record -F 100 -p <pid>
double free or corruption (!prev)
Aborted

我在设备上打开 coredump。核心转储

核心转储文件名:core-perf-14092-6-1624288344

# gdb /usr/bin/perf ./core-perf-14092-6-1624288344
...
Core was generated by `perf top -p 12789'.
Program terminated with signal SIGABRT,Aborted.
#0  0x0000007f7f2692b8 in raise () from /lib/libc.so.6
[Current thread is 1 (LWP 14092)]
(gdb) #0  0x0000007f7f2692b8 in raise () from /lib/libc.so.6
#1  0x0000007f7f2579d4 in abort () from /lib/libc.so.6
#2  0x0000007f7f2a2040 in ?? () from /lib/libc.so.6
#3  0x0000007f7f2a862c in ?? () from /lib/libc.so.6
#4  0x0000007f7f2aa094 in ?? () from /lib/libc.so.6
#5  0x00000000004c46a4 in ?? ()
#6  0x000000000047a1b0 in ?? ()
#7  0x000000000048ab5c in ?? ()
#8  0x0000000000456520 in ?? ()
#9  0x000000000041ba68 in ?? ()
#10 0x000000000041d99c in ?? ()
#11 0x000000000044c5fc in ?? ()
#12 0x00000000004061c0 in ?? ()
#13 0x0000007f7f257e34 in __libc_start_main () from /lib/libc.so.6
#14 0x00000000004062ec in ?? ()
Backtrace stopped: not enough registers or memory available to unwind further

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)