0

When I use perf tool to analyze my business process,It's abborted!

It's only happens to capture my business process data, other processes are normal.

I don't konw the reason.

Is there a bug with my program? how to debug?

How to use perf record normally?

Thanks for the help. Thanks Evenyone

env:

# 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 command and response

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

perf record command

# 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

I open coredump on the device. coredump

coredump filename: 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
raikken
  • 1
  • 1
  • 4
  • This may help! https://stackoverflow.com/q/2902064/260313 – rturrado Jun 23 '21 at 15:12
  • 1
    *Core was generated by `perf top -p 12789`.* - That means it's perf that crashed, not your program. That means it's a bug in perf: it shouldn't crash no matter what the process it's profiling does. – Peter Cordes Jun 23 '21 at 15:37
  • raikken, this looks like some bug in your version of perf. You should try newer version of perf program. It is distributed as part of linux kernel, so you can update linux kernel and its tools including perf and use newer perf with recent kernel. Or you can try new version of perf with your version of linux kernel, there is limited cross-compatibility in perf_events interface. – osgx Jul 02 '21 at 04:14

0 Answers0