This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] testsuite/gdb.dwarf2: dw2-case-insensitive.exp: p fuNC_lang fails on arm
- From: Omair Javaid <omair dot javaid at linaro dot org>
- To: gdb-patches at sourceware dot org
- Cc: Patch Tracking <patches at linaro dot org>
- Date: Tue, 1 Oct 2013 13:36:39 +0500
- Subject: Re: [PATCH] testsuite/gdb.dwarf2: dw2-case-insensitive.exp: p fuNC_lang fails on arm
- Authentication-results: sourceware.org; auth=none
- References: <CANW4E-1OpfaB=NGO5bNK=X=BZ_91Nywz_OHfLu4f_Hftgc6ung at mail dot gmail dot com>
On 26 September 2013 16:14, Omair Javaid <omair.javaid@linaro.org> wrote:
> dw2-case-insensitive.exp: p fuNC_lang fails on arm. The problem occurs
> when thumb mode code is generated. On ARM last bit of function pointer
> value indicates whether the target function is an ARM (if 0) or Thumb
> (if 1) routine. The PC address should refer to actual address in
> either case. This patch adds new compile unit and function labels to
> code which act as address ranges of compile unit and functions in
> debug information. Therefore address ranges will have correct
> addresses and not the ones with an incremented least significant bit.
> This patch has been tested on x86_64 and arm machines.
>
> gdb/testsuite/ChangeLog:
>
> 2013-09-26 Omair Javaid <Omair.Javaid@linaro.org>
>
> * gdb.dwarf2/dw2-case-insensitive-debug.S: Updated compile unit and
> function label names.
> * gdb.dwarf2/dw2-case-insensitive.c: Created function and compile
> unit labels.
>
> .../gdb.dwarf2/dw2-case-insensitive-debug.S | 8 ++++----
> gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c | 12 ++++++++++++
> 2 files changed, 16 insertions(+), 4 deletions(-)
>
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S
> b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S
> index db3cce8..22b01f9 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S
> @@ -29,14 +29,14 @@
> .ascii "file1.txt\0" /* DW_AT_name */
> .ascii "GNU C 3.3.3\0" /* DW_AT_producer */
> .byte 8 /* DW_AT_language (DW_LANG_Fortran90) */
> - .4byte FUNC_lang /* DW_AT_low_pc */
> - .4byte main /* DW_AT_high_pc */
> + .4byte cu_text_start /* DW_AT_low_pc */
> + .4byte cu_text_end /* DW_AT_high_pc */
>
> .uleb128 3 /* Abbrev: DW_TAG_subprogram */
> .byte 1 /* DW_AT_external */
> .ascii "FUNC_lang\0" /* DW_AT_name */
> - .4byte FUNC_lang /* DW_AT_low_pc */
> - .4byte main /* DW_AT_high_pc */
> + .4byte FUNC_lang_start /* DW_AT_low_pc */
> + .4byte FUNC_lang_end /* DW_AT_high_pc */
> .byte 1 /* DW_AT_prototyped */
> .4byte .Ltype - .Lcu1_begin /* DW_AT_type */
>
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c
> b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c
> index 09e9683..4b3ea07 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c
> @@ -16,12 +16,21 @@
> along with this program. If not, see <http://www.gnu.org/licenses/>. */
>
> /* Use DW_LANG_Fortran90 for case insensitive DWARF. */
> +asm (".globl cu_text_start");
> +asm ("cu_text_start:");
> +
> +asm (".globl FUNC_lang_start");
> +asm (".p2align 4");
> +asm ("FUNC_lang_start:");
>
> void
> FUNC_lang (void)
> {
> }
>
> +asm (".globl FUNC_lang_end");
> +asm ("FUNC_lang_end:");
> +
> /* Symbol is present only in ELF .symtab. */
>
> void
> @@ -36,3 +45,6 @@ main (void)
> FUNC_symtab ();
> return 0;
> }
> +
> +asm (".globl cu_text_end");
> +asm ("cu_text_end:");
> --
Ping?