We were printing the addr_off instead of the sym_off. And the testcases all expected the address offset instead of the symbol table offset.
* src/readelf.c (print_gdb_index_section): Print sym_off as Symbol table offset. * tests/run-readelf-gdb_index.sh: Fix up all symbol table offsets that were the same as the address offset. Signed-off-by: Mark Wielaard <m...@klomp.org> --- src/readelf.c | 2 +- tests/run-readelf-gdb_index.sh | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/readelf.c b/src/readelf.c index 48035264be13..8d96443daa83 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -11699,7 +11699,7 @@ print_gdb_index_section (Dwfl_Module *dwflmod, Ebl *ebl, printf (_("\n Symbol table at offset %#" PRIx32 " contains %zu slots:\n"), - addr_off, sym_nr); + sym_off, sym_nr); n = 0; while (dataend - readp >= 8 && n < sym_nr) diff --git a/tests/run-readelf-gdb_index.sh b/tests/run-readelf-gdb_index.sh index cd437f523ec6..8efc2e805f5a 100755 --- a/tests/run-readelf-gdb_index.sh +++ b/tests/run-readelf-gdb_index.sh @@ -86,7 +86,7 @@ GDB section [33] '.gdb_index' at offset 0xe76 contains 8383 bytes : [ 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: + Symbol table at offset 0x78 contains 1024 slots: [ 123] symbol: global, CUs: 1 [ 489] symbol: main, CUs: 0 [ 518] symbol: char, CUs: 0 @@ -117,7 +117,7 @@ GDB section [33] '.gdb_index' at offset 0xe76 contains 8399 bytes : [ 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: + Symbol table at offset 0x78 contains 1024 slots: [ 123] symbol: global, CUs: 1 (var:G) [ 489] symbol: main, CUs: 0 (func:G) [ 518] symbol: char, CUs: 0 (type:S) @@ -150,7 +150,7 @@ GDB section [33] '.gdb_index' at offset 0x38e1 contains 8415 bytes : [ 0] 0x0000000000401106 <main>..0x000000000040113b <main+0x35>, CU index: 1 [ 1] 0x000000000040113c <hello>..0x0000000000401173 <say+0x1c>, CU index: 2 - Symbol table at offset 0x54 contains 1024 slots: + Symbol table at offset 0x7c contains 1024 slots: [ 123] symbol: global, CUs: 1 (var:G), 0T (var:G) [ 489] symbol: main, CUs: 1 (func:G) [ 518] symbol: char, CUs: 0 (type:S) @@ -204,7 +204,7 @@ GDB section [35] '.gdb_index' at offset 0x37d9 contains 8395 bytes : Address list at offset 0x2c contains 1 entries: [ 0] 0x0000000000401166 <MAIN__>..0x00000000004013f0 <main+0x3a>, CU index: 0 - Symbol table at offset 0x2c contains 1024 slots: + Symbol table at offset 0x40 contains 1024 slots: [ 61] symbol: small_stride, CUs: 0 (type:S) [ 71] symbol: integer(kind=8), CUs: 0 (type:S) [ 161] symbol: character(kind=1), CUs: 0 (type:S) -- 2.46.0