[PATCH] readelf: Deal with combined normal and split dwarf DebugFission .debug_loc.
Mark Wielaard
mark@klomp.org
Fri Jun 1 00:51:00 GMT 2018
Normal and split dwarf from GNU DebugFission look the same, but should
be treated competely separtely. When having a file with both skeletons
and real compile units only note the secoffsets into the real .debug_loc
in readelf. Otherwise or known_locslistptr will get confused.
Add a testfile that combines an normal -gdwarf-4 object with a
-gsplit-dwarf object. libdw already got this right, but add a
run-varlocs.sh test to make sure.
Signed-off-by: Mark Wielaard <mark@klomp.org>
---
src/ChangeLog | 5 +
src/readelf.c | 14 +-
tests/ChangeLog | 10 +
tests/Makefile.am | 2 +
tests/run-readelf-loc.sh | 289 ++++++++++++++++++++++++
tests/run-varlocs.sh | 42 ++++
tests/splitdwarf4-not-split4.dwo.bz2 | Bin 0 -> 931 bytes
tests/testfile-splitdwarf4-not-split4.debug.bz2 | Bin 0 -> 2230 bytes
8 files changed, 359 insertions(+), 3 deletions(-)
create mode 100644 tests/splitdwarf4-not-split4.dwo.bz2
create mode 100755 tests/testfile-splitdwarf4-not-split4.debug.bz2
diff --git a/src/ChangeLog b/src/ChangeLog
index 95f8a72..55e735b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,10 @@
2018-05-31 Mark Wielaard <mark@klomp.org>
+ * readelf.c (attr_callback): Only register section_loc when not
+ looking at a split dwarf from a skeleton.
+
+2018-05-31 Mark Wielaard <mark@klomp.org>
+
* readelf.c (print_debug_units): Print the dwo name and id when
unable to find a .dwo file.
diff --git a/src/readelf.c b/src/readelf.c
index 8d85dc8..e2d9c69 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -7077,9 +7077,17 @@ attr_callback (Dwarf_Attribute *attrp, void *arg)
{
bool nlpt;
if (cbargs->cu->version < 5)
- nlpt = notice_listptr (section_loc, &known_locsptr,
- cbargs->addrsize, cbargs->offset_size,
- cbargs->cu, num, attr);
+ {
+ if (! cbargs->is_split)
+ {
+ nlpt = notice_listptr (section_loc, &known_locsptr,
+ cbargs->addrsize,
+ cbargs->offset_size,
+ cbargs->cu, num, attr);
+ }
+ else
+ nlpt = true;
+ }
else
{
/* Only register for a real section offset. Otherwise
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 1c1ef4e..04b6e75 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,5 +1,15 @@
2018-05-31 Mark Wielaard <mark@klomp.org>
+ * splitdwarf4-not-split4.dwo.bz2: New test file.
+ * testfile-splitdwarf4-not-split4.debug.bz2: Likewise.
+ * run-readelf-loc.sh: Add test for splitdwarf4-not-split4.dwo
+ and testfile-splitdwarf4-not-split4.debug.
+ * run-varlocs.sh: Test testfile-splitdwarf4-not-split4.debug.
+ * Makefile.am (EXTRA_DIST): Add splitdwarf4-not-split4.dwo.bz2
+ and testfile-splitdwarf4-not-split4.debug.bz2.
+
+2018-05-31 Mark Wielaard <mark@klomp.org>
+
* test-subr.sh (self_test_files): Split into self_test_files_exe,
self_test_files_lib and self_test_obj.
(testrun_on_self_exe): New function.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index e935410..28ba9f7 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -238,6 +238,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh run-ar.sh \
testfile-macros-0xff.bz2 \
run-readelf-macro.sh testfilemacro.bz2 \
run-readelf-loc.sh testfileloc.bz2 \
+ splitdwarf4-not-split4.dwo.bz2 \
+ testfile-splitdwarf4-not-split4.debug.bz2 \
run-readelf-ranges.sh \
run-readelf-aranges.sh run-readelf-line.sh testfilefoobarbaz.bz2 \
testfile-ppc64-min-instr.bz2 \
diff --git a/tests/run-readelf-loc.sh b/tests/run-readelf-loc.sh
index 484db46..bf676f2 100755
--- a/tests/run-readelf-loc.sh
+++ b/tests/run-readelf-loc.sh
@@ -868,4 +868,293 @@ DWARF section [ 3] '.debug_loc.dwo' at offset 0x225:
[ 0] reg5
EOF
+# Partial dwarf-4 and partial GNU DebugFission split-dwarf.
+#
+# = popcount.c =
+#
+# int popcount (unsigned char u)
+# {
+# int c = 0;
+# while (u != 0)
+# {
+# if ((u & 1) == 1)
+# c++;
+# u >>= 1;
+# }
+# return c;
+# }
+#
+# = splitdwarf4-not-split4.c =
+#
+# extern int popcount (unsigned char);
+#
+# int main (int argc, char **argv)
+# {
+# int i;
+# int p = argc;
+# for (i = 0; i < argc; ++i)
+# p += popcount (argv[i][0]);
+# i += p;
+# return i;
+# }
+#
+# gcc -gdwarf-4 -O2 -c popcount.c
+# gcc -gdwarf-4 -gsplit-dwarf -O2 -c splitdwarf4-not-split4.c
+# gcc -o testfile-splitdwarf4-not-split4 splitdwarf4-not-split4.o popcount.o
+# eu-strip -f testfile-splitdwarf4-not-split4.debug \
+# testfile-splitdwarf4-not-split4
+
+testfiles testfile-splitdwarf4-not-split4.debug
+testfiles splitdwarf4-not-split4.dwo
+
+testrun_compare ${abs_top_builddir}/src/readelf --debug-dump=info+ --debug-dump=loc testfile-splitdwarf4-not-split4.debug <<\EOF
+
+DWARF section [28] '.debug_info' at offset 0x330:
+ [Offset]
+ Compilation unit at offset 0:
+ Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
+ Unit type: skeleton (4), Unit id: 0x3d909d7bd0e69c0b
+ [ b] compile_unit abbrev: 1
+ ranges (sec_offset) range list [ 0]
+ low_pc (addr) 000000000000000000
+ stmt_list (sec_offset) 0
+ GNU_dwo_name (strp) "splitdwarf4-not-split4.dwo"
+ comp_dir (strp) "/tmp"
+ GNU_pubnames (flag_present) yes
+ GNU_addr_base (sec_offset) address base [ 0]
+ GNU_dwo_id (data8) 0x3d909d7bd0e69c0b
+ GNU_ranges_base (sec_offset) 0
+ Split compilation unit at offset 0:
+ Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
+ Unit type: skeleton (4), Unit id: 0x3d909d7bd0e69c0b
+ { b} compile_unit abbrev: 1
+ producer (GNU_str_index) "GNU C17 9.0.0 20180528 (experimental) -mtune=generic -march=x86-64 -gdwarf-4 -gsplit-dwarf -O2"
+ language (data1) C99 (12)
+ name (GNU_str_index) "splitdwarf4-not-split4.c"
+ comp_dir (GNU_str_index) "/tmp"
+ GNU_dwo_id (data8) 0x3d909d7bd0e69c0b
+ { 18} subprogram abbrev: 2
+ external (flag_present) yes
+ name (GNU_str_index) "main"
+ decl_file (data1) splitdwarf4-not-split4.c (1)
+ decl_line (data1) 3
+ decl_column (data1) 5
+ prototyped (flag_present) yes
+ type (ref4) { 6d}
+ low_pc (GNU_addr_index) [4] 0x0000000000401050 <main>
+ high_pc (data8) 76 (0x000000000040109c <_start>)
+ frame_base (exprloc)
+ [ 0] call_frame_cfa
+ GNU_all_call_sites (flag_present) yes
+ sibling (ref4) { 6d}
+ { 30} formal_parameter abbrev: 3
+ name (GNU_str_index) "argc"
+ decl_file (data1) splitdwarf4-not-split4.c (1)
+ decl_line (data1) 3
+ decl_column (data1) 15
+ type (ref4) { 6d}
+ location (sec_offset) location list [ 0]
+ { 3d} formal_parameter abbrev: 3
+ name (GNU_str_index) "argv"
+ decl_file (data1) splitdwarf4-not-split4.c (1)
+ decl_line (data1) 3
+ decl_column (data1) 28
+ type (ref4) { 74}
+ location (sec_offset) location list [ 28]
+ { 4a} variable abbrev: 4
+ name (string) "i"
+ decl_file (data1) splitdwarf4-not-split4.c (1)
+ decl_line (data1) 5
+ decl_column (data1) 7
+ type (ref4) { 6d}
+ location (sec_offset) location list [ 47]
+ { 58} variable abbrev: 4
+ name (string) "p"
+ decl_file (data1) splitdwarf4-not-split4.c (1)
+ decl_line (data1) 6
+ decl_column (data1) 7
+ type (ref4) { 6d}
+ location (sec_offset) location list [ 73]
+ { 66} GNU_call_site abbrev: 5
+ low_pc (GNU_addr_index) [1] 0x000000000040107f <main+0x2f>
+ abstract_origin (ref4) { 84}
+ { 6d} base_type abbrev: 6
+ byte_size (data1) 4
+ encoding (data1) signed (5)
+ name (string) "int"
+ { 74} pointer_type abbrev: 7
+ byte_size (data1) 8
+ type (ref4) { 7a}
+ { 7a} pointer_type abbrev: 7
+ byte_size (data1) 8
+ type (ref4) { 80}
+ { 80} base_type abbrev: 8
+ byte_size (data1) 1
+ encoding (data1) signed_char (6)
+ name (GNU_str_index) "char"
+ { 84} subprogram abbrev: 9
+ external (flag_present) yes
+ declaration (flag_present) yes
+ linkage_name (GNU_str_index) "popcount"
+ name (GNU_str_index) "popcount"
+ decl_file (data1) splitdwarf4-not-split4.c (1)
+ decl_line (data1) 1
+ decl_column (data1) 12
+ Compilation unit at offset 52:
+ Version: 4, Abbreviation section offset: 29, Address size: 8, Offset size: 4
+ [ 3f] compile_unit abbrev: 1
+ producer (strp) "GNU C17 9.0.0 20180528 (experimental) -mtune=generic -march=x86-64 -gdwarf-4 -O2"
+ language (data1) C99 (12)
+ name (strp) "popcount.c"
+ comp_dir (strp) "/tmp"
+ low_pc (addr) 0x0000000000401180 <popcount>
+ high_pc (data8) 33 (0x00000000004011a1)
+ stmt_list (sec_offset) 145
+ [ 61] subprogram abbrev: 2
+ external (flag_present) yes
+ name (strp) "popcount"
+ decl_file (data1) popcount.c (1)
+ decl_line (data1) 1
+ decl_column (data1) 5
+ prototyped (flag_present) yes
+ type (ref4) [ a0]
+ low_pc (addr) 0x0000000000401180 <popcount>
+ high_pc (data8) 33 (0x00000000004011a1)
+ frame_base (exprloc)
+ [ 0] call_frame_cfa
+ GNU_all_call_sites (flag_present) yes
+ sibling (ref4) [ a0]
+ [ 83] formal_parameter abbrev: 3
+ name (string) "u"
+ decl_file (data1) popcount.c (1)
+ decl_line (data1) 1
+ decl_column (data1) 29
+ type (ref4) [ a7]
+ location (sec_offset) location list [ 0]
+ [ 91] variable abbrev: 4
+ name (string) "c"
+ decl_file (data1) popcount.c (1)
+ decl_line (data1) 3
+ decl_column (data1) 7
+ type (ref4) [ a0]
+ location (sec_offset) location list [ 60]
+ [ a0] base_type abbrev: 5
+ byte_size (data1) 4
+ encoding (data1) signed (5)
+ name (string) "int"
+ [ a7] base_type abbrev: 6
+ byte_size (data1) 1
+ encoding (data1) unsigned_char (8)
+ name (strp) "unsigned char"
+
+DWARF section [32] '.debug_loc' at offset 0x5ef:
+
+ CU [ 3f] base: 0x0000000000401180 <popcount>
+ [ 0] range 0, 9
+ 0x0000000000401180 <popcount>..
+ 0x0000000000401188 <popcount+0x8>
+ [ 0] reg5
+ range 9, 1b
+ 0x0000000000401189 <popcount+0x9>..
+ 0x000000000040119a <popcount+0x1a>
+ [ 0] reg1
+ range 1b, 1d
+ 0x000000000040119b <popcount+0x1b>..
+ 0x000000000040119c <popcount+0x1c>
+ [ 0] breg1 0
+ [ 2] lit1
+ [ 3] shr
+ [ 4] stack_value
+ range 1d, 21
+ 0x000000000040119d <popcount+0x1d>..
+ 0x00000000004011a0 <popcount+0x20>
+ [ 0] reg1
+ [ 60] range 0, 9
+ 0x0000000000401180 <popcount>..
+ 0x0000000000401188 <popcount+0x8>
+ [ 0] lit0
+ [ 1] stack_value
+ range 9, 20
+ 0x0000000000401189 <popcount+0x9>..
+ 0x000000000040119f <popcount+0x1f>
+ [ 0] reg0
+ range 20, 21
+ 0x00000000004011a0 <popcount+0x20>..
+ 0x00000000004011a0 <popcount+0x20>
+ [ 0] lit0
+ [ 1] stack_value
+EOF
+
+testrun_compare ${abs_top_builddir}/src/readelf --dwarf-skeleton=testfile-splitdwarf4-not-split4.debug --debug-dump=loc splitdwarf4-not-split4.dwo <<\EOF
+
+DWARF section [ 3] '.debug_loc.dwo' at offset 0x15b:
+
+ CU [ b] base: 000000000000000000
+ [ 0] range 401050, 40106e
+ 0x0000000000401050 <main>..
+ 0x000000000040106d <main+0x1d>
+ [ 0] reg5
+ range 40106e, 401086
+ 0x000000000040106e <main+0x1e>..
+ 0x0000000000401085 <main+0x35>
+ [ 0] reg12
+ range 401086, 401095
+ 0x0000000000401086 <main+0x36>..
+ 0x0000000000401094 <main+0x44>
+ [ 0] GNU_entry_value:
+ [ 0] reg5
+ [ 3] stack_value
+ range 401095, 40109c
+ 0x0000000000401095 <main+0x45>..
+ 0x000000000040109b <main+0x4b>
+ [ 0] reg5
+ [ 28] range 401050, 40106e
+ 0x0000000000401050 <main>..
+ 0x000000000040106d <main+0x1d>
+ [ 0] reg4
+ range 40106e, 401095
+ 0x000000000040106e <main+0x1e>..
+ 0x0000000000401094 <main+0x44>
+ [ 0] GNU_entry_value:
+ [ 0] reg4
+ [ 3] stack_value
+ range 401095, 40109c
+ 0x0000000000401095 <main+0x45>..
+ 0x000000000040109b <main+0x4b>
+ [ 0] reg4
+ [ 47] range 401050, 40106e
+ 0x0000000000401050 <main>..
+ 0x000000000040106d <main+0x1d>
+ [ 0] lit0
+ [ 1] stack_value
+ range 401086, 40108e
+ 0x0000000000401086 <main+0x36>..
+ 0x000000000040108d <main+0x3d>
+ [ 0] breg12 0
+ [ 2] breg6 0
+ [ 4] plus
+ [ 5] stack_value
+ range 40108e, 401095
+ 0x000000000040108e <main+0x3e>..
+ 0x0000000000401094 <main+0x44>
+ [ 0] reg0
+ range 401095, 40109c
+ 0x0000000000401095 <main+0x45>..
+ 0x000000000040109b <main+0x4b>
+ [ 0] lit0
+ [ 1] stack_value
+ [ 73] range 401050, 40106e
+ 0x0000000000401050 <main>..
+ 0x000000000040106d <main+0x1d>
+ [ 0] reg5
+ range 40106e, 401090
+ 0x000000000040106e <main+0x1e>..
+ 0x000000000040108f <main+0x3f>
+ [ 0] reg6
+ range 401095, 40109c
+ 0x0000000000401095 <main+0x45>..
+ 0x000000000040109b <main+0x4b>
+ [ 0] reg5
+EOF
+
exit 0
diff --git a/tests/run-varlocs.sh b/tests/run-varlocs.sh
index e98d8e9..b262177 100755
--- a/tests/run-varlocs.sh
+++ b/tests/run-varlocs.sh
@@ -559,4 +559,46 @@ module 'testfile-addrx_constx-4'
location (exprloc) {addr: 0x404038, deref_size(4), GNU_push_tls_address, const: 0x403e08, deref_size(4), plus, GNU_push_tls_address, const: 0x403e0c, deref_size(4), plus, GNU_push_tls_address, const: 0x403e10, deref_size(4), plus, addr: 0x404034, deref_size(4), plus, addr: 0x40403c, deref_size(4), plus, stack_value}
EOF
+# See run-readelf-loc.sh
+testfiles testfile-splitdwarf4-not-split4.debug
+testfiles splitdwarf4-not-split4.dwo
+
+testrun_compare ${abs_top_builddir}/tests/varlocs --debug -e testfile-splitdwarf4-not-split4.debug <<\EOF
+module 'testfile-splitdwarf4-not-split4.debug'
+[b] CU 'splitdwarf4-not-split4.c'
+ [18] function 'main'@401050
+ frame_base: {call_frame_cfa {...}}
+ [30] parameter 'argc'
+ [401050,40106e) {reg5}
+ [40106e,401086) {reg12}
+ [401086,401095) {GNU_entry_value(1) {reg5}, stack_value}
+ [401095,40109c) {reg5}
+ [3d] parameter 'argv'
+ [401050,40106e) {reg4}
+ [40106e,401095) {GNU_entry_value(1) {reg4}, stack_value}
+ [401095,40109c) {reg4}
+ [4a] variable 'i'
+ [401050,40106e) {lit0, stack_value}
+ [401086,40108e) {breg12(0), breg6(0), plus, stack_value}
+ [40108e,401095) {reg0}
+ [401095,40109c) {lit0, stack_value}
+ [58] variable 'p'
+ [401050,40106e) {reg5}
+ [40106e,401090) {reg6}
+ [401095,40109c) {reg5}
+module 'testfile-splitdwarf4-not-split4.debug'
+[3f] CU 'popcount.c'@401180
+ [61] function 'popcount'@401180
+ frame_base: {call_frame_cfa {...}}
+ [83] parameter 'u'
+ [401180,401189) {reg5}
+ [401189,40119b) {reg1}
+ [40119b,40119d) {breg1(0), lit1, shr, stack_value}
+ [40119d,4011a1) {reg1}
+ [91] variable 'c'
+ [401180,401189) {lit0, stack_value}
+ [401189,4011a0) {reg0}
+ [4011a0,4011a1) {lit0, stack_value}
+EOF
+
exit 0
diff --git a/tests/splitdwarf4-not-split4.dwo.bz2 b/tests/splitdwarf4-not-split4.dwo.bz2
new file mode 100644
index 0000000000000000000000000000000000000000..4346b2e6dec2f4aab7edd79aec3e96f427f62540
GIT binary patch
literal 931
zcmV;U16=$<T4*^jL0KkKS(Fm@6957HfB*mg?QeSP|NC40$8G=b|M2<l`uFwdd17zR
z#C!#H9Y8<=TngJ7!Bo)FJw{JcCQUK}O$LKN(<XuG8Vwo)O&SdV28}WR&}pHjfYVJ4
z4FED|#M1~xK|MnzgVb$C^ogJv8X5y3paVb*fB<AM7)*m800Txq8UsT>WEu!EX^<F3
zLqj0Q7$!{y0Sz?KkO6?1GGxRWG-M1A&>Cr@K*^xdh-euDO++Nq38ooMH8zH(YI+$>
z8f0map{9Un15E*-8Z>0n)C1JhLm{95X`pH88UPvu3nmy^1t?DEO~$2vK#s`BBXIHR
zUxdSEZWZp9RMvnFJP{TOn{$<WD&EHK`)1v#enJTqstB5bk?NFyBmxjtOOU+zrgo%9
zr2+&Gb##jo&iI9p5RiyTAdnKfIHW{L@vjI3aw+FD{MM;g7xYz_&YfSnrblwEtJaRP
zcuPkR*H|?(L;z$HSJG1~l>%=HrE0ybCD}x`A--q%X=k25q?l7^KpBmwcnmT+CYVD|
zkAY&hWF(V-LeI|WQ-MSl1qH-QY%R1eK2~L-pQ3ZPW5)py_y@><al&X#4cS<yQd%*V
zTUC%lY6R{oh^P^Yz!%M1dbNk-Dn?>+?51MDsiSS15(FTi@{Npdt3re(*6GWdTULi3
z6+&(a<htC{xi^P2Sr)l1U$qgPYuY|5axLnsVKdMI0CGJco5EwvAt5R9*0>^lR+qTS
z8RERR$V5EkkxF&z$g&G5cbQ%WY~@uOcL^K?G{%DFX};t?;SjVg-04B!2C$E%%C)Tv
zG94dz-r6Ud9a+_SK$1VaU@<fSE@{LW`5SrbiuQCl{#o+ad=g{#0>VbV1SFPXu==hB
zJwkwh{w8C#qR7j0h!Z92enPL!0Hau`l_a32U&V(I7w;rT%3ocEOc-ipEpaew0xAR7
z)PULiW7cO10QVz4;7&+@sv@9JfGz`17%wv*G)%Oq;D!T%HZTZY@qz?Z2+XW@BLLek
zvZ91-<Qa4g*Mu7kxoqI27sK}+qCkX(MkNp1rLiZ;g>~G3UU2Lfco08+nxM<geF(E@
zLNOXd>F21PhugR!b3+a?v<y|IEOwFq>++)JZH&6i;6V5d@<7soTITx1AEc0jyqP37
zc&;VkMI%){@N9E+y?-!;3A6+O(Cib2gONphx(7*eWXu+~iDeT@ieR_+yOJrwgoL1%
FxR}IAoL&F`
literal 0
HcmV?d00001
diff --git a/tests/testfile-splitdwarf4-not-split4.debug.bz2 b/tests/testfile-splitdwarf4-not-split4.debug.bz2
new file mode 100755
index 0000000000000000000000000000000000000000..6f4d701a9199c66e8d8a0e4684ee91da4946e468
GIT binary patch
literal 2230
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
EBg@S9z5oCK
literal 0
HcmV?d00001
--
1.8.3.1
More information about the Elfutils-devel
mailing list