This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
The two test files that contains minisymtab tables and the expected test output were wrongly generated. Also prelink tests were missing to check that a prelinked main ELF file with separate debug or minisyms generated correctly adjusted symbol values. The dwflsyms test was also extended to check print and check the result of dwfl_module_relocate_address. Reported-by: Josh Stone <jistone@redhat.com> Signed-off-by: Mark Wielaard <mjw@redhat.com> --- tests/ChangeLog | 12 ++ tests/Makefile.am | 1 + tests/dwflsyms.c | 7 +- tests/run-dwflsyms.sh | 281 +++++++++++++++++++++++++++++++++---------- tests/run-readelf-s.sh | 77 +++++++------ tests/testfilebazdbg_pl.bz2 | Bin 0 -> 2589 bytes tests/testfilebazmdb.bz2 | Bin 3259 -> 3313 bytes tests/testfilebazmin.bz2 | Bin 3194 -> 3323 bytes tests/testfilebazmin_pl.bz2 | Bin 0 -> 3749 bytes 9 files changed, 275 insertions(+), 103 deletions(-) create mode 100755 tests/testfilebazdbg_pl.bz2 create mode 100755 tests/testfilebazmin_pl.bz2 diff --git a/tests/ChangeLog b/tests/ChangeLog index 5ebc1bd..9461287 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,15 @@ +2013-11-15 Mark Wielaard <mjw@redhat.com> + + * testfilebazmdb.bz2: Regenerated. + * testfilebazmin.bz2: Likewise. + * testfilebazdbg_pl.bz2: New testfile. + * testfilebazmin_pl.bz2: Likewise. + * Makefile.am (EXTRA_DIST): Add testfilebazdbg_pl.bz2 and + testfilebazmin_pl.bz2. + * dwflsyms.c (list_syms): Call dwfl_module_relocate_address and + print relative address of function symbols. + * run-dwflsyms.sh: Add prelink tests and adjust expected output. + 2013-11-01 Michael Forney <mforney@mforney.org> * Makefile.am (TESTS_ENVIRONMENT): Use and export NM. diff --git a/tests/Makefile.am b/tests/Makefile.am index bc97523..e9cf950 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -189,6 +189,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \ run-readelf-s.sh testfilebazdbg.bz2 testfilebazdyn.bz2 \ testfilebazmin.bz2 testfilebazdbg.debug.bz2 testfilebazmdb.bz2 \ testfilebaztab.bz2 testfilebasmin.bz2 \ + testfilebazdbg_pl.bz2 testfilebazmin_pl.bz2 \ run-dwflsyms.sh \ run-unstrip-n.sh testcore-rtlib.bz2 testcore-rtlib-ppc.bz2 \ run-low_high_pc.sh testfile_low_high_pc.bz2 \ diff --git a/tests/dwflsyms.c b/tests/dwflsyms.c index cae3fbe..55f2653 100644 --- a/tests/dwflsyms.c +++ b/tests/dwflsyms.c @@ -83,7 +83,7 @@ list_syms (struct Dwfl_Module *mod, GElf_Sym sym; GElf_Word shndxp; const char *name = dwfl_module_getsym (mod, ndx, &sym, &shndxp); - printf("%4d: %s\t%s\t%s (%" PRIu64 ") %#" PRIx64 "\n", + printf("%4d: %s\t%s\t%s (%" PRIu64 ") %#" PRIx64, ndx, gelf_type (&sym), gelf_bind (&sym), name, sym.st_size, sym.st_value); @@ -97,7 +97,12 @@ list_syms (struct Dwfl_Module *mod, GElf_Word ashndxp; const char *aname = dwfl_module_addrsym (mod, addr, &asym, &ashndxp); assert (strcmp (name, aname) == 0); + + int res = dwfl_module_relocate_address (mod, &addr); + assert (res != -1); + printf(", rel: %#" PRIx64 "", addr); } + printf ("\n"); } return DWARF_CB_OK; diff --git a/tests/run-dwflsyms.sh b/tests/run-dwflsyms.sh index c440bf7..a425277 100755 --- a/tests/run-dwflsyms.sh +++ b/tests/run-dwflsyms.sh @@ -17,17 +17,20 @@ . $srcdir/test-subr.sh -# Tests dwfl_module_addrsym and dwfl_module_getsym. +# Tests dwfl_module_{addrsym,getsym,relocate_address} # See run-readelf-s.sh for how to generate test binaries. testfiles testfilebaztab testfiles testfilebazdbg testfilebazdbg.debug +testfiles testfilebazdbg_pl testfiles testfilebazdyn testfiles testfilebazmdb testfiles testfilebazmin +testfiles testfilebazmin_pl testfiles testfilebasmin tempfiles testfile.dynsym.in testfile.symtab.in testfile.minsym.in dwflsyms.out +tempfiles testfile.symtab_pl.in testfile.minsym_pl.in cat > testfile.symtab.in <<\EOF 0: NOTYPE LOCAL (0) 0 @@ -65,17 +68,17 @@ cat > testfile.symtab.in <<\EOF 32: SECTION LOCAL (0) 0 33: FILE LOCAL crtstuff.c (0) 0 34: OBJECT LOCAL __JCR_LIST__ (0) 0x200de0 - 35: FUNC LOCAL deregister_tm_clones (0) 0x710 - 36: FUNC LOCAL register_tm_clones (0) 0x740 - 37: FUNC LOCAL __do_global_dtors_aux (0) 0x780 + 35: FUNC LOCAL deregister_tm_clones (0) 0x710, rel: 0x710 + 36: FUNC LOCAL register_tm_clones (0) 0x740, rel: 0x740 + 37: FUNC LOCAL __do_global_dtors_aux (0) 0x780, rel: 0x780 38: OBJECT LOCAL completed.6137 (1) 0x20103c 39: OBJECT LOCAL __do_global_dtors_aux_fini_array_entry (0) 0x200dd8 - 40: FUNC LOCAL frame_dummy (0) 0x7c0 + 40: FUNC LOCAL frame_dummy (0) 0x7c0, rel: 0x7c0 41: OBJECT LOCAL __frame_dummy_init_array_entry (0) 0x200dd0 42: FILE LOCAL foo.c (0) 0 43: FILE LOCAL bar.c (0) 0 44: OBJECT LOCAL b1 (4) 0x201034 - 45: FUNC LOCAL foo (20) 0x814 + 45: FUNC LOCAL foo (20) 0x814, rel: 0x814 46: FILE LOCAL crtstuff.c (0) 0 47: OBJECT LOCAL __FRAME_END__ (0) 0xa58 48: OBJECT LOCAL __JCR_END__ (0) 0x200de0 @@ -84,28 +87,107 @@ cat > testfile.symtab.in <<\EOF 51: OBJECT LOCAL _DYNAMIC (0) 0x200df0 52: NOTYPE LOCAL __init_array_start (0) 0x200dd0 53: OBJECT LOCAL _GLOBAL_OFFSET_TABLE_ (0) 0x201000 - 54: FUNC GLOBAL __libc_csu_fini (2) 0x8f0 + 54: FUNC GLOBAL __libc_csu_fini (2) 0x8f0, rel: 0x8f0 55: NOTYPE WEAK _ITM_deregisterTMCloneTable (0) 0 56: NOTYPE WEAK data_start (0) 0x201030 57: NOTYPE GLOBAL _edata (0) 0x20103c - 58: FUNC GLOBAL bar (44) 0x828 - 59: FUNC GLOBAL _fini (0) 0x8f4 + 58: FUNC GLOBAL bar (44) 0x828, rel: 0x828 + 59: FUNC GLOBAL _fini (0) 0x8f4, rel: 0x8f4 60: FUNC GLOBAL __libc_start_main@@GLIBC_2.2.5 (0) 0 61: NOTYPE GLOBAL __data_start (0) 0x201030 62: NOTYPE WEAK __gmon_start__ (0) 0 63: OBJECT GLOBAL __dso_handle (0) 0x200de8 64: OBJECT GLOBAL _IO_stdin_used (4) 0x900 65: OBJECT GLOBAL b2 (4) 0x201038 - 66: FUNC GLOBAL __libc_csu_init (137) 0x860 + 66: FUNC GLOBAL __libc_csu_init (137) 0x860, rel: 0x860 67: NOTYPE GLOBAL _end (0) 0x201040 - 68: FUNC GLOBAL _start (0) 0x6e0 + 68: FUNC GLOBAL _start (0) 0x6e0, rel: 0x6e0 69: NOTYPE GLOBAL __bss_start (0) 0x20103c - 70: FUNC GLOBAL main (35) 0x7f0 + 70: FUNC GLOBAL main (35) 0x7f0, rel: 0x7f0 71: NOTYPE WEAK _Jv_RegisterClasses (0) 0 72: OBJECT GLOBAL __TMC_END__ (0) 0x201040 73: NOTYPE WEAK _ITM_registerTMCloneTable (0) 0 74: FUNC WEAK __cxa_finalize@@GLIBC_2.2.5 (0) 0 - 75: FUNC GLOBAL _init (0) 0x680 + 75: FUNC GLOBAL _init (0) 0x680, rel: 0x680 +EOF + +cat > testfile.symtab_pl.in <<\EOF + 0: NOTYPE LOCAL (0) 0 + 1: SECTION LOCAL (0) 0x3000000238 + 2: SECTION LOCAL (0) 0x3000000254 + 3: SECTION LOCAL (0) 0x3000000274 + 4: SECTION LOCAL (0) 0x3000000298 + 5: SECTION LOCAL (0) 0x30000002d8 + 6: SECTION LOCAL (0) 0x3000000428 + 7: SECTION LOCAL (0) 0x30000004f2 + 8: SECTION LOCAL (0) 0x3000000510 + 9: SECTION LOCAL (0) 0x3000000530 + 10: SECTION LOCAL (0) 0x3000000638 + 11: SECTION LOCAL (0) 0x3000000680 + 12: SECTION LOCAL (0) 0x30000006a0 + 13: SECTION LOCAL (0) 0x30000006e0 + 14: SECTION LOCAL (0) 0x30000008f4 + 15: SECTION LOCAL (0) 0x3000000900 + 16: SECTION LOCAL (0) 0x3000000904 + 17: SECTION LOCAL (0) 0x3000000948 + 18: SECTION LOCAL (0) 0x3000200dd0 + 19: SECTION LOCAL (0) 0x3000200dd8 + 20: SECTION LOCAL (0) 0x3000200de0 + 21: SECTION LOCAL (0) 0x3000200de8 + 22: SECTION LOCAL (0) 0x3000200df0 + 23: SECTION LOCAL (0) 0x3000200fc0 + 24: SECTION LOCAL (0) 0x3000201000 + 25: SECTION LOCAL (0) 0x3000201030 + 26: SECTION LOCAL (0) 0x300020103c + 27: SECTION LOCAL (0) 0 + 28: SECTION LOCAL (0) 0 + 29: SECTION LOCAL (0) 0 + 30: SECTION LOCAL (0) 0 + 31: SECTION LOCAL (0) 0 + 32: SECTION LOCAL (0) 0 + 33: FILE LOCAL crtstuff.c (0) 0 + 34: OBJECT LOCAL __JCR_LIST__ (0) 0x3000200de0 + 35: FUNC LOCAL deregister_tm_clones (0) 0x3000000710, rel: 0x710 + 36: FUNC LOCAL register_tm_clones (0) 0x3000000740, rel: 0x740 + 37: FUNC LOCAL __do_global_dtors_aux (0) 0x3000000780, rel: 0x780 + 38: OBJECT LOCAL completed.6137 (1) 0x300020103c + 39: OBJECT LOCAL __do_global_dtors_aux_fini_array_entry (0) 0x3000200dd8 + 40: FUNC LOCAL frame_dummy (0) 0x30000007c0, rel: 0x7c0 + 41: OBJECT LOCAL __frame_dummy_init_array_entry (0) 0x3000200dd0 + 42: FILE LOCAL foo.c (0) 0 + 43: FILE LOCAL bar.c (0) 0 + 44: OBJECT LOCAL b1 (4) 0x3000201034 + 45: FUNC LOCAL foo (20) 0x3000000814, rel: 0x814 + 46: FILE LOCAL crtstuff.c (0) 0 + 47: OBJECT LOCAL __FRAME_END__ (0) 0x3000000a58 + 48: OBJECT LOCAL __JCR_END__ (0) 0x3000200de0 + 49: FILE LOCAL (0) 0 + 50: NOTYPE LOCAL __init_array_end (0) 0x3000200dd8 + 51: OBJECT LOCAL _DYNAMIC (0) 0x3000200df0 + 52: NOTYPE LOCAL __init_array_start (0) 0x3000200dd0 + 53: OBJECT LOCAL _GLOBAL_OFFSET_TABLE_ (0) 0x3000201000 + 54: FUNC GLOBAL __libc_csu_fini (2) 0x30000008f0, rel: 0x8f0 + 55: NOTYPE WEAK _ITM_deregisterTMCloneTable (0) 0 + 56: NOTYPE WEAK data_start (0) 0x3000201030 + 57: NOTYPE GLOBAL _edata (0) 0x300020103c + 58: FUNC GLOBAL bar (44) 0x3000000828, rel: 0x828 + 59: FUNC GLOBAL _fini (0) 0x30000008f4, rel: 0x8f4 + 60: FUNC GLOBAL __libc_start_main@@GLIBC_2.2.5 (0) 0 + 61: NOTYPE GLOBAL __data_start (0) 0x3000201030 + 62: NOTYPE WEAK __gmon_start__ (0) 0 + 63: OBJECT GLOBAL __dso_handle (0) 0x3000200de8 + 64: OBJECT GLOBAL _IO_stdin_used (4) 0x3000000900 + 65: OBJECT GLOBAL b2 (4) 0x3000201038 + 66: FUNC GLOBAL __libc_csu_init (137) 0x3000000860, rel: 0x860 + 67: NOTYPE GLOBAL _end (0) 0x3000201040 + 68: FUNC GLOBAL _start (0) 0x30000006e0, rel: 0x6e0 + 69: NOTYPE GLOBAL __bss_start (0) 0x300020103c + 70: FUNC GLOBAL main (35) 0x30000007f0, rel: 0x7f0 + 71: NOTYPE WEAK _Jv_RegisterClasses (0) 0 + 72: OBJECT GLOBAL __TMC_END__ (0) 0x3000201040 + 73: NOTYPE WEAK _ITM_registerTMCloneTable (0) 0 + 74: FUNC WEAK __cxa_finalize@@GLIBC_2.2.5 (0) 0 + 75: FUNC GLOBAL _init (0) 0x3000000680, rel: 0x680 EOF cat > testfile.dynsym.in <<\EOF @@ -119,61 +201,122 @@ cat > testfile.dynsym.in <<\EOF 7: FUNC WEAK __cxa_finalize (0) 0 8: NOTYPE GLOBAL _edata (0) 0x20103c 9: NOTYPE GLOBAL _end (0) 0x201040 - 10: FUNC GLOBAL __libc_csu_init (137) 0x860 + 10: FUNC GLOBAL __libc_csu_init (137) 0x860, rel: 0x860 11: NOTYPE GLOBAL __bss_start (0) 0x20103c - 12: FUNC GLOBAL main (35) 0x7f0 - 13: FUNC GLOBAL __libc_csu_fini (2) 0x8f0 + 12: FUNC GLOBAL main (35) 0x7f0, rel: 0x7f0 + 13: FUNC GLOBAL __libc_csu_fini (2) 0x8f0, rel: 0x8f0 EOF cat > testfile.minsym.in <<\EOF 0: NOTYPE LOCAL (0) 0 1: SECTION LOCAL (0) 0x238 - 2: FUNC LOCAL call_gmon_start (0) 0x4003bc - 3: FUNC LOCAL __do_global_dtors_aux (0) 0x4003e0 - 4: FUNC LOCAL frame_dummy (0) 0x400450 - 5: FUNC LOCAL __do_global_ctors_aux (0) 0x400580 - 6: FUNC LOCAL foo (18) 0x400498 - 7: SECTION LOCAL (0) 0x400200 - 8: SECTION LOCAL (0) 0x40021c - 9: SECTION LOCAL (0) 0x40023c - 10: SECTION LOCAL (0) 0x400260 - 11: SECTION LOCAL (0) 0x400280 - 12: SECTION LOCAL (0) 0x4002c8 - 13: SECTION LOCAL (0) 0x400300 - 14: SECTION LOCAL (0) 0x400308 - 15: SECTION LOCAL (0) 0x400328 - 16: SECTION LOCAL (0) 0x400340 - 17: SECTION LOCAL (0) 0x400358 - 18: SECTION LOCAL (0) 0x400370 - 19: SECTION LOCAL (0) 0x400390 - 20: SECTION LOCAL (0) 0x4005b8 - 21: SECTION LOCAL (0) 0x4005c8 - 22: SECTION LOCAL (0) 0x4005d8 - 23: SECTION LOCAL (0) 0x400610 - 24: SECTION LOCAL (0) 0x6006d0 - 25: SECTION LOCAL (0) 0x6006e0 - 26: SECTION LOCAL (0) 0x6006f0 - 27: SECTION LOCAL (0) 0x6006f8 - 28: SECTION LOCAL (0) 0x600888 - 29: SECTION LOCAL (0) 0x600890 - 30: SECTION LOCAL (0) 0x6008b0 - 31: SECTION LOCAL (0) 0x6008c0 - 32: NOTYPE WEAK _ITM_deregisterTMCloneTable (0) 0 - 33: FUNC GLOBAL __libc_start_main (0) 0 - 34: NOTYPE WEAK __gmon_start__ (0) 0 - 35: NOTYPE WEAK _Jv_RegisterClasses (0) 0 - 36: NOTYPE WEAK _ITM_registerTMCloneTable (0) 0 - 37: FUNC WEAK __cxa_finalize (0) 0 - 38: NOTYPE GLOBAL _edata (0) 0x20103c - 39: NOTYPE GLOBAL _end (0) 0x201040 - 40: FUNC GLOBAL __libc_csu_init (137) 0x860 - 41: NOTYPE GLOBAL __bss_start (0) 0x20103c - 42: FUNC GLOBAL main (35) 0x7f0 - 43: FUNC GLOBAL __libc_csu_fini (2) 0x8f0 - 44: FUNC GLOBAL _start (0) 0x400390 - 45: FUNC GLOBAL bar (44) 0x4004aa - 46: FUNC GLOBAL _fini (0) 0x4005b8 - 47: FUNC GLOBAL _init (0) 0x400358 + 2: FUNC LOCAL deregister_tm_clones (0) 0x710, rel: 0x710 + 3: FUNC LOCAL register_tm_clones (0) 0x740, rel: 0x740 + 4: FUNC LOCAL __do_global_dtors_aux (0) 0x780, rel: 0x780 + 5: OBJECT LOCAL __do_global_dtors_aux_fini_array_entry (0) 0x200dd8 + 6: FUNC LOCAL frame_dummy (0) 0x7c0, rel: 0x7c0 + 7: OBJECT LOCAL __frame_dummy_init_array_entry (0) 0x200dd0 + 8: FUNC LOCAL foo (20) 0x814, rel: 0x814 + 9: NOTYPE LOCAL __init_array_end (0) 0x200dd8 + 10: NOTYPE LOCAL __init_array_start (0) 0x200dd0 + 11: SECTION LOCAL (0) 0x238 + 12: SECTION LOCAL (0) 0x254 + 13: SECTION LOCAL (0) 0x274 + 14: SECTION LOCAL (0) 0x298 + 15: SECTION LOCAL (0) 0x2d8 + 16: SECTION LOCAL (0) 0x428 + 17: SECTION LOCAL (0) 0x4f2 + 18: SECTION LOCAL (0) 0x510 + 19: SECTION LOCAL (0) 0x530 + 20: SECTION LOCAL (0) 0x638 + 21: SECTION LOCAL (0) 0x680 + 22: SECTION LOCAL (0) 0x6a0 + 23: SECTION LOCAL (0) 0x6e0 + 24: SECTION LOCAL (0) 0x8f4 + 25: SECTION LOCAL (0) 0x900 + 26: SECTION LOCAL (0) 0x904 + 27: SECTION LOCAL (0) 0x948 + 28: SECTION LOCAL (0) 0x200dd0 + 29: SECTION LOCAL (0) 0x200dd8 + 30: SECTION LOCAL (0) 0x200de0 + 31: SECTION LOCAL (0) 0x200de8 + 32: SECTION LOCAL (0) 0x200df0 + 33: SECTION LOCAL (0) 0x200fc0 + 34: SECTION LOCAL (0) 0x201000 + 35: SECTION LOCAL (0) 0x201030 + 36: SECTION LOCAL (0) 0x20103c + 37: NOTYPE WEAK _ITM_deregisterTMCloneTable (0) 0 + 38: FUNC GLOBAL __libc_start_main (0) 0 + 39: NOTYPE WEAK __gmon_start__ (0) 0 + 40: NOTYPE WEAK _Jv_RegisterClasses (0) 0 + 41: NOTYPE WEAK _ITM_registerTMCloneTable (0) 0 + 42: FUNC WEAK __cxa_finalize (0) 0 + 43: NOTYPE GLOBAL _edata (0) 0x20103c + 44: NOTYPE GLOBAL _end (0) 0x201040 + 45: FUNC GLOBAL __libc_csu_init (137) 0x860, rel: 0x860 + 46: NOTYPE GLOBAL __bss_start (0) 0x20103c + 47: FUNC GLOBAL main (35) 0x7f0, rel: 0x7f0 + 48: FUNC GLOBAL __libc_csu_fini (2) 0x8f0, rel: 0x8f0 + 49: FUNC GLOBAL bar (44) 0x828, rel: 0x828 + 50: FUNC GLOBAL _fini (0) 0x8f4, rel: 0x8f4 + 51: FUNC GLOBAL _start (0) 0x6e0, rel: 0x6e0 + 52: FUNC GLOBAL _init (0) 0x680, rel: 0x680 +EOF + +cat > testfile.minsym_pl.in <<\EOF + 0: NOTYPE LOCAL (0) 0 + 1: SECTION LOCAL (0) 0x3000000238 + 2: FUNC LOCAL deregister_tm_clones (0) 0x3000000710, rel: 0x710 + 3: FUNC LOCAL register_tm_clones (0) 0x3000000740, rel: 0x740 + 4: FUNC LOCAL __do_global_dtors_aux (0) 0x3000000780, rel: 0x780 + 5: OBJECT LOCAL __do_global_dtors_aux_fini_array_entry (0) 0x3000200dd8 + 6: FUNC LOCAL frame_dummy (0) 0x30000007c0, rel: 0x7c0 + 7: OBJECT LOCAL __frame_dummy_init_array_entry (0) 0x3000200dd0 + 8: FUNC LOCAL foo (20) 0x3000000814, rel: 0x814 + 9: NOTYPE LOCAL __init_array_end (0) 0x3000200dd8 + 10: NOTYPE LOCAL __init_array_start (0) 0x3000200dd0 + 11: SECTION LOCAL (0) 0x3000000238 + 12: SECTION LOCAL (0) 0x3000000254 + 13: SECTION LOCAL (0) 0x3000000274 + 14: SECTION LOCAL (0) 0x3000000298 + 15: SECTION LOCAL (0) 0x30000002d8 + 16: SECTION LOCAL (0) 0x3000000428 + 17: SECTION LOCAL (0) 0x30000004f2 + 18: SECTION LOCAL (0) 0x3000000510 + 19: SECTION LOCAL (0) 0x3000000530 + 20: SECTION LOCAL (0) 0x3000000638 + 21: SECTION LOCAL (0) 0x3000000680 + 22: SECTION LOCAL (0) 0x30000006a0 + 23: SECTION LOCAL (0) 0x30000006e0 + 24: SECTION LOCAL (0) 0x30000008f4 + 25: SECTION LOCAL (0) 0x3000000900 + 26: SECTION LOCAL (0) 0x3000000904 + 27: SECTION LOCAL (0) 0x3000000948 + 28: SECTION LOCAL (0) 0x3000200dd0 + 29: SECTION LOCAL (0) 0x3000200dd8 + 30: SECTION LOCAL (0) 0x3000200de0 + 31: SECTION LOCAL (0) 0x3000200de8 + 32: SECTION LOCAL (0) 0x3000200df0 + 33: SECTION LOCAL (0) 0x3000200fc0 + 34: SECTION LOCAL (0) 0x3000201000 + 35: SECTION LOCAL (0) 0x3000201030 + 36: SECTION LOCAL (0) 0x300020103c + 37: NOTYPE WEAK _ITM_deregisterTMCloneTable (0) 0 + 38: FUNC GLOBAL __libc_start_main (0) 0 + 39: NOTYPE WEAK __gmon_start__ (0) 0 + 40: NOTYPE WEAK _Jv_RegisterClasses (0) 0 + 41: NOTYPE WEAK _ITM_registerTMCloneTable (0) 0 + 42: FUNC WEAK __cxa_finalize (0) 0 + 43: NOTYPE GLOBAL _edata (0) 0x300020103c + 44: NOTYPE GLOBAL _end (0) 0x3000201040 + 45: FUNC GLOBAL __libc_csu_init (137) 0x3000000860, rel: 0x860 + 46: NOTYPE GLOBAL __bss_start (0) 0x300020103c + 47: FUNC GLOBAL main (35) 0x30000007f0, rel: 0x7f0 + 48: FUNC GLOBAL __libc_csu_fini (2) 0x30000008f0, rel: 0x8f0 + 49: FUNC GLOBAL bar (44) 0x3000000828, rel: 0x828 + 50: FUNC GLOBAL _fini (0) 0x30000008f4, rel: 0x8f4 + 51: FUNC GLOBAL _start (0) 0x30000006e0, rel: 0x6e0 + 52: FUNC GLOBAL _init (0) 0x3000000680, rel: 0x680 EOF cat testfile.symtab.in \ @@ -182,6 +325,9 @@ cat testfile.symtab.in \ cat testfile.symtab.in \ | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdbg +cat testfile.symtab_pl.in \ + | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdbg_pl + cat testfile.dynsym.in \ | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdyn @@ -191,16 +337,19 @@ cat testfile.symtab.in \ cat testfile.minsym.in \ | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazmin +cat testfile.minsym_pl.in \ + | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazmin_pl + testrun_compare ${abs_builddir}/dwflsyms -e testfilebasmin <<\EOF 0: NOTYPE LOCAL (0) 0 - 1: FUNC LOCAL foo (18) 0x400168 + 1: FUNC LOCAL foo (18) 0x400168, rel: 0x400168 2: SECTION LOCAL (0) 0x400120 3: SECTION LOCAL (0) 0x400144 4: SECTION LOCAL (0) 0x4001c0 5: SECTION LOCAL (0) 0x600258 - 6: FUNC GLOBAL _start (21) 0x4001a8 - 7: FUNC GLOBAL main (33) 0x400144 - 8: FUNC GLOBAL bar (44) 0x40017a + 6: FUNC GLOBAL _start (21) 0x4001a8, rel: 0x4001a8 + 7: FUNC GLOBAL main (33) 0x400144, rel: 0x400144 + 8: FUNC GLOBAL bar (44) 0x40017a, rel: 0x40017a EOF exit 0 diff --git a/tests/run-readelf-s.sh b/tests/run-readelf-s.sh index 4373b5f..931516d 100755 --- a/tests/run-readelf-s.sh +++ b/tests/run-readelf-s.sh @@ -210,44 +210,49 @@ EOF cat > testfile.minsym.in <<\EOF -Symbol table [27] '.symtab' contains 35 entries: - 31 local symbols String table: [28] '.strtab' +Symbol table [28] '.symtab' contains 40 entries: + 36 local symbols String table: [29] '.strtab' Num: Value Size Type Bind Vis Ndx Name 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UNDEF - 1: 00000000004003bc 0 FUNC LOCAL DEFAULT 13 call_gmon_start - 2: 00000000004003e0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 3: 0000000000400450 0 FUNC LOCAL DEFAULT 13 frame_dummy - 4: 0000000000400580 0 FUNC LOCAL DEFAULT 13 __do_global_ctors_aux - 5: 0000000000400498 18 FUNC LOCAL DEFAULT 13 foo - 6: 0000000000400200 0 SECTION LOCAL DEFAULT 1 - 7: 000000000040021c 0 SECTION LOCAL DEFAULT 2 - 8: 000000000040023c 0 SECTION LOCAL DEFAULT 3 - 9: 0000000000400260 0 SECTION LOCAL DEFAULT 4 - 10: 0000000000400280 0 SECTION LOCAL DEFAULT 5 - 11: 00000000004002c8 0 SECTION LOCAL DEFAULT 6 - 12: 0000000000400300 0 SECTION LOCAL DEFAULT 7 - 13: 0000000000400308 0 SECTION LOCAL DEFAULT 8 - 14: 0000000000400328 0 SECTION LOCAL DEFAULT 9 - 15: 0000000000400340 0 SECTION LOCAL DEFAULT 10 - 16: 0000000000400358 0 SECTION LOCAL DEFAULT 11 - 17: 0000000000400370 0 SECTION LOCAL DEFAULT 12 - 18: 0000000000400390 0 SECTION LOCAL DEFAULT 13 - 19: 00000000004005b8 0 SECTION LOCAL DEFAULT 14 - 20: 00000000004005c8 0 SECTION LOCAL DEFAULT 15 - 21: 00000000004005d8 0 SECTION LOCAL DEFAULT 16 - 22: 0000000000400610 0 SECTION LOCAL DEFAULT 17 - 23: 00000000006006d0 0 SECTION LOCAL DEFAULT 18 - 24: 00000000006006e0 0 SECTION LOCAL DEFAULT 19 - 25: 00000000006006f0 0 SECTION LOCAL DEFAULT 20 - 26: 00000000006006f8 0 SECTION LOCAL DEFAULT 21 - 27: 0000000000600888 0 SECTION LOCAL DEFAULT 22 - 28: 0000000000600890 0 SECTION LOCAL DEFAULT 23 - 29: 00000000006008b0 0 SECTION LOCAL DEFAULT 24 - 30: 00000000006008c0 0 SECTION LOCAL DEFAULT 25 - 31: 0000000000400390 0 FUNC GLOBAL DEFAULT 13 _start - 32: 00000000004004aa 44 FUNC GLOBAL DEFAULT 13 bar - 33: 00000000004005b8 0 FUNC GLOBAL DEFAULT 14 _fini - 34: 0000000000400358 0 FUNC GLOBAL DEFAULT 11 _init + 1: 0000000000000710 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones + 2: 0000000000000740 0 FUNC LOCAL DEFAULT 13 register_tm_clones + 3: 0000000000000780 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux + 4: 0000000000200dd8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry + 5: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 frame_dummy + 6: 0000000000200dd0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry + 7: 0000000000000814 20 FUNC LOCAL DEFAULT 13 foo + 8: 0000000000200dd8 0 NOTYPE LOCAL DEFAULT 18 __init_array_end + 9: 0000000000200dd0 0 NOTYPE LOCAL DEFAULT 18 __init_array_start + 10: 0000000000000238 0 SECTION LOCAL DEFAULT 1 + 11: 0000000000000254 0 SECTION LOCAL DEFAULT 2 + 12: 0000000000000274 0 SECTION LOCAL DEFAULT 3 + 13: 0000000000000298 0 SECTION LOCAL DEFAULT 4 + 14: 00000000000002d8 0 SECTION LOCAL DEFAULT 5 + 15: 0000000000000428 0 SECTION LOCAL DEFAULT 6 + 16: 00000000000004f2 0 SECTION LOCAL DEFAULT 7 + 17: 0000000000000510 0 SECTION LOCAL DEFAULT 8 + 18: 0000000000000530 0 SECTION LOCAL DEFAULT 9 + 19: 0000000000000638 0 SECTION LOCAL DEFAULT 10 + 20: 0000000000000680 0 SECTION LOCAL DEFAULT 11 + 21: 00000000000006a0 0 SECTION LOCAL DEFAULT 12 + 22: 00000000000006e0 0 SECTION LOCAL DEFAULT 13 + 23: 00000000000008f4 0 SECTION LOCAL DEFAULT 14 + 24: 0000000000000900 0 SECTION LOCAL DEFAULT 15 + 25: 0000000000000904 0 SECTION LOCAL DEFAULT 16 + 26: 0000000000000948 0 SECTION LOCAL DEFAULT 17 + 27: 0000000000200dd0 0 SECTION LOCAL DEFAULT 18 + 28: 0000000000200dd8 0 SECTION LOCAL DEFAULT 19 + 29: 0000000000200de0 0 SECTION LOCAL DEFAULT 20 + 30: 0000000000200de8 0 SECTION LOCAL DEFAULT 21 + 31: 0000000000200df0 0 SECTION LOCAL DEFAULT 22 + 32: 0000000000200fc0 0 SECTION LOCAL DEFAULT 23 + 33: 0000000000201000 0 SECTION LOCAL DEFAULT 24 + 34: 0000000000201030 0 SECTION LOCAL DEFAULT 25 + 35: 000000000020103c 0 SECTION LOCAL DEFAULT 26 + 36: 0000000000000828 44 FUNC GLOBAL DEFAULT 13 bar + 37: 00000000000008f4 0 FUNC GLOBAL DEFAULT 14 _fini + 38: 00000000000006e0 0 FUNC GLOBAL DEFAULT 13 _start + 39: 0000000000000680 0 FUNC GLOBAL DEFAULT 11 _init EOF cat testfile.dynsym.in testfile.symtab.in \ diff --git a/tests/testfilebazdbg_pl.bz2 b/tests/testfilebazdbg_pl.bz2 new file mode 100755 index 0000000000000000000000000000000000000000..9e06a806be86f6f942569dd48b5834c67a7721f6 GIT binary patch literal 2589 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 J2UmS#{|9Rol(a)b5| literal 0 HcmV?d00001 diff --git a/tests/testfilebazmdb.bz2 b/tests/testfilebazmdb.bz2 index c486365c29897620500da97b570df091d009daf4..561eca117439a8f6a88afdbfc74c026639fc9645 100755 GIT binary patch literal 3313 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 literal 3259 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 diff --git a/tests/testfilebazmin.bz2 b/tests/testfilebazmin.bz2 index f7286d62cab8a93864e421f9994c168875940f8b..12bcc6b5f8388b71aca0b24360e24208ba23f0a6 100755 GIT binary patch literal 3323 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 FD(a)bjx3!(r3 literal 3194 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 YFHEmee7v9kN$r3XDOkj%4=Mou10XZjod5s; diff --git a/tests/testfilebazmin_pl.bz2 b/tests/testfilebazmin_pl.bz2 new file mode 100755 index 0000000000000000000000000000000000000000..73cef4ae04bc9d5d2223063c50bcdd9557a619c9 GIT binary patch literal 3749 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 PPyZKkML1B9$EUv*yQ|o7 literal 0 HcmV?d00001 -- 1.7.1
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |