Home | History | Annotate | Download | only in tests
      1 #! /bin/sh
      2 # Copyright (C) 2013 Red Hat, Inc.
      3 # This file is part of elfutils.
      4 #
      5 # This file is free software; you can redistribute it and/or modify
      6 # it under the terms of the GNU General Public License as published by
      7 # the Free Software Foundation; either version 3 of the License, or
      8 # (at your option) any later version.
      9 #
     10 # elfutils is distributed in the hope that it will be useful, but
     11 # WITHOUT ANY WARRANTY; without even the implied warranty of
     12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13 # GNU General Public License for more details.
     14 #
     15 # You should have received a copy of the GNU General Public License
     16 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
     17 
     18 . $srcdir/test-subr.sh
     19 
     20 # Tests readelf -s and readelf --elf-section -s
     21 # See also run-dwflsyms.sh
     22 #
     23 # - bar.c
     24 #
     25 # static int b1 = 1;
     26 # int b2 = 1;
     27 #
     28 # static int
     29 # foo (int a)
     30 # {
     31 #   return a + b2;
     32 # }
     33 #
     34 # int bar (int b)
     35 # {
     36 #   return b - foo (b - b1);
     37 # }
     38 #
     39 # - foo.c
     40 #
     41 # extern int bar (int b);
     42 # extern int b2;
     43 #
     44 # int
     45 # main (int argc, char ** argv)
     46 # {
     47 #   return bar (argc + b2);
     48 # }
     49 #
     50 # gcc -pie -g -c foo.c
     51 # gcc -pie -g -c bar.c
     52 # gcc -pie -g -o baz foo.o bar.o
     53 #
     54 # - testfilebaztab (dynsym + symtab)
     55 # cp baz testfilebaztab
     56 #
     57 # - testfilebazdbg (dynsym + .debug file)
     58 # eu-strip --remove-comment -f testfilebazdbg.debug baz
     59 # cp baz testfilebazdbg
     60 #
     61 #-  testfilebazdyn (dynsym only)
     62 # objcopy --remove-section=.gnu_debuglink baz testfilebazdyn
     63 #
     64 # - testfilebazmdb (dynsym + gnu_debugdata + .debug)
     65 #   This is how rpmbuild does it:
     66 # nm -D baz --format=posix --defined-only | awk '{ print $1 }' | sort > dynsyms
     67 # nm baz.debug --format=posix --defined-only | awk '{ if ($2 == "T" || $2 == "t") print $1 }' | sort > funcsyms
     68 # comm -13 dynsyms funcsyms > keep_symbols
     69 # objcopy -S --remove-section .gdb_index --remove-section .comment --keep-symbols=keep_symbols baz.debug mini_debuginfo
     70 # rm -f mini_debuginfo.xz
     71 # xz mini_debuginfo
     72 # objcopy --add-section .gnu_debugdata=mini_debuginfo.xz baz
     73 # cp baz testfilebazmdb
     74 #
     75 # - testfilebazmin (dynsym + gnu_debugdata)
     76 # objcopy --remove-section=.gnu_debuglink baz testfilebazmin
     77 #
     78 #
     79 # Special auxiliary only, can happen with static binaries.
     80 # - start.c
     81 #
     82 # extern int main (int argc, char ** argv);
     83 # void _start (void) { for (;;) main (1, 0); }
     84 #
     85 # gcc -g -c start.c
     86 # gcc -static -nostdlib -o bas foo.o bar.o start.o
     87 #
     88 # eu-strip --remove-comment -f bas.debug bas
     89 # nm bas.debug --format=posix --defined-only | awk '{ if ($2 == "T" || $2 == "t") print $1 }' | sort > funcsyms
     90 # objcopy -S --remove-section .gdb_index --remove-section .comment --keep-symbols=funcsyms bas.debug mini_debuginfo
     91 # rm -f mini_debuginfo.xz
     92 # xz mini_debuginfo
     93 # objcopy --add-section .gnu_debugdata=mini_debuginfo.xz bas
     94 # rm bas.debug
     95 # mv bas testfilebasmin
     96 #
     97 #
     98 # Make sure that find_aux_sym doesn't corrupt relocations, avoiding a kernel
     99 # heuristic that forces ET_EXEC->ET_DYN.  NB: ld.gold doesn't seem to produce
    100 # the mismatched load addrs between the main file and the mini_debuginfo, so
    101 # this is forcing ld.bfd.
    102 #
    103 # gcc -g -o bax foo.c bar.c -fuse-ld=bfd
    104 # eu-strip --remove-comment -f bax.debug bax
    105 # nm -D bax --format=posix --defined-only | awk '{ print $1 }' | sort > dynsyms
    106 # nm bax.debug --format=posix --defined-only | awk '{ if ($2 == "T" || $2 == "t") print $1 }' | sort > funcsyms
    107 # comm -13 dynsyms funcsyms > keep_symbols
    108 # objcopy -S --remove-section .gdb_index --remove-section .comment --keep-symbols=keep_symbols bax.debug mini_debuginfo
    109 # rm -f mini_debuginfo.xz
    110 # xz mini_debuginfo
    111 # objcopy --add-section .gnu_debugdata=mini_debuginfo.xz bax
    112 # objcopy --remove-section=.gnu_debuglink bax testfilebaxmin
    113 
    114 
    115 testfiles testfilebaztab
    116 testfiles testfilebazdbg testfilebazdbg.debug
    117 testfiles testfilebazdyn
    118 testfiles testfilebazmdb
    119 testfiles testfilebazmin
    120 testfiles testfilebasmin
    121 testfiles testfilebaxmin
    122 
    123 tempfiles testfile.dynsym.in testfile.symtab.in testfile.minsym.in
    124 
    125 cat > testfile.dynsym.in <<\EOF
    126 
    127 Symbol table [ 5] '.dynsym' contains 14 entries:
    128  2 local symbols  String table: [ 6] '.dynstr'
    129   Num:            Value   Size Type    Bind   Vis          Ndx Name
    130     0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF 
    131     1: 0000000000000238      0 SECTION LOCAL  DEFAULT        1 
    132     2: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF _ITM_deregisterTMCloneTable
    133     3: 0000000000000000      0 FUNC    GLOBAL DEFAULT    UNDEF __libc_start_main@GLIBC_2.2.5 (2)
    134     4: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF __gmon_start__
    135     5: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF _Jv_RegisterClasses
    136     6: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF _ITM_registerTMCloneTable
    137     7: 0000000000000000      0 FUNC    WEAK   DEFAULT    UNDEF __cxa_finalize@GLIBC_2.2.5 (2)
    138     8: 000000000020103c      0 NOTYPE  GLOBAL DEFAULT       25 _edata
    139     9: 0000000000201040      0 NOTYPE  GLOBAL DEFAULT       26 _end
    140    10: 0000000000000860    137 FUNC    GLOBAL DEFAULT       13 __libc_csu_init
    141    11: 000000000020103c      0 NOTYPE  GLOBAL DEFAULT       26 __bss_start
    142    12: 00000000000007f0     35 FUNC    GLOBAL DEFAULT       13 main
    143    13: 00000000000008f0      2 FUNC    GLOBAL DEFAULT       13 __libc_csu_fini
    144 EOF
    145 
    146 cat > testfile.symtab.in <<\EOF
    147 
    148 Symbol table [34] '.symtab' contains 76 entries:
    149  54 local symbols  String table: [35] '.strtab'
    150   Num:            Value   Size Type    Bind   Vis          Ndx Name
    151     0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF 
    152     1: 0000000000000238      0 SECTION LOCAL  DEFAULT        1 
    153     2: 0000000000000254      0 SECTION LOCAL  DEFAULT        2 
    154     3: 0000000000000274      0 SECTION LOCAL  DEFAULT        3 
    155     4: 0000000000000298      0 SECTION LOCAL  DEFAULT        4 
    156     5: 00000000000002d8      0 SECTION LOCAL  DEFAULT        5 
    157     6: 0000000000000428      0 SECTION LOCAL  DEFAULT        6 
    158     7: 00000000000004f2      0 SECTION LOCAL  DEFAULT        7 
    159     8: 0000000000000510      0 SECTION LOCAL  DEFAULT        8 
    160     9: 0000000000000530      0 SECTION LOCAL  DEFAULT        9 
    161    10: 0000000000000638      0 SECTION LOCAL  DEFAULT       10 
    162    11: 0000000000000680      0 SECTION LOCAL  DEFAULT       11 
    163    12: 00000000000006a0      0 SECTION LOCAL  DEFAULT       12 
    164    13: 00000000000006e0      0 SECTION LOCAL  DEFAULT       13 
    165    14: 00000000000008f4      0 SECTION LOCAL  DEFAULT       14 
    166    15: 0000000000000900      0 SECTION LOCAL  DEFAULT       15 
    167    16: 0000000000000904      0 SECTION LOCAL  DEFAULT       16 
    168    17: 0000000000000948      0 SECTION LOCAL  DEFAULT       17 
    169    18: 0000000000200dd0      0 SECTION LOCAL  DEFAULT       18 
    170    19: 0000000000200dd8      0 SECTION LOCAL  DEFAULT       19 
    171    20: 0000000000200de0      0 SECTION LOCAL  DEFAULT       20 
    172    21: 0000000000200de8      0 SECTION LOCAL  DEFAULT       21 
    173    22: 0000000000200df0      0 SECTION LOCAL  DEFAULT       22 
    174    23: 0000000000200fc0      0 SECTION LOCAL  DEFAULT       23 
    175    24: 0000000000201000      0 SECTION LOCAL  DEFAULT       24 
    176    25: 0000000000201030      0 SECTION LOCAL  DEFAULT       25 
    177    26: 000000000020103c      0 SECTION LOCAL  DEFAULT       26 
    178    27: 0000000000000000      0 SECTION LOCAL  DEFAULT       27 
    179    28: 0000000000000000      0 SECTION LOCAL  DEFAULT       28 
    180    29: 0000000000000000      0 SECTION LOCAL  DEFAULT       29 
    181    30: 0000000000000000      0 SECTION LOCAL  DEFAULT       30 
    182    31: 0000000000000000      0 SECTION LOCAL  DEFAULT       31 
    183    32: 0000000000000000      0 SECTION LOCAL  DEFAULT       32 
    184    33: 0000000000000000      0 FILE    LOCAL  DEFAULT      ABS crtstuff.c
    185    34: 0000000000200de0      0 OBJECT  LOCAL  DEFAULT       20 __JCR_LIST__
    186    35: 0000000000000710      0 FUNC    LOCAL  DEFAULT       13 deregister_tm_clones
    187    36: 0000000000000740      0 FUNC    LOCAL  DEFAULT       13 register_tm_clones
    188    37: 0000000000000780      0 FUNC    LOCAL  DEFAULT       13 __do_global_dtors_aux
    189    38: 000000000020103c      1 OBJECT  LOCAL  DEFAULT       26 completed.6137
    190    39: 0000000000200dd8      0 OBJECT  LOCAL  DEFAULT       19 __do_global_dtors_aux_fini_array_entry
    191    40: 00000000000007c0      0 FUNC    LOCAL  DEFAULT       13 frame_dummy
    192    41: 0000000000200dd0      0 OBJECT  LOCAL  DEFAULT       18 __frame_dummy_init_array_entry
    193    42: 0000000000000000      0 FILE    LOCAL  DEFAULT      ABS foo.c
    194    43: 0000000000000000      0 FILE    LOCAL  DEFAULT      ABS bar.c
    195    44: 0000000000201034      4 OBJECT  LOCAL  DEFAULT       25 b1
    196    45: 0000000000000814     20 FUNC    LOCAL  DEFAULT       13 foo
    197    46: 0000000000000000      0 FILE    LOCAL  DEFAULT      ABS crtstuff.c
    198    47: 0000000000000a58      0 OBJECT  LOCAL  DEFAULT       17 __FRAME_END__
    199    48: 0000000000200de0      0 OBJECT  LOCAL  DEFAULT       20 __JCR_END__
    200    49: 0000000000000000      0 FILE    LOCAL  DEFAULT      ABS 
    201    50: 0000000000200dd8      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_end
    202    51: 0000000000200df0      0 OBJECT  LOCAL  DEFAULT       22 _DYNAMIC
    203    52: 0000000000200dd0      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_start
    204    53: 0000000000201000      0 OBJECT  LOCAL  DEFAULT       24 _GLOBAL_OFFSET_TABLE_
    205    54: 00000000000008f0      2 FUNC    GLOBAL DEFAULT       13 __libc_csu_fini
    206    55: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF _ITM_deregisterTMCloneTable
    207    56: 0000000000201030      0 NOTYPE  WEAK   DEFAULT       25 data_start
    208    57: 000000000020103c      0 NOTYPE  GLOBAL DEFAULT       25 _edata
    209    58: 0000000000000828     44 FUNC    GLOBAL DEFAULT       13 bar
    210    59: 00000000000008f4      0 FUNC    GLOBAL DEFAULT       14 _fini
    211    60: 0000000000000000      0 FUNC    GLOBAL DEFAULT    UNDEF __libc_start_main@@GLIBC_2.2.5
    212    61: 0000000000201030      0 NOTYPE  GLOBAL DEFAULT       25 __data_start
    213    62: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF __gmon_start__
    214    63: 0000000000200de8      0 OBJECT  GLOBAL HIDDEN        21 __dso_handle
    215    64: 0000000000000900      4 OBJECT  GLOBAL DEFAULT       15 _IO_stdin_used
    216    65: 0000000000201038      4 OBJECT  GLOBAL DEFAULT       25 b2
    217    66: 0000000000000860    137 FUNC    GLOBAL DEFAULT       13 __libc_csu_init
    218    67: 0000000000201040      0 NOTYPE  GLOBAL DEFAULT       26 _end
    219    68: 00000000000006e0      0 FUNC    GLOBAL DEFAULT       13 _start
    220    69: 000000000020103c      0 NOTYPE  GLOBAL DEFAULT       26 __bss_start
    221    70: 00000000000007f0     35 FUNC    GLOBAL DEFAULT       13 main
    222    71: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF _Jv_RegisterClasses
    223    72: 0000000000201040      0 OBJECT  GLOBAL HIDDEN        25 __TMC_END__
    224    73: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF _ITM_registerTMCloneTable
    225    74: 0000000000000000      0 FUNC    WEAK   DEFAULT    UNDEF __cxa_finalize@@GLIBC_2.2.5
    226    75: 0000000000000680      0 FUNC    GLOBAL DEFAULT       11 _init
    227 EOF
    228 
    229 cat > testfile.minsym.in <<\EOF
    230 
    231 Symbol table [28] '.symtab' contains 40 entries:
    232  36 local symbols  String table: [29] '.strtab'
    233   Num:            Value   Size Type    Bind   Vis          Ndx Name
    234     0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF 
    235     1: 0000000000000710      0 FUNC    LOCAL  DEFAULT       13 deregister_tm_clones
    236     2: 0000000000000740      0 FUNC    LOCAL  DEFAULT       13 register_tm_clones
    237     3: 0000000000000780      0 FUNC    LOCAL  DEFAULT       13 __do_global_dtors_aux
    238     4: 0000000000200dd8      0 OBJECT  LOCAL  DEFAULT       19 __do_global_dtors_aux_fini_array_entry
    239     5: 00000000000007c0      0 FUNC    LOCAL  DEFAULT       13 frame_dummy
    240     6: 0000000000200dd0      0 OBJECT  LOCAL  DEFAULT       18 __frame_dummy_init_array_entry
    241     7: 0000000000000814     20 FUNC    LOCAL  DEFAULT       13 foo
    242     8: 0000000000200dd8      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_end
    243     9: 0000000000200dd0      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_start
    244    10: 0000000000000238      0 SECTION LOCAL  DEFAULT        1 
    245    11: 0000000000000254      0 SECTION LOCAL  DEFAULT        2 
    246    12: 0000000000000274      0 SECTION LOCAL  DEFAULT        3 
    247    13: 0000000000000298      0 SECTION LOCAL  DEFAULT        4 
    248    14: 00000000000002d8      0 SECTION LOCAL  DEFAULT        5 
    249    15: 0000000000000428      0 SECTION LOCAL  DEFAULT        6 
    250    16: 00000000000004f2      0 SECTION LOCAL  DEFAULT        7 
    251    17: 0000000000000510      0 SECTION LOCAL  DEFAULT        8 
    252    18: 0000000000000530      0 SECTION LOCAL  DEFAULT        9 
    253    19: 0000000000000638      0 SECTION LOCAL  DEFAULT       10 
    254    20: 0000000000000680      0 SECTION LOCAL  DEFAULT       11 
    255    21: 00000000000006a0      0 SECTION LOCAL  DEFAULT       12 
    256    22: 00000000000006e0      0 SECTION LOCAL  DEFAULT       13 
    257    23: 00000000000008f4      0 SECTION LOCAL  DEFAULT       14 
    258    24: 0000000000000900      0 SECTION LOCAL  DEFAULT       15 
    259    25: 0000000000000904      0 SECTION LOCAL  DEFAULT       16 
    260    26: 0000000000000948      0 SECTION LOCAL  DEFAULT       17 
    261    27: 0000000000200dd0      0 SECTION LOCAL  DEFAULT       18 
    262    28: 0000000000200dd8      0 SECTION LOCAL  DEFAULT       19 
    263    29: 0000000000200de0      0 SECTION LOCAL  DEFAULT       20 
    264    30: 0000000000200de8      0 SECTION LOCAL  DEFAULT       21 
    265    31: 0000000000200df0      0 SECTION LOCAL  DEFAULT       22 
    266    32: 0000000000200fc0      0 SECTION LOCAL  DEFAULT       23 
    267    33: 0000000000201000      0 SECTION LOCAL  DEFAULT       24 
    268    34: 0000000000201030      0 SECTION LOCAL  DEFAULT       25 
    269    35: 000000000020103c      0 SECTION LOCAL  DEFAULT       26 
    270    36: 0000000000000828     44 FUNC    GLOBAL DEFAULT       13 bar
    271    37: 00000000000008f4      0 FUNC    GLOBAL DEFAULT       14 _fini
    272    38: 00000000000006e0      0 FUNC    GLOBAL DEFAULT       13 _start
    273    39: 0000000000000680      0 FUNC    GLOBAL DEFAULT       11 _init
    274 EOF
    275 
    276 # Display all symbol tables.
    277 cat testfile.dynsym.in testfile.symtab.in \
    278   | testrun_compare ${abs_top_builddir}/src/readelf -s testfilebaztab
    279 
    280 # Display just .dynsym
    281 cat testfile.dynsym.in \
    282   | testrun_compare ${abs_top_builddir}/src/readelf \
    283     --symbols=.dynsym testfilebaztab
    284 
    285 # Display just .symtab
    286 cat testfile.symtab.in \
    287   | testrun_compare ${abs_top_builddir}/src/readelf \
    288     --symbols=.symtab testfilebaztab
    289 
    290 cat testfile.dynsym.in \
    291   | testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazdbg
    292 
    293 cat testfile.symtab.in \
    294   | testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazdbg.debug
    295 
    296 cat testfile.dynsym.in \
    297   | testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazdyn
    298 
    299 cat testfile.dynsym.in \
    300   | testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazmdb
    301 
    302 cat testfile.minsym.in \
    303   | testrun_compare ${abs_top_builddir}/src/readelf --elf-section -s testfilebazmdb
    304 
    305 cat testfile.dynsym.in \
    306   | testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazmin
    307 
    308 cat testfile.minsym.in \
    309   | testrun_compare ${abs_top_builddir}/src/readelf --elf-section -s testfilebazmin
    310 
    311 testrun_compare ${abs_top_builddir}/src/readelf -s testfilebasmin <<EOF
    312 EOF
    313 
    314 testrun_compare ${abs_top_builddir}/src/readelf --elf-section -s testfilebasmin <<\EOF
    315 
    316 Symbol table [ 6] '.symtab' contains 9 entries:
    317  6 local symbols  String table: [ 7] '.strtab'
    318   Num:            Value   Size Type    Bind   Vis          Ndx Name
    319     0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF 
    320     1: 0000000000400168     18 FUNC    LOCAL  DEFAULT        2 foo
    321     2: 0000000000400120      0 SECTION LOCAL  DEFAULT        1 
    322     3: 0000000000400144      0 SECTION LOCAL  DEFAULT        2 
    323     4: 00000000004001c0      0 SECTION LOCAL  DEFAULT        3 
    324     5: 0000000000600258      0 SECTION LOCAL  DEFAULT        4 
    325     6: 00000000004001a8     21 FUNC    GLOBAL DEFAULT        2 _start
    326     7: 0000000000400144     33 FUNC    GLOBAL DEFAULT        2 main
    327     8: 000000000040017a     44 FUNC    GLOBAL DEFAULT        2 bar
    328 EOF
    329 
    330 testrun_compare ${abs_top_builddir}/src/readelf -s testfilebaxmin <<EOF
    331 
    332 Symbol table [ 5] '.dynsym' contains 3 entries:
    333  1 local symbol  String table: [ 6] '.dynstr'
    334   Num:            Value   Size Type    Bind   Vis          Ndx Name
    335     0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF 
    336     1: 0000000000000000      0 FUNC    GLOBAL DEFAULT    UNDEF __libc_start_main@GLIBC_2.2.5 (2)
    337     2: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF __gmon_start__
    338 EOF
    339 
    340 testrun_compare ${abs_top_builddir}/src/readelf --elf-section -s testfilebaxmin <<\EOF
    341 
    342 Symbol table [27] '.symtab' contains 42 entries:
    343  35 local symbols  String table: [28] '.strtab'
    344   Num:            Value   Size Type    Bind   Vis          Ndx Name
    345     0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF 
    346     1: 0000000000400430      0 FUNC    LOCAL  DEFAULT       13 deregister_tm_clones
    347     2: 0000000000400460      0 FUNC    LOCAL  DEFAULT       13 register_tm_clones
    348     3: 00000000004004a0      0 FUNC    LOCAL  DEFAULT       13 __do_global_dtors_aux
    349     4: 0000000000600e18      0 OBJECT  LOCAL  DEFAULT       19 __do_global_dtors_aux_fini_array_entry
    350     5: 00000000004004c0      0 FUNC    LOCAL  DEFAULT       13 frame_dummy
    351     6: 0000000000600e10      0 OBJECT  LOCAL  DEFAULT       18 __frame_dummy_init_array_entry
    352     7: 00000000004004f0     20 FUNC    LOCAL  DEFAULT       13 foo
    353     8: 0000000000600e18      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_end
    354     9: 0000000000600e10      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_start
    355    10: 0000000000400238      0 SECTION LOCAL  DEFAULT        1 
    356    11: 0000000000400254      0 SECTION LOCAL  DEFAULT        2 
    357    12: 0000000000400274      0 SECTION LOCAL  DEFAULT        3 
    358    13: 0000000000400298      0 SECTION LOCAL  DEFAULT        4 
    359    14: 00000000004002b8      0 SECTION LOCAL  DEFAULT        5 
    360    15: 0000000000400300      0 SECTION LOCAL  DEFAULT        6 
    361    16: 0000000000400338      0 SECTION LOCAL  DEFAULT        7 
    362    17: 0000000000400340      0 SECTION LOCAL  DEFAULT        8 
    363    18: 0000000000400360      0 SECTION LOCAL  DEFAULT        9 
    364    19: 0000000000400378      0 SECTION LOCAL  DEFAULT       10 
    365    20: 00000000004003a8      0 SECTION LOCAL  DEFAULT       11 
    366    21: 00000000004003d0      0 SECTION LOCAL  DEFAULT       12 
    367    22: 0000000000400400      0 SECTION LOCAL  DEFAULT       13 
    368    23: 00000000004005c4      0 SECTION LOCAL  DEFAULT       14 
    369    24: 00000000004005d0      0 SECTION LOCAL  DEFAULT       15 
    370    25: 00000000004005e0      0 SECTION LOCAL  DEFAULT       16 
    371    26: 0000000000400628      0 SECTION LOCAL  DEFAULT       17 
    372    27: 0000000000600e10      0 SECTION LOCAL  DEFAULT       18 
    373    28: 0000000000600e18      0 SECTION LOCAL  DEFAULT       19 
    374    29: 0000000000600e20      0 SECTION LOCAL  DEFAULT       20 
    375    30: 0000000000600e28      0 SECTION LOCAL  DEFAULT       21 
    376    31: 0000000000600ff8      0 SECTION LOCAL  DEFAULT       22 
    377    32: 0000000000601000      0 SECTION LOCAL  DEFAULT       23 
    378    33: 0000000000601028      0 SECTION LOCAL  DEFAULT       24 
    379    34: 0000000000601034      0 SECTION LOCAL  DEFAULT       25 
    380    35: 00000000004005c0      2 FUNC    GLOBAL DEFAULT       13 __libc_csu_fini
    381    36: 0000000000400504     40 FUNC    GLOBAL DEFAULT       13 bar
    382    37: 00000000004005c4      0 FUNC    GLOBAL DEFAULT       14 _fini
    383    38: 0000000000400550    101 FUNC    GLOBAL DEFAULT       13 __libc_csu_init
    384    39: 0000000000400400      0 FUNC    GLOBAL DEFAULT       13 _start
    385    40: 000000000040052c     35 FUNC    GLOBAL DEFAULT       13 main
    386    41: 00000000004003a8      0 FUNC    GLOBAL DEFAULT       11 _init
    387 EOF
    388 
    389 exit 0
    390