diff options
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/maint.exp | 9 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dlang/watch-loc.c | 20 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S | 18 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/gdb-index.exp | 19 | ||||
-rw-r--r-- | gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c | 21 |
6 files changed, 87 insertions, 11 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 53a2ca4..48bad29 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2017-12-08 Jan Kratochvil <jan.kratochvil@redhat.com> + Pedro Alves <palves@redhat.com> + + * gdb.base/maint.exp (check for .gdb_index): Check also for + .debug_names. + * gdb.dlang/watch-loc.c (.debug_aranges): New. + * gdb.dwarf2/dw2-case-insensitive-debug.S: Likewise. + * gdb.dwarf2/gdb-index.exp (check if index present, .gdb_index used) + (.gdb_index used after symbol reloading): Support also .debug_names. + * gdb.mi/dw2-ref-missing-frame-func.c (.debug_aranges): New. + 2017-12-08 Yao Qi <yao.qi@linaro.org> * gdb.arch/aarch64-tagged-pointer.c (main): Update. diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp index 782a21c..8d1a4d0 100644 --- a/gdb/testsuite/gdb.base/maint.exp +++ b/gdb/testsuite/gdb.base/maint.exp @@ -89,10 +89,13 @@ if ![runto_main] then { perror "tests suppressed" } -# If we're using .gdb_index there will be no psymtabs. +# If we're using .gdb_index or .debug_names there will be no psymtabs. set have_gdb_index 0 -gdb_test_multiple "maint info sections .gdb_index" "check for .gdb_index" { - -re ": .gdb_index.*$gdb_prompt $" { +gdb_test_multiple "maint info sections .gdb_index .debug_names" "check for .gdb_index" { + -re ": \\.gdb_index .*\r\n$gdb_prompt $" { + set have_gdb_index 1 + } + -re ": \\.debug_names .*\r\n$gdb_prompt $" { set have_gdb_index 1 } -re ".*$gdb_prompt $" { diff --git a/gdb/testsuite/gdb.dlang/watch-loc.c b/gdb/testsuite/gdb.dlang/watch-loc.c index 0ffc377..3b993db 100644 --- a/gdb/testsuite/gdb.dlang/watch-loc.c +++ b/gdb/testsuite/gdb.dlang/watch-loc.c @@ -34,3 +34,23 @@ main (void) return _Dmain (); } +/* The .debug_names-based index support depends on .debug_aranges + generated by GCC. (.gdb_index includes a gdb-generated map + instead.) */ +asm ( +" .pushsection .debug_aranges,\"\",@progbits \n" +" .4byte .Laranges_end - .Laranges_start \n" // Length of Address Ranges Info +".Laranges_start: \n" +" .2byte 0x2 \n" // DWARF Version +" .4byte 0 \n" // .Ldebug_info0 - Offset of Compilation Unit Info +" .byte 4 \n" // Size of Address +" .byte 0 \n" // Size of Segment Descriptor +" .2byte 0 \n" // Pad to 16 byte boundary +" .2byte 0 \n" +" .4byte _Dmain \n" // Address +" .4byte 0x1000 \n" // Length +" .4byte 0 \n" +" .4byte 0 \n" +".Laranges_end: \n" +" .popsection \n" +); diff --git a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S index 3bbd725..ad19f81 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S +++ b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S @@ -57,6 +57,24 @@ .byte 0 /* End of children of CU */ .Lcu1_end: + /* The .debug_names-based index support depends on + .debug_aranges generated by GCC. (.gdb_index includes a + gdb-generated map instead.) */ + .section .debug_aranges,"",@progbits + .4byte .Laranges_end - .Laranges_start // Length of Address Ranges Info +.Laranges_start: + .2byte 0x2 // DWARF Version + .4byte 0 // .Ldebug_info0 - Offset of Compilation Unit Info + .byte PTRBITS / 8 // Size of Address + .byte 0 // Size of Segment Descriptor + .2byte 0 // Pad to 16 byte boundary + .2byte 0 + PTRBYTE cu_text_start // Address + PTRBYTE 0x1000 // cu_text_end - cu_text_start // Length + PTRBYTE 0 + PTRBYTE 0 +.Laranges_end: + /* Abbrev table */ .section .debug_abbrev .Labbrev1_begin: diff --git a/gdb/testsuite/gdb.dwarf2/gdb-index.exp b/gdb/testsuite/gdb.dwarf2/gdb-index.exp index c925b1e..c7ddbbf 100644 --- a/gdb/testsuite/gdb.dwarf2/gdb-index.exp +++ b/gdb/testsuite/gdb.dwarf2/gdb-index.exp @@ -58,7 +58,7 @@ proc add_gdb_index { program } { return ${program_with_index} } -# Build a copy of the program with .gdb_index. +# Build a copy of the program with an index (.gdb_index/.debug_names). # But only if the toolchain didn't already create one: gdb doesn't support # building an index from a program already using one. @@ -67,6 +67,9 @@ gdb_test_multiple "mt print objfiles ${testfile}" $test { -re "gdb_index.*${gdb_prompt} $" { set binfile_with_index $binfile } + -re "debug_names.*${gdb_prompt} $" { + set binfile_with_index $binfile + } -re "Psymtabs.*${gdb_prompt} $" { set binfile_with_index [add_gdb_index $binfile] if { ${binfile_with_index} == "" } { @@ -75,16 +78,16 @@ gdb_test_multiple "mt print objfiles ${testfile}" $test { } } -# Ok, we have a copy of $binfile with .gdb_index. +# Ok, we have a copy of $binfile with an index. # Restart gdb and verify the index was used. clean_restart ${binfile_with_index} gdb_test "mt print objfiles ${testfile}" \ - "gdb_index.*" \ - ".gdb_index used" + "(gdb_index|debug_names).*" \ + "index used" -# Make gdb re-read symbols and see if .gdb_index still gets used. -# symtab/15885 +# Make gdb re-read symbols and see if .gdb_index/.debug_names still +# gets used. symtab/15885 # There is gdb_touch_execfile, but it doesn't handle remote hosts. # Is touch portable enough? @@ -98,5 +101,5 @@ if ![runto_main] { return -1 } gdb_test "mt print objfiles ${testfile}" \ - "gdb_index.*" \ - ".gdb_index used after symbol reloading" + "(gdb_index|debug_names).*" \ + "index used after symbol reloading" diff --git a/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c b/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c index 0c2a153..785cf43 100644 --- a/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c +++ b/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c @@ -52,3 +52,24 @@ asm ("func_loopfb_end:"); asm (".globl cu_text_end"); asm ("cu_text_end:"); + +/* The .debug_names-based index support depends on .debug_aranges + generated by GCC. (.gdb_index includes a gdb-generated map + instead.) */ +asm ( +" .pushsection .debug_aranges,\"\",@progbits \n" +" .4byte .Laranges_end - .Laranges_start \n" // Length of Address Ranges Info +".Laranges_start: \n" +" .2byte 0x2 \n" // DWARF Version +" .4byte 0 \n" // .Ldebug_info0 - Offset of Compilation Unit Info +" .byte 4 \n" // Size of Address +" .byte 0 \n" // Size of Segment Descriptor +" .2byte 0 \n" // Pad to 16 byte boundary +" .2byte 0 \n" +" .4byte cu_text_start \n" // Address +" .4byte cu_text_end - cu_text_start \n" // Length +" .4byte 0 \n" +" .4byte 0 \n" +".Laranges_end: \n" +" .popsection \n" +); |