Hi,

The new .gdb_index version 7 encodes the kind of symbol.
I also made the printing of TUs slightly clearer by printing
the actual TU number and marking it with 'T' to distinquish
from the CU number. Small testcase added that shows the new format.

Cheers,

Mark
>From 84a1e0b7396b29752f27486ec166b782a56852cb Mon Sep 17 00:00:00 2001
From: Mark Wielaard <[email protected]>
Date: Fri, 29 Jun 2012 23:38:09 +0200
Subject: [PATCH] readelf: Add .gdb_index version 7 support.

Add version 7 support. Keep track of cu_nr. Print kind and static/global
flag for each symbol. When a symbol is in the TU list add 'T'. Add
testfilegdbindex test files.

Signed-off-by: Mark Wielaard <[email protected]>
---
 src/ChangeLog                  |    6 ++
 src/readelf.c                  |   64 +++++++++++++++-----
 tests/ChangeLog                |    9 +++
 tests/Makefile.am              |    6 +-
 tests/run-readelf-gdb_index.sh |  130 ++++++++++++++++++++++++++++++++++++++++
 tests/testfilegdbindex5.bz2    |  Bin 0 -> 3481 bytes
 tests/testfilegdbindex7.bz2    |  Bin 0 -> 3497 bytes
 7 files changed, 197 insertions(+), 18 deletions(-)
 create mode 100755 tests/run-readelf-gdb_index.sh
 create mode 100755 tests/testfilegdbindex5.bz2
 create mode 100755 tests/testfilegdbindex7.bz2

diff --git a/src/ChangeLog b/src/ChangeLog
index 2928ab1..a474bb9 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2012-07-10  Mark Wielaard  <[email protected]>
+
+       * readelf.c (print_gdb_index_section): Add version 7 support.
+       Keep track of cu_nr. Print kind and static/global flag for each
+       symbol. When a symbol is in the TU list add 'T'.
+
 2012-06-26  Mark Wielaard  <[email protected]>
 
        * readelf.c (dwarf_attr_string): Add DW_AT_GNU_macros.
diff --git a/src/readelf.c b/src/readelf.c
index eb1d469..62b2100 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -7123,7 +7123,7 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl *ebl, 
GElf_Ehdr *ehdr,
   // The only difference between version 4 and version 5 is the
   // hash used for generating the table.  Version 6 contains symbols
   // for inlined functions, older versions didn't.
-  if (vers < 4 || vers > 6)
+  if (vers < 4 || vers > 7)
     {
       printf (gettext ("  unknown version, cannot parse section\n"));
       return;
@@ -7167,14 +7167,14 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl 
*ebl, GElf_Ehdr *ehdr,
   readp = data->d_buf + cu_off;
 
   const unsigned char *nextp = data->d_buf + tu_off;
-  size_t nr = (nextp - readp) / 16;
+  size_t cu_nr = (nextp - readp) / 16;
 
   printf (gettext ("\n CU list at offset %#" PRIx32
                   " contains %zu entries:\n"),
-         cu_off, nr);
+         cu_off, cu_nr);
 
   size_t n = 0;
-  while (readp + 16 <= dataend && n < nr)
+  while (readp + 16 <= dataend && n < cu_nr)
     {
       uint64_t off = read_8ubyte_unaligned (dbg, readp);
       readp += 8;
@@ -7189,14 +7189,14 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl 
*ebl, GElf_Ehdr *ehdr,
 
   readp = data->d_buf + tu_off;
   nextp = data->d_buf + addr_off;
-  nr = (nextp - readp) / 24;
+  size_t tu_nr = (nextp - readp) / 24;
 
   printf (gettext ("\n TU list at offset %#" PRIx32
                   " contains %zu entries:\n"),
-         tu_off, nr);
+         tu_off, tu_nr);
 
   n = 0;
-  while (readp + 24 <= dataend && n < nr)
+  while (readp + 24 <= dataend && n < tu_nr)
     {
       uint64_t off = read_8ubyte_unaligned (dbg, readp);
       readp += 8;
@@ -7215,14 +7215,14 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl 
*ebl, GElf_Ehdr *ehdr,
 
   readp = data->d_buf + addr_off;
   nextp = data->d_buf + sym_off;
-  nr = (nextp - readp) / 20;
+  size_t addr_nr = (nextp - readp) / 20;
 
   printf (gettext ("\n Address list at offset %#" PRIx32
                   " contains %zu entries:\n"),
-         addr_off, nr);
+         addr_off, addr_nr);
 
   n = 0;
-  while (readp + 20 <= dataend && n < nr)
+  while (readp + 20 <= dataend && n < addr_nr)
     {
       uint64_t low = read_8ubyte_unaligned (dbg, readp);
       readp += 8;
@@ -7242,14 +7242,14 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl 
*ebl, GElf_Ehdr *ehdr,
 
   readp = data->d_buf + sym_off;
   nextp = data->d_buf + const_off;
-  nr = (nextp - readp) / 8;
+  size_t sym_nr = (nextp - readp) / 8;
 
   printf (gettext ("\n Symbol table at offset %#" PRIx32
                   " contains %zu slots:\n"),
-         addr_off, nr);
+         addr_off, sym_nr);
 
   n = 0;
-  while (readp + 8 <= dataend && n < nr)
+  while (readp + 8 <= dataend && n < sym_nr)
     {
       uint32_t name = read_4ubyte_unaligned (dbg, readp);
       readp += 4;
@@ -7272,10 +7272,42 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl 
*ebl, GElf_Ehdr *ehdr,
          uint32_t cus = read_4ubyte_unaligned (dbg, readcus);
          while (cus--)
            {
-             uint32_t cu;
+             uint32_t cu_kind, cu, kind;
+             bool is_static;
              readcus += 4;
-             cu = read_4ubyte_unaligned (dbg, readcus);
-             printf ("%" PRId32 "%s", cu, ((cus > 0) ? ", " : ""));
+             cu_kind = read_4ubyte_unaligned (dbg, readcus);
+             cu = cu_kind & ((1 << 24) - 1);
+             kind = (cu_kind >> 28) & 7;
+             is_static = cu_kind & (1 << 31);
+             if (cu > cu_nr - 1)
+               printf ("%" PRId32 "T", cu - (uint32_t) cu_nr);
+             else
+               printf ("%" PRId32, cu);
+             if (kind != 0)
+               {
+                 printf (" (");
+                 switch (kind)
+                   {
+                   case 1:
+                     printf ("type");
+                     break;
+                   case 2:
+                     printf ("var");
+                     break;
+                   case 3:
+                     printf ("func");
+                     break;
+                   case 4:
+                     printf ("other");
+                     break;
+                   default:
+                     printf ("unknown-0x%" PRIx32, kind);
+                     break;
+                   }
+                 printf (":%c)", (is_static ? 'S' : 'G'));
+               }
+             if (cus > 0)
+               printf (", ");
            }
          printf ("\n");
        }
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 9b64917..9cc13c5 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,12 @@
+2012-06-27  Mark Wielaard  <[email protected]>
+
+       * run-readelf-gdb-index.sh: New test.
+       * testfilegdbindex5.bz2: New testfile.
+       * testfilegdbindex7.bz2: Likewise.
+       * Makefile.am (TESTS): Add run-readelf-gdb-index.sh.
+       (EXTRA_DIST): run-readelf-gdb_index.sh, testfilegdbindex5.bz2 and
+       testfilegdbindex7.bz2.
+
 2012-06-26  Mark Wielaard  <[email protected]>
 
        * run-macro-test.sh: New test.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 39e58ae..4d7fa22 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -79,8 +79,8 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \
        run-early-offscn.sh run-dwarf-getmacros.sh \
        run-test-flag-nobits.sh run-prelink-addr-test.sh \
        run-dwarf-getstring.sh run-rerequest_tag.sh run-typeiter.sh \
-       run-readelf-d.sh run-unstrip-n.sh run-low_high_pc.sh \
-       run-macro-test.sh
+       run-readelf-d.sh run-readelf-gdb_index.sh run-unstrip-n.sh \
+       run-low_high_pc.sh run-macro-test.sh
 
 if !STANDALONE
 noinst_PROGRAMS += msg_tst md5-sha1-test
@@ -157,6 +157,8 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
             testfile56.bz2 testfile57.bz2 testfile58.bz2 \
             run-typeiter.sh testfile59.bz2 \
             run-readelf-d.sh testlib_dynseg.so.bz2 \
+            run-readelf-gdb_index.sh testfilegdbindex5.bz2 \
+            testfilegdbindex7.bz2 \
             run-unstrip-n.sh testcore-rtlib.bz2 \
             run-low_high_pc.sh testfile_low_high_pc.bz2 \
             run-macro-test.sh testfile-macinfo.bz2 testfile-macros.bz2
diff --git a/tests/run-readelf-gdb_index.sh b/tests/run-readelf-gdb_index.sh
new file mode 100755
index 0000000..31c94c1
--- /dev/null
+++ b/tests/run-readelf-gdb_index.sh
@@ -0,0 +1,130 @@
+#! /bin/sh
+# Copyright (C) 2012 Red Hat, Inc.
+# This file is part of elfutils.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# elfutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+. $srcdir/test-subr.sh
+
+# common.h
+# struct foo
+# {
+#   const char *bar;
+# };
+#
+# extern char *global;
+# int say (struct foo *prefix);
+
+# hello.c
+# #include "common.h"
+#
+# static char *hello = "Hello";
+#
+# int
+# main (int argc, char **argv)
+# {
+#   struct foo baz;
+#   global = hello;
+#   baz.bar = global;
+#   return say(&baz);
+# }
+
+# world.c
+# #include "common.h"
+#
+# char *global;
+#
+# static int hello (const char *bar)
+# {
+#   return bar == global;
+# }
+#
+# int
+# say (struct foo *prefix)
+# {
+#   return hello (prefix->bar);
+# }
+
+# gcc -g -fdebug-types-section -c hello.c
+# gcc -g -fdebug-types-section -c world.c
+# gcc -g -fdebug-types-section -o testfilegdbindex7 hello.o world.o
+# gdb testfilegdbindex7
+# (gdb) save gdb-index .
+# objcopy --add-section .gdb_index=testfilegdbindex7.gdb-index 
--set-section-flags .gdb_index=readonly testfilegdbindex7 testfilegdbindex7
+
+testfiles testfilegdbindex5 testfilegdbindex7
+
+testrun_compare ../src/readelf --debug-dump=gdb_index testfilegdbindex5 <<\EOF
+
+GDB section [33] '.gdb_index' at offset 0xe76 contains 8383 bytes :
+ Version:         5
+ CU offset:       0x18
+ TU offset:       0x38
+ address offset:  0x50
+ symbol offset:   0x78
+ constant offset: 0x2078
+
+ CU list at offset 0x18 contains 2 entries:
+ [   0] start: 00000000, length:   184
+ [   1] start: 0x0000b8, length:   204
+
+ TU list at offset 0x38 contains 1 entries:
+ [   0] CU offset:     0, type offset:    29, signature: 0x87e03f92cc37cdf0
+
+ Address list at offset 0x50 contains 2 entries:
+ [   0] 0x000000000040049c <main>..0x00000000004004d1 <main+0x35>, CU index:   
  0
+ [   1] 0x00000000004004d4 <hello>..0x000000000040050b <say+0x1c>, CU index:   
  1
+
+ Symbol table at offset 0x50 contains 1024 slots:
+ [ 123] symbol: global, CUs: 1
+ [ 489] symbol: main, CUs: 0
+ [ 518] symbol: char, CUs: 0
+ [ 661] symbol: foo, CUs: 0T
+ [ 741] symbol: hello, CUs: 0, 1
+ [ 746] symbol: say, CUs: 1
+ [ 754] symbol: int, CUs: 0
+EOF
+
+testrun_compare ../src/readelf --debug-dump=gdb_index testfilegdbindex7 <<\EOF
+
+GDB section [33] '.gdb_index' at offset 0xe76 contains 8399 bytes :
+ Version:         7
+ CU offset:       0x18
+ TU offset:       0x38
+ address offset:  0x50
+ symbol offset:   0x78
+ constant offset: 0x2078
+
+ CU list at offset 0x18 contains 2 entries:
+ [   0] start: 00000000, length:   184
+ [   1] start: 0x0000b8, length:   204
+
+ TU list at offset 0x38 contains 1 entries:
+ [   0] CU offset:     0, type offset:    29, signature: 0x87e03f92cc37cdf0
+
+ Address list at offset 0x50 contains 2 entries:
+ [   0] 0x000000000040049c <main>..0x00000000004004d1 <main+0x35>, CU index:   
  0
+ [   1] 0x00000000004004d4 <hello>..0x000000000040050b <say+0x1c>, CU index:   
  1
+
+ Symbol table at offset 0x50 contains 1024 slots:
+ [ 123] symbol: global, CUs: 1 (var:G)
+ [ 489] symbol: main, CUs: 0 (func:G)
+ [ 518] symbol: char, CUs: 0 (type:S)
+ [ 661] symbol: foo, CUs: 0T (type:S)
+ [ 741] symbol: hello, CUs: 0 (var:S), 1 (func:S)
+ [ 746] symbol: say, CUs: 1 (func:G)
+ [ 754] symbol: int, CUs: 0 (type:S)
+EOF
+
+exit 0
diff --git a/tests/testfilegdbindex5.bz2 b/tests/testfilegdbindex5.bz2
new file mode 100755
index 
0000000000000000000000000000000000000000..45ee945a2af4562f22be666e906c045f658bb0fc
GIT binary patch
literal 3481
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
H`%YGX9{)R@

literal 0
HcmV?d00001

diff --git a/tests/testfilegdbindex7.bz2 b/tests/testfilegdbindex7.bz2
new file mode 100755
index 
0000000000000000000000000000000000000000..2a7c6c2cee11136f76787cfa6e8e612550f72dcd
GIT binary patch
literal 3497
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
XP#qVq=L(7{zxcb7DZ+$<AY%2fMSDBb

literal 0
HcmV?d00001

-- 
1.7.10.4

_______________________________________________
elfutils-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/elfutils-devel

Reply via email to