lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YRLf0+ij2rNLvdRj@kernel.org>
Date:   Tue, 10 Aug 2021 17:21:39 -0300
From:   Arnaldo Carvalho de Melo <acme@...nel.org>
To:     Adrian Hunter <adrian.hunter@...el.com>
Cc:     Jiri Olsa <jolsa@...hat.com>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 5/5] perf tools: Add dlfilter test

Em Tue, Aug 10, 2021 at 10:06:13PM +0300, Adrian Hunter escreveu:
> On 10/08/21 9:32 pm, Arnaldo Carvalho de Melo wrote:
> > Em Tue, Aug 10, 2021 at 02:48:13PM +0300, Adrian Hunter escreveu:
> >> Add a perf test to test the dlfilter C API.
> >>
> >> A perf.data file is synthesized and then processed by perf script with a
> >> dlfilter named dlfilter-test-api-v0.so. Also a C file is compiled to
> >> provide a dso to match the synthesized perf.data file.
> > 
> > [root@...e ~]# perf test dlfilter
> > 72: dlfilter C API                                                  : FAILED!
> > [root@...e ~]# perf test -v dlfilter
> > 72: dlfilter C API                                                  :
> > --- start ---
> > test child forked, pid 3358542
> > Checking for gcc
> > Command: gcc --version
> > gcc (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)
> > Copyright (C) 2021 Free Software Foundation, Inc.
> > This is free software; see the source for copying conditions.  There is NO
> > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> > 
> > dlfilters path: /var/home/acme/libexec/perf-core/dlfilters
> > Command: gcc -g -o /tmp/dlfilter-test-3358542-prog /tmp/dlfilter-test-3358542-prog.c
> > Creating new host machine structure
> > Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3358542-perf-data --dlfilter /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so --dlarg first --dlarg 1 --dlarg 4198669 --dlarg 4198662 --dlarg 0 --dlarg last
> > Failed with return value 139
> > test child finished with -1
> > ---- end ----
> > dlfilter C API: FAILED!
> > [root@...e ~]# cat /etc/redhat-release
> > Fedora release 34 (Thirty Four)
> > [root@...e ~]# cat /etc/os-release
> > NAME=Fedora
> > VERSION="34.20210721.0 (Silverblue)"
> > ID=fedora
> > VERSION_ID=34
> > VERSION_CODENAME=""
> > PLATFORM_ID="platform:f34"
> > PRETTY_NAME="Fedora 34.20210721.0 (Silverblue)"
> > ANSI_COLOR="0;38;2;60;110;180"
> > LOGO=fedora-logo-icon
> > CPE_NAME="cpe:/o:fedoraproject:fedora:34"
> > HOME_URL="https://fedoraproject.org/"
> > DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora-silverblue/"
> > SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
> > BUG_REPORT_URL="https://bugzilla.redhat.com/"
> > REDHAT_BUGZILLA_PRODUCT="Fedora"
> > REDHAT_BUGZILLA_PRODUCT_VERSION=34
> > REDHAT_SUPPORT_PRODUCT="Fedora"
> > REDHAT_SUPPORT_PRODUCT_VERSION=34
> > PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
> > VARIANT="Silverblue"
> > VARIANT_ID=silverblue
> > OSTREE_VERSION='34.20210721.0'
> > [root@...e ~]#
> > 
> > Trying to figure this out...
> 
> What does it give with two 'v''s ?
> i.e.
> 
> perf test -vv dlfilter

What I've tried so far:

[root@...e ~]# perf probe -x /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so -F
called.0
called.5
check_addr_al
check_al
check_attr
check_sample
completed.0
deregister_tm_clones
do_checks
filt_dat
filter_description
filter_description
filter_event
filter_event
filter_event_early
filter_event_early
frame_dummy
perf_dlfilter_fns
perf_dlfilter_fns
register_tm_clones
start
start
stop
stop
test_fail
verbose
[root@...e ~]# perf probe -l
  probe_dlfilter:check_addr_al (on check_addr_al in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
  probe_dlfilter:check_al (on check_al in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
  probe_dlfilter:check_attr (on check_attr in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
  probe_dlfilter:check_sample (on check_sample in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
  probe_dlfilter:filter_description (on filter_description in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
  probe_dlfilter:filter_event (on filter_event in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
  probe_dlfilter:filter_event_early (on filter_event_early in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
  probe_dlfilter:start (on start in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
  probe_dlfilter:stop  (on stop in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
  probe_dlfilter:test_fail (on test_fail in /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
[root@...e ~]# perf trace -e probe_dlfilter:*/max-stack=10/ perf test -v dlfilter
72: dlfilter C API                                                  :
--- start ---
test child forked, pid 3360902
Checking for gcc
Command: gcc --version
gcc (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

dlfilters path: /var/home/acme/libexec/perf-core/dlfilters
Command: gcc -g -o /tmp/dlfilter-test-3360902-prog /tmp/dlfilter-test-3360902-prog.c
     0.000 perf/3360902 probe_dlfilter:filter_description(__probe_ip: 140448631966717)
                                       filter_description (/var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
                                       test__dlfilter (/var/home/acme/bin/perf)
                                       test_and_print (/var/home/acme/bin/perf)
                                       cmd_test (/var/home/acme/bin/perf)
                                       run_builtin (/var/home/acme/bin/perf)
                                       main (/var/home/acme/bin/perf)
                                       __libc_start_main (/usr/lib64/libc-2.33.so)
Creating new host machine structure
Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3360902-perf-data --dlfilter /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so --dlarg first --dlarg 1 --dlarg 4198669 --dlarg 4198662 --dlarg 0 --dlarg last
Failed with return value 139
test child finished with -1
---- end ----
dlfilter C API: FAILED!
[root@...e ~]# perf trace -e probe_dlfilter:*/max-stack=10/ perf test -vv dlfilter
72: dlfilter C API                                                  :
--- start ---
test child forked, pid 3360986
Checking for gcc
Command: gcc --version
     0.000 :3360986/3360986 probe_dlfilter:filter_description(__probe_ip: 140709239057405)
                                       filter_description (/var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
                                       [0] ([unknown])
                                       [0] ([unknown])
                                       [0] ([unknown])
                                       [0] ([unknown])
                                       [0] ([unknown])
                                       [0] ([unknown])
gcc (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

dlfilters path: /var/home/acme/libexec/perf-core/dlfilters
Command: cat /tmp/dlfilter-test-3360986-prog.c ; echo
int bar(){};int foo(){bar();};int main(){foo();return 0;}
Command: gcc -g -o /tmp/dlfilter-test-3360986-prog /tmp/dlfilter-test-3360986-prog.c
Creating new host machine structure
Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3360986-perf-data -D

0 [0x90]: event: 64
.
. ... raw event: size 144 bytes
.  0000:  40 00 00 00 00 00 90 00 00 00 00 00 80 00 00 00  @...............
.  0010:  04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00  ................
.  0020:  8f 03 01 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
.  0030:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
.  0040:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
.  0050:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
.  0060:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
.  0070:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
.  0080:  00 00 00 00 00 00 00 00 63 00 00 00 00 00 00 00  ........c.......

-1 -1 0 [0x90]: PERF_RECORD_ATTR
0x90 [0x20]: event: 3
.
. ... raw event: size 32 bytes
.  0000:  03 00 00 00 02 00 20 00 39 30 00 00 3a 30 00 00  ...... .90..:0..
.  0010:  74 65 73 74 2d 70 72 6f 67 00 00 00 00 00 00 00  test-prog.......

-1 -1 0x90 [0x20]: PERF_RECORD_COMM: test-prog:12345/12346

0xb0 [0x48]: event: 1
.
. ... raw event: size 72 bytes
.  0000:  01 00 00 00 02 00 48 00 39 30 00 00 3a 30 00 00  ......H.90..:0..
.  0010:  00 00 40 00 00 00 00 00 00 00 01 00 00 00 00 00  ..@.............
.  0020:  00 00 00 00 00 00 00 00 2f 74 6d 70 2f 64 6c 66  ......../tmp/dlf
.  0030:  69 6c 74 65 72 2d 74 65 73 74 2d 33 33 36 30 39  ilter-test-33609
.  0040:  38 36 2d 70 72 6f 67 00                          86-prog.        

-1 -1 0xb0 [0x48]: PERF_RECORD_MMAP 12345/12346: [0x400000(0x10000) @ 0]: x /tmp/dlfilter-test-3360986-prog

0xf8 [0x48]: event: 9
.
. ... raw event: size 72 bytes
.  0000:  09 00 00 00 02 00 48 00 63 00 00 00 00 00 00 00  ......H.c.......
.  0010:  0d 11 40 00 00 00 00 00 39 30 00 00 3a 30 00 00  ..@.....90..:0..
.  0020:  d2 02 96 49 00 00 00 00 06 11 40 00 00 00 00 00  <D2>..I......@.....
.  0030:  65 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00  e...............
.  0040:  39 c3 60 20 00 00 00 00                          9<C3>` ....        

31 1234567890 0xf8 [0x48]: PERF_RECORD_SAMPLE(IP, 0x2): 12345/12346: 0x40110d period: 543212345 addr: 0x401106
 ... thread: test-prog:12346
 ...... dso: /tmp/dlfilter-test-3360986-prog
       test-prog 12346 [031]     1.234567:  543212345 branches:HG:            40110d foo+0x0 (/tmp/dlfilter-test-3360986-prog) =>           401106 bar+0x0 (/tmp/dlfilter-test-3360986-prog)
Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3360986-perf-data --dlfilter /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so --dlarg first --dlarg 2 --dlarg 4198669 --dlarg 4198662 --dlarg 0 --dlarg last
Failed with return value 139
test child finished with -1
---- end ----
dlfilter C API: FAILED!
[root@...e ~]# fg
-bash: fg: current: no such job
[root@...e ~]# ls -la /tmp/dlfilter-test-3360986-perf-data
ls: cannot access '/tmp/dlfilter-test-3360986-perf-data': No such file or directory
[root@...e ~]# ls -la /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so
-rwxr-xr-x. 2 acme acme 17352 Aug 10 15:31 /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so
[root@...e ~]# perf trace -e probe_dlfilter:*/max-stack=10/ perf test -vvv dlfilter
72: dlfilter C API                                                  :
--- start ---
test child forked, pid 3361199
Checking for gcc
Command: gcc --version
gcc (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

dlfilters path: /var/home/acme/libexec/perf-core/dlfilters
Command: cat /tmp/dlfilter-test-3361199-prog.c ; echo
int bar(){};int foo(){bar();};int main(){foo();return 0;}
Command: gcc -g -o /tmp/dlfilter-test-3361199-prog /tmp/dlfilter-test-3361199-prog.c
     0.000 perf/3361199 probe_dlfilter:filter_description(__probe_ip: 140125348678653)
                                       filter_description (/var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so)
                                       test__dlfilter (/var/home/acme/bin/perf)
                                       test_and_print (/var/home/acme/bin/perf)
                                       cmd_test (/var/home/acme/bin/perf)
                                       run_builtin (/var/home/acme/bin/perf)
                                       main (/var/home/acme/bin/perf)
                                       __libc_start_main (/usr/lib64/libc-2.33.so)
Command: objdump -x -dS /tmp/dlfilter-test-3361199-prog

/tmp/dlfilter-test-3361199-prog:     file format elf64-x86-64
/tmp/dlfilter-test-3361199-prog
architecture: i386:x86-64, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0000000000401020

Program Header:
    PHDR off    0x0000000000000040 vaddr 0x0000000000400040 paddr 0x0000000000400040 align 2**3
         filesz 0x00000000000002d8 memsz 0x00000000000002d8 flags r--
  INTERP off    0x0000000000000318 vaddr 0x0000000000400318 paddr 0x0000000000400318 align 2**0
         filesz 0x000000000000001c memsz 0x000000000000001c flags r--
    LOAD off    0x0000000000000000 vaddr 0x0000000000400000 paddr 0x0000000000400000 align 2**12
         filesz 0x0000000000000498 memsz 0x0000000000000498 flags r--
    LOAD off    0x0000000000001000 vaddr 0x0000000000401000 paddr 0x0000000000401000 align 2**12
         filesz 0x00000000000001c5 memsz 0x00000000000001c5 flags r-x
    LOAD off    0x0000000000002000 vaddr 0x0000000000402000 paddr 0x0000000000402000 align 2**12
         filesz 0x0000000000000158 memsz 0x0000000000000158 flags r--
    LOAD off    0x0000000000002e50 vaddr 0x0000000000403e50 paddr 0x0000000000403e50 align 2**12
         filesz 0x00000000000001cc memsz 0x00000000000001d0 flags rw-
 DYNAMIC off    0x0000000000002e60 vaddr 0x0000000000403e60 paddr 0x0000000000403e60 align 2**3
         filesz 0x0000000000000190 memsz 0x0000000000000190 flags rw-
    NOTE off    0x0000000000000338 vaddr 0x0000000000400338 paddr 0x0000000000400338 align 2**3
         filesz 0x0000000000000020 memsz 0x0000000000000020 flags r--
    NOTE off    0x0000000000000358 vaddr 0x0000000000400358 paddr 0x0000000000400358 align 2**2
         filesz 0x0000000000000044 memsz 0x0000000000000044 flags r--
0x6474e553 off    0x0000000000000338 vaddr 0x0000000000400338 paddr 0x0000000000400338 align 2**3
         filesz 0x0000000000000020 memsz 0x0000000000000020 flags r--
EH_FRAME off    0x0000000000002010 vaddr 0x0000000000402010 paddr 0x0000000000402010 align 2**2
         filesz 0x0000000000000044 memsz 0x0000000000000044 flags r--
   STACK off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**4
         filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
   RELRO off    0x0000000000002e50 vaddr 0x0000000000403e50 paddr 0x0000000000403e50 align 2**0
         filesz 0x00000000000001b0 memsz 0x00000000000001b0 flags r--

Dynamic Section:
  NEEDED               libc.so.6
  INIT                 0x0000000000401000
  FINI                 0x00000000004011b8
  INIT_ARRAY           0x0000000000403e50
  INIT_ARRAYSZ         0x0000000000000008
  FINI_ARRAY           0x0000000000403e58
  FINI_ARRAYSZ         0x0000000000000008
  GNU_HASH             0x00000000004003a0
  STRTAB               0x0000000000400408
  SYMTAB               0x00000000004003c0
  STRSZ                0x0000000000000038
  SYMENT               0x0000000000000018
  DEBUG                0x0000000000000000
  RELA                 0x0000000000400468
  RELASZ               0x0000000000000030
  RELAENT              0x0000000000000018
  VERNEED              0x0000000000400448
  VERNEEDNUM           0x0000000000000001
  VERSYM               0x0000000000400440

Version References:
  required from libc.so.6:
    0x09691a75 0x00 02 GLIBC_2.2.5

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
  0 .interp       0000001c  0000000000400318  0000000000400318  00000318  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  1 .note.gnu.property 00000020  0000000000400338  0000000000400338  00000338  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .note.gnu.build-id 00000024  0000000000400358  0000000000400358  00000358  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  3 .note.ABI-tag 00000020  000000000040037c  000000000040037c  0000037c  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  4 .gnu.hash     0000001c  00000000004003a0  00000000004003a0  000003a0  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  5 .dynsym       00000048  00000000004003c0  00000000004003c0  000003c0  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  6 .dynstr       00000038  0000000000400408  0000000000400408  00000408  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  7 .gnu.version  00000006  0000000000400440  0000000000400440  00000440  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  8 .gnu.version_r 00000020  0000000000400448  0000000000400448  00000448  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  9 .rela.dyn     00000030  0000000000400468  0000000000400468  00000468  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
 10 .init         0000001b  0000000000401000  0000000000401000  00001000  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
 11 .text         00000195  0000000000401020  0000000000401020  00001020  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
 12 .fini         0000000d  00000000004011b8  00000000004011b8  000011b8  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
 13 .rodata       00000010  0000000000402000  0000000000402000  00002000  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
 14 .eh_frame_hdr 00000044  0000000000402010  0000000000402010  00002010  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
 15 .eh_frame     00000100  0000000000402058  0000000000402058  00002058  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
 16 .init_array   00000008  0000000000403e50  0000000000403e50  00002e50  2**3
                  CONTENTS, ALLOC, LOAD, DATA
 17 .fini_array   00000008  0000000000403e58  0000000000403e58  00002e58  2**3
                  CONTENTS, ALLOC, LOAD, DATA
 18 .dynamic      00000190  0000000000403e60  0000000000403e60  00002e60  2**3
                  CONTENTS, ALLOC, LOAD, DATA
 19 .got          00000010  0000000000403ff0  0000000000403ff0  00002ff0  2**3
                  CONTENTS, ALLOC, LOAD, DATA
 20 .got.plt      00000018  0000000000404000  0000000000404000  00003000  2**3
                  CONTENTS, ALLOC, LOAD, DATA
 21 .data         00000004  0000000000404018  0000000000404018  00003018  2**0
                  CONTENTS, ALLOC, LOAD, DATA
 22 .bss          00000004  000000000040401c  000000000040401c  0000301c  2**0
                  ALLOC
 23 .comment      0000002e  0000000000000000  0000000000000000  0000301c  2**0
                  CONTENTS, READONLY
 24 .gnu.build.attributes 00001978  0000000000406020  0000000000406020  0000304c  2**2
                  CONTENTS, READONLY, OCTETS
 25 .debug_aranges 00000030  0000000000000000  0000000000000000  000049c4  2**0
                  CONTENTS, READONLY, DEBUGGING, OCTETS
 26 .debug_info   00000090  0000000000000000  0000000000000000  000049f4  2**0
                  CONTENTS, READONLY, DEBUGGING, OCTETS
 27 .debug_abbrev 0000006a  0000000000000000  0000000000000000  00004a84  2**0
                  CONTENTS, READONLY, DEBUGGING, OCTETS
 28 .debug_line   00000065  0000000000000000  0000000000000000  00004aee  2**0
                  CONTENTS, READONLY, DEBUGGING, OCTETS
 29 .debug_str    00000050  0000000000000000  0000000000000000  00004b53  2**0
                  CONTENTS, READONLY, DEBUGGING, OCTETS
 30 .debug_line_str 0000002d  0000000000000000  0000000000000000  00004ba3  2**0
                  CONTENTS, READONLY, DEBUGGING, OCTETS
SYMBOL TABLE:
0000000000400318 l    d  .interp	0000000000000000              .interp
0000000000400338 l    d  .note.gnu.property	0000000000000000              .note.gnu.property
0000000000400358 l    d  .note.gnu.build-id	0000000000000000              .note.gnu.build-id
000000000040037c l    d  .note.ABI-tag	0000000000000000              .note.ABI-tag
00000000004003a0 l    d  .gnu.hash	0000000000000000              .gnu.hash
00000000004003c0 l    d  .dynsym	0000000000000000              .dynsym
0000000000400408 l    d  .dynstr	0000000000000000              .dynstr
0000000000400440 l    d  .gnu.version	0000000000000000              .gnu.version
0000000000400448 l    d  .gnu.version_r	0000000000000000              .gnu.version_r
0000000000400468 l    d  .rela.dyn	0000000000000000              .rela.dyn
0000000000401000 l    d  .init	0000000000000000              .init
0000000000401020 l    d  .text	0000000000000000              .text
00000000004011b8 l    d  .fini	0000000000000000              .fini
0000000000402000 l    d  .rodata	0000000000000000              .rodata
0000000000402010 l    d  .eh_frame_hdr	0000000000000000              .eh_frame_hdr
0000000000402058 l    d  .eh_frame	0000000000000000              .eh_frame
0000000000403e50 l    d  .init_array	0000000000000000              .init_array
0000000000403e58 l    d  .fini_array	0000000000000000              .fini_array
0000000000403e60 l    d  .dynamic	0000000000000000              .dynamic
0000000000403ff0 l    d  .got	0000000000000000              .got
0000000000404000 l    d  .got.plt	0000000000000000              .got.plt
0000000000404018 l    d  .data	0000000000000000              .data
000000000040401c l    d  .bss	0000000000000000              .bss
0000000000000000 l    d  .comment	0000000000000000              .comment
0000000000406020 l    d  .gnu.build.attributes	0000000000000000              .gnu.build.attributes
0000000000000000 l    d  .debug_aranges	0000000000000000              .debug_aranges
0000000000000000 l    d  .debug_info	0000000000000000              .debug_info
0000000000000000 l    d  .debug_abbrev	0000000000000000              .debug_abbrev
0000000000000000 l    d  .debug_line	0000000000000000              .debug_line
0000000000000000 l    d  .debug_str	0000000000000000              .debug_str
0000000000000000 l    d  .debug_line_str	0000000000000000              .debug_line_str
0000000000000000 l    df *ABS*	0000000000000000              /usr/lib/gcc/x86_64-redhat-linux/11/../../../../lib64/crt1.o
000000000040104f l       .text	0000000000000000              .hidden .annobin_lto
000000000040104f l       .text	0000000000000000              .hidden .annobin_lto_end
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto.hot
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto_end.hot
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto.unlikely
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto_end.unlikely
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto.startup
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto_end.startup
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto.exit
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto_end.exit
000000000040037c l     O .note.ABI-tag	0000000000000020              __abi_tag
000000000040104f l       .text	0000000000000000              .hidden .annobin_lto
000000000040104f l       .text	0000000000000000              .hidden .annobin_lto_end
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto.hot
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto_end.hot
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto.unlikely
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto_end.unlikely
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto.startup
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto_end.startup
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto.exit
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto_end.exit
0000000000401050 l       .text	0000000000000000              .hidden .annobin_lto
0000000000401055 l       .text	0000000000000000              .hidden .annobin_lto_end
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto.hot
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto_end.hot
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto.unlikely
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto_end.unlikely
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto.startup
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto_end.startup
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto.exit
0000000000401020 l       .text	0000000000000000              .hidden .annobin_lto_end.exit
0000000000401050 l       .text	0000000000000000              .hidden .annobin__dl_relocate_static_pie.start
0000000000401055 l       .text	0000000000000000              .hidden .annobin__dl_relocate_static_pie.end
0000000000000000 l    df *ABS*	0000000000000000              crtstuff.c
0000000000401060 l     F .text	0000000000000000              deregister_tm_clones
0000000000401090 l     F .text	0000000000000000              register_tm_clones
00000000004010d0 l     F .text	0000000000000000              __do_global_dtors_aux
000000000040401c l     O .bss	0000000000000001              completed.0
0000000000403e58 l     O .fini_array	0000000000000000              __do_global_dtors_aux_fini_array_entry
0000000000401100 l     F .text	0000000000000000              frame_dummy
0000000000403e50 l     O .init_array	0000000000000000              __frame_dummy_init_array_entry
0000000000000000 l    df *ABS*	0000000000000000              dlfilter-test-3361199-prog.c
0000000000000000 l    df *ABS*	0000000000000000              crtstuff.c
0000000000402154 l     O .eh_frame	0000000000000000              __FRAME_END__
0000000000000000 l    df *ABS*	0000000000000000              
0000000000403e58 l       .init_array	0000000000000000              __init_array_end
0000000000403e60 l     O .dynamic	0000000000000000              _DYNAMIC
0000000000403e50 l       .init_array	0000000000000000              __init_array_start
0000000000402010 l       .eh_frame_hdr	0000000000000000              __GNU_EH_FRAME_HDR
0000000000404000 l     O .got.plt	0000000000000000              _GLOBAL_OFFSET_TABLE_
00000000004011b0 g     F .text	0000000000000005              __libc_csu_fini
0000000000404018  w      .data	0000000000000000              data_start
000000000040401c g       .data	0000000000000000              _edata
0000000000401106 g     F .text	0000000000000007              bar
00000000004011b8 g     F .fini	0000000000000000              .hidden _fini
0000000000000000       F *UND*	0000000000000000              __libc_start_main@@GLIBC_2.2.5
0000000000404018 g       .data	0000000000000000              __data_start
0000000000000000  w      *UND*	0000000000000000              __gmon_start__
0000000000402008 g     O .rodata	0000000000000000              .hidden __dso_handle
0000000000402000 g     O .rodata	0000000000000004              _IO_stdin_used
0000000000401140 g     F .text	0000000000000065              __libc_csu_init
000000000040110d g     F .text	0000000000000011              foo
0000000000404020 g       .bss	0000000000000000              _end
0000000000401050 g     F .text	0000000000000005              .hidden _dl_relocate_static_pie
0000000000401020 g     F .text	000000000000002f              _start
000000000040401c g       .bss	0000000000000000              __bss_start
000000000040111e g     F .text	0000000000000015              main
0000000000404020 g     O .data	0000000000000000              .hidden __TMC_END__
0000000000401000 g     F .init	0000000000000000              .hidden _init



Disassembly of section .init:

0000000000401000 <_init>:
  401000:	f3 0f 1e fa          	endbr64 
  401004:	48 83 ec 08          	sub    $0x8,%rsp
  401008:	48 8b 05 e9 2f 00 00 	mov    0x2fe9(%rip),%rax        # 403ff8 <__gmon_start__>
  40100f:	48 85 c0             	test   %rax,%rax
  401012:	74 02                	je     401016 <_init+0x16>
  401014:	ff d0                	callq  *%rax
  401016:	48 83 c4 08          	add    $0x8,%rsp
  40101a:	c3                   	retq   

Disassembly of section .text:

0000000000401020 <_start>:
  401020:	f3 0f 1e fa          	endbr64 
  401024:	31 ed                	xor    %ebp,%ebp
  401026:	49 89 d1             	mov    %rdx,%r9
  401029:	5e                   	pop    %rsi
  40102a:	48 89 e2             	mov    %rsp,%rdx
  40102d:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  401031:	50                   	push   %rax
  401032:	54                   	push   %rsp
  401033:	49 c7 c0 b0 11 40 00 	mov    $0x4011b0,%r8
  40103a:	48 c7 c1 40 11 40 00 	mov    $0x401140,%rcx
  401041:	48 c7 c7 1e 11 40 00 	mov    $0x40111e,%rdi
  401048:	ff 15 a2 2f 00 00    	callq  *0x2fa2(%rip)        # 403ff0 <__libc_start_main@...BC_2.2.5>
  40104e:	f4                   	hlt    

000000000040104f <.annobin_lto>:
  40104f:	90                   	nop

0000000000401050 <_dl_relocate_static_pie>:
  401050:	f3 0f 1e fa          	endbr64 
  401054:	c3                   	retq   

0000000000401055 <.annobin__dl_relocate_static_pie.end>:
  401055:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
  40105c:	00 00 00 
  40105f:	90                   	nop

0000000000401060 <deregister_tm_clones>:
  401060:	b8 20 40 40 00       	mov    $0x404020,%eax
  401065:	48 3d 20 40 40 00    	cmp    $0x404020,%rax
  40106b:	74 13                	je     401080 <deregister_tm_clones+0x20>
  40106d:	b8 00 00 00 00       	mov    $0x0,%eax
  401072:	48 85 c0             	test   %rax,%rax
  401075:	74 09                	je     401080 <deregister_tm_clones+0x20>
  401077:	bf 20 40 40 00       	mov    $0x404020,%edi
  40107c:	ff e0                	jmpq   *%rax
  40107e:	66 90                	xchg   %ax,%ax
  401080:	c3                   	retq   
  401081:	66 66 2e 0f 1f 84 00 	data16 nopw %cs:0x0(%rax,%rax,1)
  401088:	00 00 00 00 
  40108c:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000401090 <register_tm_clones>:
  401090:	be 20 40 40 00       	mov    $0x404020,%esi
  401095:	48 81 ee 20 40 40 00 	sub    $0x404020,%rsi
  40109c:	48 89 f0             	mov    %rsi,%rax
  40109f:	48 c1 ee 3f          	shr    $0x3f,%rsi
  4010a3:	48 c1 f8 03          	sar    $0x3,%rax
  4010a7:	48 01 c6             	add    %rax,%rsi
  4010aa:	48 d1 fe             	sar    %rsi
  4010ad:	74 11                	je     4010c0 <register_tm_clones+0x30>
  4010af:	b8 00 00 00 00       	mov    $0x0,%eax
  4010b4:	48 85 c0             	test   %rax,%rax
  4010b7:	74 07                	je     4010c0 <register_tm_clones+0x30>
  4010b9:	bf 20 40 40 00       	mov    $0x404020,%edi
  4010be:	ff e0                	jmpq   *%rax
  4010c0:	c3                   	retq   
  4010c1:	66 66 2e 0f 1f 84 00 	data16 nopw %cs:0x0(%rax,%rax,1)
  4010c8:	00 00 00 00 
  4010cc:	0f 1f 40 00          	nopl   0x0(%rax)

00000000004010d0 <__do_global_dtors_aux>:
  4010d0:	f3 0f 1e fa          	endbr64 
  4010d4:	80 3d 41 2f 00 00 00 	cmpb   $0x0,0x2f41(%rip)        # 40401c <completed.0>
  4010db:	75 13                	jne    4010f0 <__do_global_dtors_aux+0x20>
  4010dd:	55                   	push   %rbp
  4010de:	48 89 e5             	mov    %rsp,%rbp
  4010e1:	e8 7a ff ff ff       	callq  401060 <deregister_tm_clones>
  4010e6:	c6 05 2f 2f 00 00 01 	movb   $0x1,0x2f2f(%rip)        # 40401c <completed.0>
  4010ed:	5d                   	pop    %rbp
  4010ee:	c3                   	retq   
  4010ef:	90                   	nop
  4010f0:	c3                   	retq   
  4010f1:	66 66 2e 0f 1f 84 00 	data16 nopw %cs:0x0(%rax,%rax,1)
  4010f8:	00 00 00 00 
  4010fc:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000401100 <frame_dummy>:
  401100:	f3 0f 1e fa          	endbr64 
  401104:	eb 8a                	jmp    401090 <register_tm_clones>

0000000000401106 <bar>:
  401106:	55                   	push   %rbp
  401107:	48 89 e5             	mov    %rsp,%rbp
  40110a:	90                   	nop
  40110b:	5d                   	pop    %rbp
  40110c:	c3                   	retq   

000000000040110d <foo>:
  40110d:	55                   	push   %rbp
  40110e:	48 89 e5             	mov    %rsp,%rbp
  401111:	b8 00 00 00 00       	mov    $0x0,%eax
  401116:	e8 eb ff ff ff       	callq  401106 <bar>
  40111b:	90                   	nop
  40111c:	5d                   	pop    %rbp
  40111d:	c3                   	retq   

000000000040111e <main>:
  40111e:	55                   	push   %rbp
  40111f:	48 89 e5             	mov    %rsp,%rbp
  401122:	b8 00 00 00 00       	mov    $0x0,%eax
  401127:	e8 e1 ff ff ff       	callq  40110d <foo>
  40112c:	b8 00 00 00 00       	mov    $0x0,%eax
  401131:	5d                   	pop    %rbp
  401132:	c3                   	retq   
  401133:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
  40113a:	00 00 00 
  40113d:	0f 1f 00             	nopl   (%rax)

0000000000401140 <__libc_csu_init>:
  401140:	f3 0f 1e fa          	endbr64 
  401144:	41 57                	push   %r15
  401146:	4c 8d 3d 03 2d 00 00 	lea    0x2d03(%rip),%r15        # 403e50 <__frame_dummy_init_array_entry>
  40114d:	41 56                	push   %r14
  40114f:	49 89 d6             	mov    %rdx,%r14
  401152:	41 55                	push   %r13
  401154:	49 89 f5             	mov    %rsi,%r13
  401157:	41 54                	push   %r12
  401159:	41 89 fc             	mov    %edi,%r12d
  40115c:	55                   	push   %rbp
  40115d:	48 8d 2d f4 2c 00 00 	lea    0x2cf4(%rip),%rbp        # 403e58 <__do_global_dtors_aux_fini_array_entry>
  401164:	53                   	push   %rbx
  401165:	4c 29 fd             	sub    %r15,%rbp
  401168:	48 83 ec 08          	sub    $0x8,%rsp
  40116c:	e8 8f fe ff ff       	callq  401000 <_init>
  401171:	48 c1 fd 03          	sar    $0x3,%rbp
  401175:	74 1f                	je     401196 <__libc_csu_init+0x56>
  401177:	31 db                	xor    %ebx,%ebx
  401179:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
  401180:	4c 89 f2             	mov    %r14,%rdx
  401183:	4c 89 ee             	mov    %r13,%rsi
  401186:	44 89 e7             	mov    %r12d,%edi
  401189:	41 ff 14 df          	callq  *(%r15,%rbx,8)
  40118d:	48 83 c3 01          	add    $0x1,%rbx
  401191:	48 39 dd             	cmp    %rbx,%rbp
  401194:	75 ea                	jne    401180 <__libc_csu_init+0x40>
  401196:	48 83 c4 08          	add    $0x8,%rsp
  40119a:	5b                   	pop    %rbx
  40119b:	5d                   	pop    %rbp
  40119c:	41 5c                	pop    %r12
  40119e:	41 5d                	pop    %r13
  4011a0:	41 5e                	pop    %r14
  4011a2:	41 5f                	pop    %r15
  4011a4:	c3                   	retq   
  4011a5:	66 66 2e 0f 1f 84 00 	data16 nopw %cs:0x0(%rax,%rax,1)
  4011ac:	00 00 00 00 

00000000004011b0 <__libc_csu_fini>:
  4011b0:	f3 0f 1e fa          	endbr64 
  4011b4:	c3                   	retq   

Disassembly of section .fini:

00000000004011b8 <_fini>:
  4011b8:	f3 0f 1e fa          	endbr64 
  4011bc:	48 83 ec 08          	sub    $0x8,%rsp
  4011c0:	48 83 c4 08          	add    $0x8,%rsp
  4011c4:	c3                   	retq   
Creating new host machine structure
Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3361199-perf-data -D

0 [0x90]: event: 64
.
. ... raw event: size 144 bytes
.  0000:  40 00 00 00 00 00 90 00 00 00 00 00 80 00 00 00  @...............
.  0010:  04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00  ................
.  0020:  8f 03 01 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
.  0030:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
.  0040:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
.  0050:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
.  0060:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
.  0070:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
.  0080:  00 00 00 00 00 00 00 00 63 00 00 00 00 00 00 00  ........c.......

-1 -1 0 [0x90]: PERF_RECORD_ATTR
0x90 [0x20]: event: 3
.
. ... raw event: size 32 bytes
.  0000:  03 00 00 00 02 00 20 00 39 30 00 00 3a 30 00 00  ...... .90..:0..
.  0010:  74 65 73 74 2d 70 72 6f 67 00 00 00 00 00 00 00  test-prog.......

-1 -1 0x90 [0x20]: PERF_RECORD_COMM: test-prog:12345/12346

0xb0 [0x48]: event: 1
.
. ... raw event: size 72 bytes
.  0000:  01 00 00 00 02 00 48 00 39 30 00 00 3a 30 00 00  ......H.90..:0..
.  0010:  00 00 40 00 00 00 00 00 00 00 01 00 00 00 00 00  ..@.............
.  0020:  00 00 00 00 00 00 00 00 2f 74 6d 70 2f 64 6c 66  ......../tmp/dlf
.  0030:  69 6c 74 65 72 2d 74 65 73 74 2d 33 33 36 31 31  ilter-test-33611
.  0040:  39 39 2d 70 72 6f 67 00                          99-prog.        

-1 -1 0xb0 [0x48]: PERF_RECORD_MMAP 12345/12346: [0x400000(0x10000) @ 0]: x /tmp/dlfilter-test-3361199-prog

0xf8 [0x48]: event: 9
.
. ... raw event: size 72 bytes
.  0000:  09 00 00 00 02 00 48 00 63 00 00 00 00 00 00 00  ......H.c.......
.  0010:  0d 11 40 00 00 00 00 00 39 30 00 00 3a 30 00 00  ..@.....90..:0..
.  0020:  d2 02 96 49 00 00 00 00 06 11 40 00 00 00 00 00  <D2>..I......@.....
.  0030:  65 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00  e...............
.  0040:  39 c3 60 20 00 00 00 00                          9<C3>` ....        

31 1234567890 0xf8 [0x48]: PERF_RECORD_SAMPLE(IP, 0x2): 12345/12346: 0x40110d period: 543212345 addr: 0x401106
 ... thread: test-prog:12346
 ...... dso: /tmp/dlfilter-test-3361199-prog
       test-prog 12346 [031]     1.234567:  543212345 branches:HG:            40110d foo+0x0 (/tmp/dlfilter-test-3361199-prog) =>           401106 bar+0x0 (/tmp/dlfilter-test-3361199-prog)
Command: /var/home/acme/bin/perf script -i /tmp/dlfilter-test-3361199-perf-data --dlfilter /var/home/acme/libexec/perf-core/dlfilters/dlfilter-test-api-v0.so --dlarg first --dlarg 3 --dlarg 4198669 --dlarg 4198662 --dlarg 0 --dlarg last
Failed with return value 139
test child finished with -1
---- end ----
dlfilter C API: FAILED!
[root@...e ~]# 


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ