This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] testsuite/gdb.dwarf2: Fix for dw2-ifort-parameter failure on ARM
- From: Omair Javaid <omair dot javaid at linaro dot org>
- To: Yao Qi <yao at codesourcery dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Thu, 16 Jan 2014 14:03:27 +0500
- Subject: Re: [PATCH] testsuite/gdb.dwarf2: Fix for dw2-ifort-parameter failure on ARM
- Authentication-results: sourceware.org; auth=none
- References: <CANW4E-2bQYjx6YdR3qGyKUsQa_KOrtmkWsZYqKzcuQBF==RPpw at mail dot gmail dot com> <CANW4E-25HdXYKMk258iO=GZ=PNM=Zu4jMbstpkSoMgE9wFpmkQ at mail dot gmail dot com> <51E4B587 dot 70007 at codesourcery dot com> <CANW4E-0vd51dTvd5qxUbeDn7ebXV-cf+WS4+VpyyGyD0MYGk8Q at mail dot gmail dot com> <5280A528 dot 8040308 at codesourcery dot com>
On Mon 11 Nov 2013 02:36:40 PM PKT, Yao Qi wrote:
> [Sorry for being late]
>
> On 09/19/2013 11:30 PM, Omair Javaid wrote:
>> (gdb) break func
>> warning: Breakpoint address adjusted from 0x000083bd to 0x000083bc.
>> Breakpoint 1 at 0x83bc (2 locations)
>
> 'break func' should insert a breakpoint at an address A after the first
> several instructions of function func, due to the effect of skip
> prologue. Address A should be an address of a thumb instruction, so it
> should be 2-byte aligned. In this case, the address should be
> 0x000083bc. I'd like to check why 0x000083bd is generated, and
> probably we should use gdbarch_addr_bits_remove somewhere.
>
There seemed no problem with how breakpoint addresses were being adjusted.
This test requires to build dwarf info by hand in dw2-ifort-parameter-debug.S
using compile time addresses so in case of arm (thumb mode) the least
significant bits of compile time address are set to 1. For that reason
0x000083bd was being used as a breakpoint address func. This test was using
that compile time address to insert breakpoint and that breakpoint was being
adjusted to an instruction before the actual intended breakpoint instruction.
I have just added a simple stepi test to make sure that we are in correct
scope when we test for a fortran constant param. This works fine for both
arm and x86.
gdb/testsuite/ChangeLog:
2014-01-16 Omair Javaid <Omair.Javaid@linaro.org>
* gdb.dwarf2/dw2-ifort-parameter.exp: Adds a new stepi test.
---
gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
index 35fb0fa..8f49eea 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
@@ -33,4 +33,6 @@ if ![runto func] {
return -1
}
+gdb_test "stepi" ".*"
+
gdb_test "p/x param" " = 0xdeadf00d"
--
1.7.9.5