summaryrefslogtreecommitdiffstats
path: root/tests/run-dwflsyms.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run-dwflsyms.sh')
-rwxr-xr-xtests/run-dwflsyms.sh281
1 files changed, 215 insertions, 66 deletions
diff --git a/tests/run-dwflsyms.sh b/tests/run-dwflsyms.sh
index c440bf73..a425277c 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