diff options
-rw-r--r-- | gdb/testsuite/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/dwz.exp | 60 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/main.c | 1 |
3 files changed, 14 insertions, 57 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 59fd16e..5e9b9df 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,15 @@ 2014-11-14 Yao Qi <yao@codesourcery.com> + * gdb.dwarf2/dwz.exp: Remove the code to compile main.c to + object and get function length. + (Dwarf::assemble): Replace name, low_pc and high_pc attributes + with MACRO_AT_func. + (top-level): Replace gdb_compile and clean_restart with + prepare_for_testing. + * gdb.dwarf2/main.c (main): Add label main_label. + +2014-11-14 Yao Qi <yao@codesourcery.com> + * lib/dwarf.exp (function_range): New procedure. (Dwarf::_handle_macro_at_func): New procedure. (Dwarf::_handle_macro_at_range): New procedure. diff --git a/gdb/testsuite/gdb.dwarf2/dwz.exp b/gdb/testsuite/gdb.dwarf2/dwz.exp index 9175f9e..c7ecc2b 100644 --- a/gdb/testsuite/gdb.dwarf2/dwz.exp +++ b/gdb/testsuite/gdb.dwarf2/dwz.exp @@ -22,65 +22,18 @@ if {![dwarf2_support]} { standard_testfile main.c dwz.S -if {[gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile}1.o \ - object {nodebug}] != ""} { - return -1 -} - -# Start GDB and load object file, compute the function length which is -# needed in the Dwarf Assembler below. -clean_restart ${testfile}1.o - -set main_length "" -set test "disassemble main" -gdb_test_multiple $test $test { - -re ".*$hex <\\+($decimal)>:\[^\r\n\]+\r\nEnd of assembler dump\.\r\n$gdb_prompt $" { - set main_length $expect_out(1,string) - pass $test - } -} - -if { $main_length == "" } { - # Bail out here, because we can't do the following tests if - # $main_length is unknown. - return -1 -} - -# Compute the size of the last instruction. - -set test "x/2i main+$main_length" -gdb_test_multiple $test $test { - -re ".*($hex) <main\\+$main_length>:\[^\r\n\]+\r\n\[ \]+($hex).*\.\r\n$gdb_prompt $" { - set start $expect_out(1,string) - set end $expect_out(2,string) - - set main_length [expr $main_length + $end - $start] - pass $test - } -} - -if { $main_length == "" } { - # Bail out here, because we can't do the following tests if - # $main_length is unknown. - return -1 -} - -gdb_exit - # Create the DWARF. set asm_file [standard_output_file $srcfile2] Dwarf::assemble $asm_file { declare_labels partial_label int_label int_label2 - global main_length + global srcdir subdir srcfile extern main cu {} { partial_label: partial_unit {} { subprogram { - {name main} - {low_pc main addr} - {high_pc "main + $main_length" addr} + {MACRO_AT_func { main ${srcdir}/${subdir}/${srcfile} }} } } } @@ -128,17 +81,10 @@ Dwarf::assemble $asm_file { } } -if {[gdb_compile $asm_file ${binfile}2.o object {nodebug}] != ""} { +if [prepare_for_testing ${testfile}.exp $testfile "${asm_file} ${srcfile}" {}] { return -1 } -if {[gdb_compile [list ${binfile}1.o ${binfile}2.o] \ - "${binfile}" executable {}] != ""} { - return -1 -} - -clean_restart ${testfile} - if ![runto_main] { return -1 } diff --git a/gdb/testsuite/gdb.dwarf2/main.c b/gdb/testsuite/gdb.dwarf2/main.c index 3ddd194..e6d4715 100644 --- a/gdb/testsuite/gdb.dwarf2/main.c +++ b/gdb/testsuite/gdb.dwarf2/main.c @@ -20,5 +20,6 @@ int main() { + asm ("main_label: .globl main_label"); return 0; } |