Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.5:Update
gdb.27002
gdb-testsuite-fix-gdb.dwarf2-dw2-out-of-range-e...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gdb-testsuite-fix-gdb.dwarf2-dw2-out-of-range-end-of-seq.exp-on-aarch64.patch of Package gdb.27002
[gdb/testsuite] Fix gdb.dwarf2/dw2-out-of-range-end-of-seq.exp on aarch64 On aarch64-linux, with test-case gdb.dwarf2/dw2-out-of-range-end-of-seq.exp I run into: ... (gdb) run ^M Starting program: dw2-out-of-range-end-of-seq ^M ^M Program received signal SIGILL, Illegal instruction.^M main () at src/gdb/testsuite/gdb.dwarf2/main.c:1^M 1 /* This testcase is part of GDB, the GNU debugger.^M (gdb) FAIL: gdb.dwarf2/dw2-out-of-range-end-of-seq.exp: runto: run to main ... There are two problems here: - the test-case contains a hardcoded "DW_LNS_advance_pc 1" which causes the breakpoint pointing in the middle of an insn - the FAIL triggers on aarch64-linux, but not on x86_64-linux, because the test-case uses 'main_label' as the address of the first and only valid entry in the line table, and: - on aarch64-linux, there's no prologue, so main_label and main coincide, while - on x86_64-linux, there's a prologue, so main_label is different from main. Fix these problems by: - eliminating the use of "DW_LNS_advance_pc 1", and using "DW_LNE_set_address $main_end" instead, and - eliminating the use of main_label, using "DW_LNE_set_address $main_start" instead. Tested on both x86_64-linux and aarch64-linux. --- gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp b/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp index f60f622067e..749755fc771 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp +++ b/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp @@ -35,10 +35,16 @@ if !$gcc_compiled { standard_testfile main.c -dw.S +set func_info_vars [get_func_info main] + set asm_file [standard_output_file $srcfile2] Dwarf::assemble $asm_file { declare_labels Llines global srcdir subdir srcfile + global func_info_vars + foreach var $func_info_vars { + global $var + } cu {} { compile_unit { @@ -48,7 +54,9 @@ Dwarf::assemble $asm_file { } { subprogram { {external 1 flag} - {MACRO_AT_func {main}} + {name main} + {low_pc $main_start} + {high_pc $main_end addr} } } } @@ -58,11 +66,11 @@ Dwarf::assemble $asm_file { file_name "$srcfile" 1 program { - {DW_LNE_set_address main_label} + {DW_LNE_set_address $main_start} {line 1} {DW_LNS_copy} - {DW_LNS_advance_pc 1} + {DW_LNE_set_address $main_end} {DW_LNE_end_sequence} {DW_LNE_set_address 0}
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor