diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dlang/watch-loc.c | 8 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dlang/watch-loc.exp | 17 |
3 files changed, 33 insertions, 3 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 848f35f..0a29d7f 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2020-09-16 Tom de Vries <tdevries@suse.de> + + PR testsuite/26617 + * gdb.dlang/watch-loc.c: Only add .debug_aranges if + WITH_DEBUG_SECTIONS is defined. + (xstr, str): New macro. + (.debug_aranges): Use DMAIN_START_0/1/2 and DMAIN_LENGTH + to get start and size of _Dmain. + * gdb.dlang/watch-loc.exp: Pass DMAIN_START_0/1/2 and DMAIN_LENGTH + using additional_flags. + 2020-09-16 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * gdb.base/bp-cmds-sourced-script.c: New file. diff --git a/gdb/testsuite/gdb.dlang/watch-loc.c b/gdb/testsuite/gdb.dlang/watch-loc.c index de594f3..0a58f27 100644 --- a/gdb/testsuite/gdb.dlang/watch-loc.c +++ b/gdb/testsuite/gdb.dlang/watch-loc.c @@ -36,6 +36,9 @@ main (void) return _Dmain (); } +#ifdef WITH_DEBUG_SECTIONS +#define xstr(s) str(s) +#define str(s) #s /* The .debug_names-based index support depends on .debug_aranges generated by GCC. (.gdb_index includes a gdb-generated map instead.) */ @@ -52,10 +55,11 @@ asm ( " .byte 0 \n" // Size of Segment Descriptor " .2byte 0 \n" // Pad to 16 byte boundary " .2byte 0 \n" -" .4byte _Dmain \n" // Address -" .4byte _Dmain_end - _Dmain \n" // Length +" .4byte " xstr(DMAIN_START_0) xstr(DMAIN_START_1) xstr(DMAIN_START_2) "\n" // Address +" .4byte " xstr(DMAIN_LENGTH) "\n" // Length " .4byte 0 \n" " .4byte 0 \n" ".Laranges_end: \n" " .popsection \n" ); +#endif diff --git a/gdb/testsuite/gdb.dlang/watch-loc.exp b/gdb/testsuite/gdb.dlang/watch-loc.exp index d65f3c6..dcd9378 100644 --- a/gdb/testsuite/gdb.dlang/watch-loc.exp +++ b/gdb/testsuite/gdb.dlang/watch-loc.exp @@ -27,6 +27,10 @@ if {![dwarf2_support]} { standard_testfile watch-loc.c watch-loc-dw.S +lassign [function_range _Dmain ${srcdir}/${subdir}/${srcfile}] \ + dmain_start dmain_length + + # Make some DWARF for the test. set asm_file [standard_output_file $srcfile2] Dwarf::assemble $asm_file { @@ -62,8 +66,19 @@ Dwarf::assemble $asm_file { } } +set dmain_start_list [split $dmain_start] +set dmain_start_0 [lindex $dmain_start_list 0] +set dmain_start_1 [lindex $dmain_start_list 1] +set dmain_start_2 [lindex $dmain_start_list 2] + if { [prepare_for_testing "failed to prepare" ${testfile} \ - [list $srcfile $asm_file] {nodebug}] } { + [list $srcfile $asm_file] \ + "nodebug \ + additional_flags=-DWITH_DEBUG_SECTIONS \ + additional_flags=-DDMAIN_START_0=$dmain_start_0 \ + additional_flags=-DDMAIN_START_1=$dmain_start_1 \ + additional_flags=-DDMAIN_START_2=$dmain_start_2 \ + additional_flags=-DDMAIN_LENGTH=$dmain_length"] } { return -1 } |