trace_libc_inet_pton_backtrace() {
        idx=0
-       expected[0]="PING.*bytes"
-       expected[1]="64 bytes from ::1.*"
-       expected[2]=".*ping statistics.*"
-       expected[3]=".*packets transmitted.*"
-       expected[4]="rtt min.*"
-       expected[5]="[0-9]+\.[0-9]+[[:space:]]+probe_libc:inet_pton:\([[:xdigit:]]+\)"
-       expected[6]=".*inet_pton[[:space:]]\($libc|inlined\)$"
+       expected[0]="ping[][0-9 \.:]+probe_libc:inet_pton: \([[:xdigit:]]+\)"
+       expected[1]=".*inet_pton[[:space:]]\($libc\)$"
        case "$(uname -m)" in
        s390x)
                eventattr='call-graph=dwarf'
-               expected[7]="gaih_inet.*[[:space:]]\($libc|inlined\)$"
-               expected[8]="__GI_getaddrinfo[[:space:]]\($libc|inlined\)$"
-               expected[9]="main[[:space:]]\(.*/bin/ping.*\)$"
-               expected[10]="__libc_start_main[[:space:]]\($libc\)$"
-               expected[11]="_start[[:space:]]\(.*/bin/ping.*\)$"
+               expected[2]="gaih_inet.*[[:space:]]\($libc|inlined\)$"
+               expected[3]="__GI_getaddrinfo[[:space:]]\($libc|inlined\)$"
+               expected[4]="main[[:space:]]\(.*/bin/ping.*\)$"
+               expected[5]="__libc_start_main[[:space:]]\($libc\)$"
+               expected[6]="_start[[:space:]]\(.*/bin/ping.*\)$"
                ;;
        *)
                eventattr='max-stack=3'
-               expected[7]="getaddrinfo[[:space:]]\($libc\)$"
-               expected[8]=".*\(.*/bin/ping.*\)$"
+               expected[2]="getaddrinfo[[:space:]]\($libc\)$"
+               expected[3]=".*\(.*/bin/ping.*\)$"
                ;;
        esac
 
-       perf trace --no-syscalls -e probe_libc:inet_pton/$eventattr/ ping -6 -c 1 ::1 2>&1 | grep -v ^$ | while read line ; do
+       file=`mktemp -u /tmp/perf.data.XXX`
+
+       perf record -e probe_libc:inet_pton/$eventattr/ -o $file ping -6 -c 1 ::1 > /dev/null 2>&1
+       perf script -i $file | while read line ; do
                echo $line
                echo "$line" | egrep -q "${expected[$idx]}"
                if [ $? -ne 0 ] ; then
                let idx+=1
                [ -z "${expected[$idx]}" ] && break
        done
+
+       rm -f $file
 }
 
 # Check for IPv6 interface existence