diff options
| author | Mark Wielaard <[email protected]> | 2018-04-06 18:53:34 +0200 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2018-05-28 14:51:26 +0200 |
| commit | 879f3a4f99dfc7f3678dc1c959e66784f21886bb (patch) | |
| tree | 06e9556b14ba7a3753afa344679119348676b983 /tests | |
| parent | bc1f86b0c4fd9d00f184e759be5dbab1a15be934 (diff) | |
libdw: Handle .debug_rnglists in dwarf_ranges.
Handle all new DW_RLE opcodes in .debug_rnglists in dwarf_ranges. Extract
code for reading .debug_addr indexes from dwarf_formaddr as __libdw_addrx
to reuse in __libdw_read_begin_end_pair_inc. And add new testcase for
"plain" DWARF5 and add a new test all-dwarf-ranges to test split DWARF5.
Signed-off-by: Mark Wielaard <[email protected]>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ChangeLog | 12 | ||||
| -rw-r--r-- | tests/Makefile.am | 4 | ||||
| -rwxr-xr-x | tests/run-all-dwarf-ranges.sh | 55 | ||||
| -rwxr-xr-x | tests/run-dwarf-ranges.sh | 21 | ||||
| -rw-r--r-- | tests/testfile-ranges-hello5.dwo.bz2 | bin | 0 -> 1256 bytes | |||
| -rw-r--r-- | tests/testfile-ranges-world5.dwo.bz2 | bin | 0 -> 1514 bytes | |||
| -rwxr-xr-x | tests/testfileranges5.debug.bz2 | bin | 0 -> 3009 bytes | |||
| -rwxr-xr-x | tests/testfilesplitranges5.debug.bz2 | bin | 0 -> 2229 bytes |
8 files changed, 91 insertions, 1 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog index 13d168de..5eb1e77f 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,15 @@ +2018-04-06 Mark Wielaard <[email protected]> + + * testfileranges5.debug.bz2: New testfile. + * testfilesplitranges5.debug.bz2: Likewise. + * testfile-ranges-hello5.dwo.bz2: Likewise. + * testfile-ranges-world5.dwo.bz2: Likewise. + * run-dwarf-ranges.sh: Run on testfileranges5.debug. + * run-all-dwarf-ranges.sh: Run on testfilesplitranges5.debug. + * tests/Makefile.am (EXTRA_DIST): Add testfileranges5.debug.bz2, + testfilesplitranges5.debug.bz2, testfile-ranges-hello5.dwo.bz2 and + testfile-ranges-world5.dwo.bz2. + 2018-04-11 Mark Wielaard <[email protected]> * run-readelf-ranges.sh: New test. diff --git a/tests/Makefile.am b/tests/Makefile.am index 54a3d1d5..63f077c4 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -203,7 +203,9 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \ run-dwfl-addr-sect.sh run-early-offscn.sh \ run-dwarf-getmacros.sh \ run-dwarf-ranges.sh debug-ranges-no-lowpc.o.bz2 \ - testfileranges4.debug.bz2 \ + testfileranges4.debug.bz2 testfileranges5.debug.bz2 \ + testfilesplitranges5.debug.bz2 \ + testfile-ranges-hello5.dwo.bz2 testfile-ranges-world5.dwo.bz2 \ run-test-flag-nobits.sh \ run-dwarf-getstring.sh run-rerequest_tag.sh run-alldts.sh \ testfile15.bz2 testfile15.debug.bz2 \ diff --git a/tests/run-all-dwarf-ranges.sh b/tests/run-all-dwarf-ranges.sh index ad5e634f..cefb4231 100755 --- a/tests/run-all-dwarf-ranges.sh +++ b/tests/run-all-dwarf-ranges.sh @@ -71,4 +71,59 @@ die: no_subject (2e) EOF +# Same with -gdwarf-5 +# gcc -c -O2 -o testfile-ranges-hello5.o -gsplit-dwarf -gdwarf-5 hello.c +# gcc -c -O2 -o testfile-ranges-world5.o -gsplit-dwarf -gdwarf-5 world.c +# gcc -o testfilesplitranges5 -O2 testfile-ranges-hello5.o testfile-ranges-world5.o +# eu-strip -f testfilesplitranges5.debug testfilesplitranges5 + +testfiles testfilesplitranges5.debug +testfiles testfile-ranges-hello5.dwo testfile-ranges-world5.dwo + +testrun_compare ${abs_builddir}/all-dwarf-ranges testfilesplitranges5.debug <<\EOF +die: hello.c (11) + 401150..40117a + 401050..401067 + +die: no_say (2e) + 401160..40117a + +die: main (2e) + 401050..401067 + +die: subject (1d) + 401053..40105f + +die: subject (2e) + 401150..401160 + +die: world.c (11) + 401180..4011e7 + +die: no_main (2e) + 4011d0..4011e7 + +die: no_subject (1d) + 4011d3..4011df + +die: say (2e) + 401180..4011c0 + +die: happy (1d) + 40119b..40119b + 40119c..4011a6 + 4011b0..4011b4 + 4011b5..4011bf + +die: sad (1d) + 40119b..40119b + 40119c..4011a6 + 4011b4..4011b4 + 4011b5..4011bf + +die: no_subject (2e) + 4011c0..4011d0 + +EOF + exit 0 diff --git a/tests/run-dwarf-ranges.sh b/tests/run-dwarf-ranges.sh index f935eaf4..ae25d6ef 100755 --- a/tests/run-dwarf-ranges.sh +++ b/tests/run-dwarf-ranges.sh @@ -102,4 +102,25 @@ testrun_compare ${abs_builddir}/dwarf-ranges testfileranges4.debug 0x374 <<\EOF 4005a5..4005ad (base 400540) EOF +# Like above, but with -gdwarf-5. +testfiles testfileranges5.debug +testrun_compare ${abs_builddir}/dwarf-ranges testfileranges5.debug 0xc <<\EOF +401150..40117a (base 0) +401050..401067 (base 0) +EOF + +testrun_compare ${abs_builddir}/dwarf-ranges testfileranges5.debug 0x2ce <<\EOF +40119b..40119b (base 401180) +40119c..4011a6 (base 401180) +4011b0..4011b4 (base 401180) +4011b5..4011bf (base 401180) +EOF + +testrun_compare ${abs_builddir}/dwarf-ranges testfileranges5.debug 0x2ef <<\EOF +40119b..40119b (base 401180) +40119c..4011a6 (base 401180) +4011b4..4011b4 (base 401180) +4011b5..4011bf (base 401180) +EOF + exit 0 diff --git a/tests/testfile-ranges-hello5.dwo.bz2 b/tests/testfile-ranges-hello5.dwo.bz2 Binary files differnew file mode 100644 index 00000000..5e6e9e21 --- /dev/null +++ b/tests/testfile-ranges-hello5.dwo.bz2 diff --git a/tests/testfile-ranges-world5.dwo.bz2 b/tests/testfile-ranges-world5.dwo.bz2 Binary files differnew file mode 100644 index 00000000..6bde196b --- /dev/null +++ b/tests/testfile-ranges-world5.dwo.bz2 diff --git a/tests/testfileranges5.debug.bz2 b/tests/testfileranges5.debug.bz2 Binary files differnew file mode 100755 index 00000000..ef28efc1 --- /dev/null +++ b/tests/testfileranges5.debug.bz2 diff --git a/tests/testfilesplitranges5.debug.bz2 b/tests/testfilesplitranges5.debug.bz2 Binary files differnew file mode 100755 index 00000000..5796cbf0 --- /dev/null +++ b/tests/testfilesplitranges5.debug.bz2 |
