gdb: Handle multiple base address in debug_ranges data.
Commit Message
It is possible to use multiple base addresses within a single address
range series, within the .debug_ranges section. The following is a
simplified example for 32-bit addresses:
.section ".debug_ranges"
.4byte 0xffffffff
.4byte BASE_1
.4byte START_OFFSET_1
.4byte END_OFFSET_1
.4byte START_OFFSET_2
.4byte END_OFFSET_2
.4byte 0xffffffff
.4byte BASE_2
.4byte START_OFFSET_3
.4byte END_OFFSET_3
.4byte 0
.4byte 0
In this example START/END 1 and 2 are relative to BASE_1, while
START/END 3 are relative to BASE_2.
Currently gdb does not correctly parse this DWARF, resulting in
corrupted address range information. This commit fixes this issue, and
adds a new test to cover this case.
gdb/ChangeLog:
* dwarf2read.c (dwarf2_ranges_read): Unify and fix base address
reading code.
gdb/testsuite/ChangeLog:
* gdb.arch/amd64-debug-ranges-base.c: New file.
* gdb.arch/amd64-debug-ranges-base.exp: New file.
* gdb.arch/amd64-debug-ranges-base.s: New file.
---
gdb/ChangeLog | 5 +
gdb/dwarf2read.c | 19 +-
gdb/testsuite/ChangeLog | 6 +
gdb/testsuite/gdb.arch/amd64-debug-ranges-base.c | 34 +
gdb/testsuite/gdb.arch/amd64-debug-ranges-base.exp | 39 +
gdb/testsuite/gdb.arch/amd64-debug-ranges-base.s | 1540 ++++++++++++++++++++
6 files changed, 1627 insertions(+), 16 deletions(-)
create mode 100644 gdb/testsuite/gdb.arch/amd64-debug-ranges-base.c
create mode 100644 gdb/testsuite/gdb.arch/amd64-debug-ranges-base.exp
create mode 100644 gdb/testsuite/gdb.arch/amd64-debug-ranges-base.s
Comments
Andrew Burgess <andrew.burgess@embecosm.com> writes:
> It is possible to use multiple base addresses within a single address
> range series, within the .debug_ranges section. The following is a
> simplified example for 32-bit addresses:
>
> .section ".debug_ranges"
> .4byte 0xffffffff
> .4byte BASE_1
> .4byte START_OFFSET_1
> .4byte END_OFFSET_1
> .4byte START_OFFSET_2
> .4byte END_OFFSET_2
> .4byte 0xffffffff
> .4byte BASE_2
> .4byte START_OFFSET_3
> .4byte END_OFFSET_3
> .4byte 0
> .4byte 0
>
> In this example START/END 1 and 2 are relative to BASE_1, while
> START/END 3 are relative to BASE_2.
>
> Currently gdb does not correctly parse this DWARF, resulting in
> corrupted address range information. This commit fixes this issue, and
> adds a new test to cover this case.
>
> gdb/ChangeLog:
>
> * dwarf2read.c (dwarf2_ranges_read): Unify and fix base address
> reading code.
>
> gdb/testsuite/ChangeLog:
>
> * gdb.arch/amd64-debug-ranges-base.c: New file.
> * gdb.arch/amd64-debug-ranges-base.exp: New file.
> * gdb.arch/amd64-debug-ranges-base.s: New file.
Hi.
The code patch is fine with me, nice find.
IWBN to enhance the dwarf assembler (testsuite/lib/dwarf.exp)
to handle .debug_ranges. The more we get away from checking in
generated assembler the better.
Can do?
If not, I'll volunteer to take that on, but I can't promise to
get to it this week. .debug_ranges is pretty simple so I think(!)
this will be easy.
[Though if we go with the generated assembler, take out the 3 in -g3.
I mention this more for completeness sake though, as I'd really like
to see if we can do this with the dwarf assembler first.]
>
> diff --git a/gdb/ChangeLog b/gdb/ChangeLog
> index 8646e6d..d5649d1 100644
> --- a/gdb/ChangeLog
> +++ b/gdb/ChangeLog
> @@ -1,3 +1,8 @@
> +2015-10-15 Andrew Burgess <andrew.burgess@embecosm.com>
> +
> + * dwarf2read.c (dwarf2_ranges_read): Unify and fix base address
> + reading code.
> +
> 2015-10-15 Yao Qi <yao.qi@linaro.org>
>
> * aarch64-linux-nat.c (aarch64_linux_insert_hw_breakpoint):
> diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
> index 0c45d29..e75d5bb 100644
> --- a/gdb/dwarf2read.c
> +++ b/gdb/dwarf2read.c
> @@ -11894,7 +11894,6 @@ dwarf2_ranges_read (unsigned offset, CORE_ADDR *low_return,
> int found_base;
> unsigned int dummy;
> const gdb_byte *buffer;
> - CORE_ADDR marker;
> int low_set;
> CORE_ADDR low = 0;
> CORE_ADDR high = 0;
> @@ -11913,18 +11912,6 @@ dwarf2_ranges_read (unsigned offset, CORE_ADDR *low_return,
> }
> buffer = dwarf2_per_objfile->ranges.buffer + offset;
>
> - /* Read in the largest possible address. */
> - marker = read_address (obfd, buffer, cu, &dummy);
> - if ((marker & mask) == mask)
> - {
> - /* If we found the largest possible address, then
> - read the base address. */
> - base = read_address (obfd, buffer + addr_size, cu, &dummy);
> - buffer += 2 * addr_size;
> - offset += 2 * addr_size;
> - found_base = 1;
> - }
> -
> low_set = 0;
>
> baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
> @@ -11949,9 +11936,9 @@ dwarf2_ranges_read (unsigned offset, CORE_ADDR *low_return,
> the base address. Check for a base address here. */
> if ((range_beginning & mask) == mask)
> {
> - /* If we found the largest possible address, then
> - read the base address. */
> - base = read_address (obfd, buffer + addr_size, cu, &dummy);
> + /* If we found the largest possible address, then we already
> + have the base address in range_end. */
> + base = range_end;
> found_base = 1;
> continue;
> }
> diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
> index 74aa6ae..1587ac6 100644
> --- a/gdb/testsuite/ChangeLog
> +++ b/gdb/testsuite/ChangeLog
> @@ -1,3 +1,9 @@
> +2015-10-16 Andrew Burgess <andrew.burgess@embecosm.com>
> +
> + * gdb.arch/amd64-debug-ranges-base.c: New file.
> + * gdb.arch/amd64-debug-ranges-base.exp: New file.
> + * gdb.arch/amd64-debug-ranges-base.s: New file.
> +
> 2015-10-12 Andrew Burgess <andrew.burgess@embecosm.com>
>
> * gdb.base/dbx.exp (test_func): Remove xfails, update expected
> diff --git a/gdb/testsuite/gdb.arch/amd64-debug-ranges-base.c b/gdb/testsuite/gdb.arch/amd64-debug-ranges-base.c
> new file mode 100644
> index 0000000..7d2f7da
> --- /dev/null
> +++ b/gdb/testsuite/gdb.arch/amd64-debug-ranges-base.c
> @@ -0,0 +1,34 @@
> +/* This testcase is part of GDB, the GNU debugger.
> +
> + Copyright 2015 Free Software Foundation, Inc.
> +
> + This program is free software; you can redistribute it and/or modify
> + it under the terms of the GNU General Public License as published by
> + the Free Software Foundation; either version 3 of the License, or
> + (at your option) any later version.
> +
> + This program is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + GNU General Public License for more details.
> +
> + You should have received a copy of the GNU General Public License
> + along with this program. If not, see <http://www.gnu.org/licenses/>. */
> +
> +int __attribute__ ((section (".text.3")))
> +frame3 (void)
> +{
> + return 0;
> +}
> +
> +int __attribute__ ((section (".text.2")))
> +frame2 (void)
> +{
> + return 0;
> +}
> +
> +int __attribute__ ((section (".text.1")))
> +main (void)
> +{
> + return frame2 ();
> +}
> diff --git a/gdb/testsuite/gdb.arch/amd64-debug-ranges-base.exp b/gdb/testsuite/gdb.arch/amd64-debug-ranges-base.exp
> new file mode 100644
> index 0000000..cee494d
> --- /dev/null
> +++ b/gdb/testsuite/gdb.arch/amd64-debug-ranges-base.exp
> @@ -0,0 +1,39 @@
> +# Copyright (C) 2015 Free Software Foundation, Inc.
> +
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation; either version 3 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program. If not, see <http://www.gnu.org/licenses/>.
> +
> +standard_testfile .s
> +set opts {}
> +
> +if [info exists COMPILE] {
> + # make check RUNTESTFLAGS="gdb.arch/amd64-entry-value.exp COMPILE=1"
> + set srcfile ${testfile}.cc
> + lappend opts debug optimize=-O2
> +} elseif { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
> + verbose "Skipping amd64-debug-ranges-base."
> + return
> +}
> +
> +if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} $opts] } {
> + return -1
> +}
> +
> +if ![runto_main] {
> + return -1
> +}
> +
> +gdb_test "info line main" "Line \[0-9\]* of .* starts at address .* and ends at .*"
> +gdb_test "info line frame2" "Line \[0-9\]* of .* starts at address .* and ends at .*"
> +gdb_test "info line frame3" "Line \[0-9\]* of .* starts at address .* and ends at .*"
> +
> diff --git a/gdb/testsuite/gdb.arch/amd64-debug-ranges-base.s b/gdb/testsuite/gdb.arch/amd64-debug-ranges-base.s
> new file mode 100644
> index 0000000..d672b4d
> --- /dev/null
> +++ b/gdb/testsuite/gdb.arch/amd64-debug-ranges-base.s
> @@ -0,0 +1,1540 @@
> +/* This testcase is part of GDB, the GNU debugger.
> +
> + Copyright 2015 Free Software Foundation, Inc.
> +
> + This program is free software; you can redistribute it and/or modify
> + it under the terms of the GNU General Public License as published by
> + the Free Software Foundation; either version 3 of the License, or
> + (at your option) any later version.
> +
> + This program is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + GNU General Public License for more details.
> +
> + You should have received a copy of the GNU General Public License
> + along with this program. If not, see <http://www.gnu.org/licenses/>. */
> +
> +/* This file is compiled from gdb.arch/amd64-debug-ranges-base.c
> + using '-g3 -O0 -S', after which the .debug_ranges sections was
> + re-written by hand in order to contain the required (valid) DWARF. */
> +
> + .file "amd64-debug-ranges-base.c"
> + .text
> +.Ltext0:
> + .section .text.3,"ax",@progbits
> + .globl frame3
> + .type frame3, @function
> +frame3:
> +.LFB0:
> + .file 1 "amd64-debug-ranges-base.c"
> + .loc 1 20 0
> + .cfi_startproc
> + pushq %rbp
> + .cfi_def_cfa_offset 16
> + .cfi_offset 6, -16
> + movq %rsp, %rbp
> + .cfi_def_cfa_register 6
> + .loc 1 21 0
> + movl $0, %eax
> + .loc 1 22 0
> + popq %rbp
> + .cfi_def_cfa 7, 8
> + ret
> + .cfi_endproc
> +.LFE0:
> + .size frame3, .-frame3
> + .section .text.2,"ax",@progbits
> + .globl frame2
> + .type frame2, @function
> +frame2:
> +.LFB1:
> + .loc 1 26 0
> + .cfi_startproc
> + pushq %rbp
> + .cfi_def_cfa_offset 16
> + .cfi_offset 6, -16
> + movq %rsp, %rbp
> + .cfi_def_cfa_register 6
> + .loc 1 27 0
> + movl $0, %eax
> + .loc 1 28 0
> + popq %rbp
> + .cfi_def_cfa 7, 8
> + ret
> + .cfi_endproc
> +.LFE1:
> + .size frame2, .-frame2
> + .section .text.1,"ax",@progbits
> + .globl main
> + .type main, @function
> +main:
> +.LFB2:
> + .loc 1 32 0
> + .cfi_startproc
> + pushq %rbp
> + .cfi_def_cfa_offset 16
> + .cfi_offset 6, -16
> + movq %rsp, %rbp
> + .cfi_def_cfa_register 6
> + .loc 1 33 0
> + call frame2
> + .loc 1 34 0
> + popq %rbp
> + .cfi_def_cfa 7, 8
> + ret
> + .cfi_endproc
> +.LFE2:
> + .size main, .-main
> + .text
> +.Letext0:
> + .section .debug_info,"",@progbits
> +.Ldebug_info0:
> + .long 0x88
> + .value 0x4
> + .long .Ldebug_abbrev0
> + .byte 0x8
> + .uleb128 0x1
> + .long .LASF251
> + .byte 0xc
> + .long .LASF252
> + .long .LASF253
> + .long .Ldebug_ranges0+0
> + .quad 0
> + .long .Ldebug_line0
> + .long .Ldebug_macro0
> + .uleb128 0x2
> + .long .LASF248
> + .byte 0x1
> + .byte 0x13
> + .long 0x4a
> + .quad .LFB0
> + .quad .LFE0-.LFB0
> + .uleb128 0x1
> + .byte 0x9c
> + .uleb128 0x3
> + .byte 0x4
> + .byte 0x5
> + .string "int"
> + .uleb128 0x2
> + .long .LASF249
> + .byte 0x1
> + .byte 0x19
> + .long 0x4a
> + .quad .LFB1
> + .quad .LFE1-.LFB1
> + .uleb128 0x1
> + .byte 0x9c
> + .uleb128 0x4
> + .long .LASF250
> + .byte 0x1
> + .byte 0x1f
> + .long 0x4a
> + .quad .LFB2
> + .quad .LFE2-.LFB2
> + .uleb128 0x1
> + .byte 0x9c
> + .byte 0
> + .section .debug_abbrev,"",@progbits
> +.Ldebug_abbrev0:
> + .uleb128 0x1
> + .uleb128 0x11
> + .byte 0x1
> + .uleb128 0x25
> + .uleb128 0xe
> + .uleb128 0x13
> + .uleb128 0xb
> + .uleb128 0x3
> + .uleb128 0xe
> + .uleb128 0x1b
> + .uleb128 0xe
> + .uleb128 0x55
> + .uleb128 0x17
> + .uleb128 0x11
> + .uleb128 0x1
> + .uleb128 0x10
> + .uleb128 0x17
> + .uleb128 0x2119
> + .uleb128 0x17
> + .byte 0
> + .byte 0
> + .uleb128 0x2
> + .uleb128 0x2e
> + .byte 0
> + .uleb128 0x3f
> + .uleb128 0x19
> + .uleb128 0x3
> + .uleb128 0xe
> + .uleb128 0x3a
> + .uleb128 0xb
> + .uleb128 0x3b
> + .uleb128 0xb
> + .uleb128 0x27
> + .uleb128 0x19
> + .uleb128 0x49
> + .uleb128 0x13
> + .uleb128 0x11
> + .uleb128 0x1
> + .uleb128 0x12
> + .uleb128 0x7
> + .uleb128 0x40
> + .uleb128 0x18
> + .uleb128 0x2117
> + .uleb128 0x19
> + .byte 0
> + .byte 0
> + .uleb128 0x3
> + .uleb128 0x24
> + .byte 0
> + .uleb128 0xb
> + .uleb128 0xb
> + .uleb128 0x3e
> + .uleb128 0xb
> + .uleb128 0x3
> + .uleb128 0x8
> + .byte 0
> + .byte 0
> + .uleb128 0x4
> + .uleb128 0x2e
> + .byte 0
> + .uleb128 0x3f
> + .uleb128 0x19
> + .uleb128 0x3
> + .uleb128 0xe
> + .uleb128 0x3a
> + .uleb128 0xb
> + .uleb128 0x3b
> + .uleb128 0xb
> + .uleb128 0x27
> + .uleb128 0x19
> + .uleb128 0x49
> + .uleb128 0x13
> + .uleb128 0x11
> + .uleb128 0x1
> + .uleb128 0x12
> + .uleb128 0x7
> + .uleb128 0x40
> + .uleb128 0x18
> + .uleb128 0x2116
> + .uleb128 0x19
> + .byte 0
> + .byte 0
> + .byte 0
> + .section .debug_aranges,"",@progbits
> + .long 0x4c
> + .value 0x2
> + .long .Ldebug_info0
> + .byte 0x8
> + .byte 0
> + .value 0
> + .value 0
> + .quad .LFB0
> + .quad .LFE0-.LFB0
> + .quad .LFB1
> + .quad .LFE1-.LFB1
> + .quad .LFB2
> + .quad .LFE2-.LFB2
> + .quad 0
> + .quad 0
> + .section .debug_ranges,"",@progbits
> +.Ldebug_ranges0:
> + .quad 0xffffffffffffffff
> + .quad .LFB0
> + .quad 0
> + .quad .LFE0 - .LFB0
> + .quad 0xffffffffffffffff
> + .quad .LFB1
> + .quad 0
> + .quad .LFE1 - .LFB1
> + .quad 0xffffffffffffffff
> + .quad .LFB2
> + .quad 0
> + .quad .LFE2 - .LFB2
> + .quad 0
> + .quad 0
> + .section .debug_macro,"",@progbits
> +.Ldebug_macro0:
> + .value 0x4
> + .byte 0x2
> + .long .Ldebug_line0
> + .byte 0x7
> + .long .Ldebug_macro1
> + .byte 0x3
> + .uleb128 0
> + .uleb128 0x1
> + .file 2 "/usr/include/stdc-predef.h"
> + .byte 0x3
> + .uleb128 0
> + .uleb128 0x2
> + .byte 0x7
> + .long .Ldebug_macro2
> + .byte 0x4
> + .byte 0x4
> + .byte 0
> + .section .debug_macro,"G",@progbits,wm4.0.9fc6967513006a990da6a9952cf266ea,comdat
> +.Ldebug_macro1:
> + .value 0x4
> + .byte 0
> + .byte 0x5
> + .uleb128 0
> + .long .LASF0
> + .byte 0x5
> + .uleb128 0
> + .long .LASF1
> + .byte 0x5
> + .uleb128 0
> + .long .LASF2
> + .byte 0x5
> + .uleb128 0
> + .long .LASF3
> + .byte 0x5
> + .uleb128 0
> + .long .LASF4
> + .byte 0x5
> + .uleb128 0
> + .long .LASF5
> + .byte 0x5
> + .uleb128 0
> + .long .LASF6
> + .byte 0x5
> + .uleb128 0
> + .long .LASF7
> + .byte 0x5
> + .uleb128 0
> + .long .LASF8
> + .byte 0x5
> + .uleb128 0
> + .long .LASF9
> + .byte 0x5
> + .uleb128 0
> + .long .LASF10
> + .byte 0x5
> + .uleb128 0
> + .long .LASF11
> + .byte 0x5
> + .uleb128 0
> + .long .LASF12
> + .byte 0x5
> + .uleb128 0
> + .long .LASF13
> + .byte 0x5
> + .uleb128 0
> + .long .LASF14
> + .byte 0x5
> + .uleb128 0
> + .long .LASF15
> + .byte 0x5
> + .uleb128 0
> + .long .LASF16
> + .byte 0x5
> + .uleb128 0
> + .long .LASF17
> + .byte 0x5
> + .uleb128 0
> + .long .LASF18
> + .byte 0x5
> + .uleb128 0
> + .long .LASF19
> + .byte 0x5
> + .uleb128 0
> + .long .LASF20
> + .byte 0x5
> + .uleb128 0
> + .long .LASF21
> + .byte 0x5
> + .uleb128 0
> + .long .LASF22
> + .byte 0x5
> + .uleb128 0
> + .long .LASF23
> + .byte 0x5
> + .uleb128 0
> + .long .LASF24
> + .byte 0x5
> + .uleb128 0
> + .long .LASF25
> + .byte 0x5
> + .uleb128 0
> + .long .LASF26
> + .byte 0x5
> + .uleb128 0
> + .long .LASF27
> + .byte 0x5
> + .uleb128 0
> + .long .LASF28
> + .byte 0x5
> + .uleb128 0
> + .long .LASF29
> + .byte 0x5
> + .uleb128 0
> + .long .LASF30
> + .byte 0x5
> + .uleb128 0
> + .long .LASF31
> + .byte 0x5
> + .uleb128 0
> + .long .LASF32
> + .byte 0x5
> + .uleb128 0
> + .long .LASF33
> + .byte 0x5
> + .uleb128 0
> + .long .LASF34
> + .byte 0x5
> + .uleb128 0
> + .long .LASF35
> + .byte 0x5
> + .uleb128 0
> + .long .LASF36
> + .byte 0x5
> + .uleb128 0
> + .long .LASF37
> + .byte 0x5
> + .uleb128 0
> + .long .LASF38
> + .byte 0x5
> + .uleb128 0
> + .long .LASF39
> + .byte 0x5
> + .uleb128 0
> + .long .LASF40
> + .byte 0x5
> + .uleb128 0
> + .long .LASF41
> + .byte 0x5
> + .uleb128 0
> + .long .LASF42
> + .byte 0x5
> + .uleb128 0
> + .long .LASF43
> + .byte 0x5
> + .uleb128 0
> + .long .LASF44
> + .byte 0x5
> + .uleb128 0
> + .long .LASF45
> + .byte 0x5
> + .uleb128 0
> + .long .LASF46
> + .byte 0x5
> + .uleb128 0
> + .long .LASF47
> + .byte 0x5
> + .uleb128 0
> + .long .LASF48
> + .byte 0x5
> + .uleb128 0
> + .long .LASF49
> + .byte 0x5
> + .uleb128 0
> + .long .LASF50
> + .byte 0x5
> + .uleb128 0
> + .long .LASF51
> + .byte 0x5
> + .uleb128 0
> + .long .LASF52
> + .byte 0x5
> + .uleb128 0
> + .long .LASF53
> + .byte 0x5
> + .uleb128 0
> + .long .LASF54
> + .byte 0x5
> + .uleb128 0
> + .long .LASF55
> + .byte 0x5
> + .uleb128 0
> + .long .LASF56
> + .byte 0x5
> + .uleb128 0
> + .long .LASF57
> + .byte 0x5
> + .uleb128 0
> + .long .LASF58
> + .byte 0x5
> + .uleb128 0
> + .long .LASF59
> + .byte 0x5
> + .uleb128 0
> + .long .LASF60
> + .byte 0x5
> + .uleb128 0
> + .long .LASF61
> + .byte 0x5
> + .uleb128 0
> + .long .LASF62
> + .byte 0x5
> + .uleb128 0
> + .long .LASF63
> + .byte 0x5
> + .uleb128 0
> + .long .LASF64
> + .byte 0x5
> + .uleb128 0
> + .long .LASF65
> + .byte 0x5
> + .uleb128 0
> + .long .LASF66
> + .byte 0x5
> + .uleb128 0
> + .long .LASF67
> + .byte 0x5
> + .uleb128 0
> + .long .LASF68
> + .byte 0x5
> + .uleb128 0
> + .long .LASF69
> + .byte 0x5
> + .uleb128 0
> + .long .LASF70
> + .byte 0x5
> + .uleb128 0
> + .long .LASF71
> + .byte 0x5
> + .uleb128 0
> + .long .LASF72
> + .byte 0x5
> + .uleb128 0
> + .long .LASF73
> + .byte 0x5
> + .uleb128 0
> + .long .LASF74
> + .byte 0x5
> + .uleb128 0
> + .long .LASF75
> + .byte 0x5
> + .uleb128 0
> + .long .LASF76
> + .byte 0x5
> + .uleb128 0
> + .long .LASF77
> + .byte 0x5
> + .uleb128 0
> + .long .LASF78
> + .byte 0x5
> + .uleb128 0
> + .long .LASF79
> + .byte 0x5
> + .uleb128 0
> + .long .LASF80
> + .byte 0x5
> + .uleb128 0
> + .long .LASF81
> + .byte 0x5
> + .uleb128 0
> + .long .LASF82
> + .byte 0x5
> + .uleb128 0
> + .long .LASF83
> + .byte 0x5
> + .uleb128 0
> + .long .LASF84
> + .byte 0x5
> + .uleb128 0
> + .long .LASF85
> + .byte 0x5
> + .uleb128 0
> + .long .LASF86
> + .byte 0x5
> + .uleb128 0
> + .long .LASF87
> + .byte 0x5
> + .uleb128 0
> + .long .LASF88
> + .byte 0x5
> + .uleb128 0
> + .long .LASF89
> + .byte 0x5
> + .uleb128 0
> + .long .LASF90
> + .byte 0x5
> + .uleb128 0
> + .long .LASF91
> + .byte 0x5
> + .uleb128 0
> + .long .LASF92
> + .byte 0x5
> + .uleb128 0
> + .long .LASF93
> + .byte 0x5
> + .uleb128 0
> + .long .LASF94
> + .byte 0x5
> + .uleb128 0
> + .long .LASF95
> + .byte 0x5
> + .uleb128 0
> + .long .LASF96
> + .byte 0x5
> + .uleb128 0
> + .long .LASF97
> + .byte 0x5
> + .uleb128 0
> + .long .LASF98
> + .byte 0x5
> + .uleb128 0
> + .long .LASF99
> + .byte 0x5
> + .uleb128 0
> + .long .LASF100
> + .byte 0x5
> + .uleb128 0
> + .long .LASF101
> + .byte 0x5
> + .uleb128 0
> + .long .LASF102
> + .byte 0x5
> + .uleb128 0
> + .long .LASF103
> + .byte 0x5
> + .uleb128 0
> + .long .LASF104
> + .byte 0x5
> + .uleb128 0
> + .long .LASF105
> + .byte 0x5
> + .uleb128 0
> + .long .LASF106
> + .byte 0x5
> + .uleb128 0
> + .long .LASF107
> + .byte 0x5
> + .uleb128 0
> + .long .LASF108
> + .byte 0x5
> + .uleb128 0
> + .long .LASF109
> + .byte 0x5
> + .uleb128 0
> + .long .LASF110
> + .byte 0x5
> + .uleb128 0
> + .long .LASF111
> + .byte 0x5
> + .uleb128 0
> + .long .LASF112
> + .byte 0x5
> + .uleb128 0
> + .long .LASF113
> + .byte 0x5
> + .uleb128 0
> + .long .LASF114
> + .byte 0x5
> + .uleb128 0
> + .long .LASF115
> + .byte 0x5
> + .uleb128 0
> + .long .LASF116
> + .byte 0x5
> + .uleb128 0
> + .long .LASF117
> + .byte 0x5
> + .uleb128 0
> + .long .LASF118
> + .byte 0x5
> + .uleb128 0
> + .long .LASF119
> + .byte 0x5
> + .uleb128 0
> + .long .LASF120
> + .byte 0x5
> + .uleb128 0
> + .long .LASF121
> + .byte 0x5
> + .uleb128 0
> + .long .LASF122
> + .byte 0x5
> + .uleb128 0
> + .long .LASF123
> + .byte 0x5
> + .uleb128 0
> + .long .LASF124
> + .byte 0x5
> + .uleb128 0
> + .long .LASF125
> + .byte 0x5
> + .uleb128 0
> + .long .LASF126
> + .byte 0x5
> + .uleb128 0
> + .long .LASF127
> + .byte 0x5
> + .uleb128 0
> + .long .LASF128
> + .byte 0x5
> + .uleb128 0
> + .long .LASF129
> + .byte 0x5
> + .uleb128 0
> + .long .LASF130
> + .byte 0x5
> + .uleb128 0
> + .long .LASF131
> + .byte 0x5
> + .uleb128 0
> + .long .LASF132
> + .byte 0x5
> + .uleb128 0
> + .long .LASF133
> + .byte 0x5
> + .uleb128 0
> + .long .LASF134
> + .byte 0x5
> + .uleb128 0
> + .long .LASF135
> + .byte 0x5
> + .uleb128 0
> + .long .LASF136
> + .byte 0x5
> + .uleb128 0
> + .long .LASF137
> + .byte 0x5
> + .uleb128 0
> + .long .LASF138
> + .byte 0x5
> + .uleb128 0
> + .long .LASF139
> + .byte 0x5
> + .uleb128 0
> + .long .LASF140
> + .byte 0x5
> + .uleb128 0
> + .long .LASF141
> + .byte 0x5
> + .uleb128 0
> + .long .LASF142
> + .byte 0x5
> + .uleb128 0
> + .long .LASF143
> + .byte 0x5
> + .uleb128 0
> + .long .LASF144
> + .byte 0x5
> + .uleb128 0
> + .long .LASF145
> + .byte 0x5
> + .uleb128 0
> + .long .LASF146
> + .byte 0x5
> + .uleb128 0
> + .long .LASF147
> + .byte 0x5
> + .uleb128 0
> + .long .LASF148
> + .byte 0x5
> + .uleb128 0
> + .long .LASF149
> + .byte 0x5
> + .uleb128 0
> + .long .LASF150
> + .byte 0x5
> + .uleb128 0
> + .long .LASF151
> + .byte 0x5
> + .uleb128 0
> + .long .LASF152
> + .byte 0x5
> + .uleb128 0
> + .long .LASF153
> + .byte 0x5
> + .uleb128 0
> + .long .LASF154
> + .byte 0x5
> + .uleb128 0
> + .long .LASF155
> + .byte 0x5
> + .uleb128 0
> + .long .LASF156
> + .byte 0x5
> + .uleb128 0
> + .long .LASF157
> + .byte 0x5
> + .uleb128 0
> + .long .LASF158
> + .byte 0x5
> + .uleb128 0
> + .long .LASF159
> + .byte 0x5
> + .uleb128 0
> + .long .LASF160
> + .byte 0x5
> + .uleb128 0
> + .long .LASF161
> + .byte 0x5
> + .uleb128 0
> + .long .LASF162
> + .byte 0x5
> + .uleb128 0
> + .long .LASF163
> + .byte 0x5
> + .uleb128 0
> + .long .LASF164
> + .byte 0x5
> + .uleb128 0
> + .long .LASF165
> + .byte 0x5
> + .uleb128 0
> + .long .LASF166
> + .byte 0x5
> + .uleb128 0
> + .long .LASF167
> + .byte 0x5
> + .uleb128 0
> + .long .LASF168
> + .byte 0x5
> + .uleb128 0
> + .long .LASF169
> + .byte 0x5
> + .uleb128 0
> + .long .LASF170
> + .byte 0x5
> + .uleb128 0
> + .long .LASF171
> + .byte 0x5
> + .uleb128 0
> + .long .LASF172
> + .byte 0x5
> + .uleb128 0
> + .long .LASF173
> + .byte 0x5
> + .uleb128 0
> + .long .LASF174
> + .byte 0x5
> + .uleb128 0
> + .long .LASF175
> + .byte 0x5
> + .uleb128 0
> + .long .LASF176
> + .byte 0x5
> + .uleb128 0
> + .long .LASF177
> + .byte 0x5
> + .uleb128 0
> + .long .LASF178
> + .byte 0x5
> + .uleb128 0
> + .long .LASF179
> + .byte 0x5
> + .uleb128 0
> + .long .LASF180
> + .byte 0x5
> + .uleb128 0
> + .long .LASF181
> + .byte 0x5
> + .uleb128 0
> + .long .LASF182
> + .byte 0x5
> + .uleb128 0
> + .long .LASF183
> + .byte 0x5
> + .uleb128 0
> + .long .LASF184
> + .byte 0x5
> + .uleb128 0
> + .long .LASF185
> + .byte 0x5
> + .uleb128 0
> + .long .LASF186
> + .byte 0x5
> + .uleb128 0
> + .long .LASF187
> + .byte 0x5
> + .uleb128 0
> + .long .LASF188
> + .byte 0x5
> + .uleb128 0
> + .long .LASF189
> + .byte 0x5
> + .uleb128 0
> + .long .LASF190
> + .byte 0x5
> + .uleb128 0
> + .long .LASF191
> + .byte 0x5
> + .uleb128 0
> + .long .LASF192
> + .byte 0x5
> + .uleb128 0
> + .long .LASF193
> + .byte 0x5
> + .uleb128 0
> + .long .LASF194
> + .byte 0x5
> + .uleb128 0
> + .long .LASF195
> + .byte 0x5
> + .uleb128 0
> + .long .LASF196
> + .byte 0x5
> + .uleb128 0
> + .long .LASF197
> + .byte 0x5
> + .uleb128 0
> + .long .LASF198
> + .byte 0x5
> + .uleb128 0
> + .long .LASF199
> + .byte 0x5
> + .uleb128 0
> + .long .LASF200
> + .byte 0x5
> + .uleb128 0
> + .long .LASF201
> + .byte 0x5
> + .uleb128 0
> + .long .LASF202
> + .byte 0x5
> + .uleb128 0
> + .long .LASF203
> + .byte 0x5
> + .uleb128 0
> + .long .LASF204
> + .byte 0x5
> + .uleb128 0
> + .long .LASF205
> + .byte 0x5
> + .uleb128 0
> + .long .LASF206
> + .byte 0x5
> + .uleb128 0
> + .long .LASF207
> + .byte 0x5
> + .uleb128 0
> + .long .LASF208
> + .byte 0x5
> + .uleb128 0
> + .long .LASF209
> + .byte 0x5
> + .uleb128 0
> + .long .LASF210
> + .byte 0x5
> + .uleb128 0
> + .long .LASF211
> + .byte 0x5
> + .uleb128 0
> + .long .LASF212
> + .byte 0x5
> + .uleb128 0
> + .long .LASF213
> + .byte 0x5
> + .uleb128 0
> + .long .LASF214
> + .byte 0x5
> + .uleb128 0
> + .long .LASF215
> + .byte 0x5
> + .uleb128 0
> + .long .LASF216
> + .byte 0x5
> + .uleb128 0
> + .long .LASF217
> + .byte 0x5
> + .uleb128 0
> + .long .LASF218
> + .byte 0x5
> + .uleb128 0
> + .long .LASF219
> + .byte 0x5
> + .uleb128 0
> + .long .LASF220
> + .byte 0x5
> + .uleb128 0
> + .long .LASF221
> + .byte 0x5
> + .uleb128 0
> + .long .LASF222
> + .byte 0x5
> + .uleb128 0
> + .long .LASF223
> + .byte 0x5
> + .uleb128 0
> + .long .LASF224
> + .byte 0x5
> + .uleb128 0
> + .long .LASF225
> + .byte 0x5
> + .uleb128 0
> + .long .LASF226
> + .byte 0x5
> + .uleb128 0
> + .long .LASF227
> + .byte 0x5
> + .uleb128 0
> + .long .LASF228
> + .byte 0x5
> + .uleb128 0
> + .long .LASF229
> + .byte 0x5
> + .uleb128 0
> + .long .LASF230
> + .byte 0x5
> + .uleb128 0
> + .long .LASF231
> + .byte 0x5
> + .uleb128 0
> + .long .LASF232
> + .byte 0x5
> + .uleb128 0
> + .long .LASF233
> + .byte 0x5
> + .uleb128 0
> + .long .LASF234
> + .byte 0x5
> + .uleb128 0
> + .long .LASF235
> + .byte 0x5
> + .uleb128 0
> + .long .LASF236
> + .byte 0x5
> + .uleb128 0
> + .long .LASF237
> + .byte 0x5
> + .uleb128 0
> + .long .LASF238
> + .byte 0x5
> + .uleb128 0
> + .long .LASF239
> + .byte 0x5
> + .uleb128 0
> + .long .LASF240
> + .byte 0x5
> + .uleb128 0
> + .long .LASF241
> + .byte 0x5
> + .uleb128 0
> + .long .LASF242
> + .byte 0
> + .section .debug_macro,"G",@progbits,wm4.stdcpredef.h.19.52894a18705f0664f8da17e99c6c0a93,comdat
> +.Ldebug_macro2:
> + .value 0x4
> + .byte 0
> + .byte 0x5
> + .uleb128 0x13
> + .long .LASF243
> + .byte 0x5
> + .uleb128 0x26
> + .long .LASF244
> + .byte 0x5
> + .uleb128 0x2e
> + .long .LASF245
> + .byte 0x5
> + .uleb128 0x3b
> + .long .LASF246
> + .byte 0x5
> + .uleb128 0x3e
> + .long .LASF247
> + .byte 0
> + .section .debug_line,"",@progbits
> +.Ldebug_line0:
> + .section .debug_str,"MS",@progbits,1
> +.LASF106:
> + .string "__UINT_LEAST8_MAX__ 0xff"
> +.LASF153:
> + .string "__DBL_DENORM_MIN__ ((double)4.94065645841246544177e-324L)"
> +.LASF218:
> + .string "__amd64__ 1"
> +.LASF235:
> + .string "__linux 1"
> +.LASF110:
> + .string "__UINT_LEAST32_MAX__ 0xffffffffU"
> +.LASF26:
> + .string "__SIZEOF_SIZE_T__ 8"
> +.LASF8:
> + .string "__VERSION__ \"5.1.1 20150618 (Red Hat 5.1.1-4)\""
> +.LASF1:
> + .string "__STDC_VERSION__ 201112L"
> +.LASF34:
> + .string "__SIZEOF_POINTER__ 8"
> +.LASF252:
> + .string "amd64-debug-ranges-base.c"
> +.LASF178:
> + .string "__DEC64_MANT_DIG__ 16"
> +.LASF128:
> + .string "__FLT_RADIX__ 2"
> +.LASF165:
> + .string "__LDBL_MIN__ 3.36210314311209350626e-4932L"
> +.LASF239:
> + .string "__unix__ 1"
> +.LASF133:
> + .string "__FLT_MAX_EXP__ 128"
> +.LASF162:
> + .string "__LDBL_MAX_10_EXP__ 4932"
> +.LASF215:
> + .string "__SIZEOF_WINT_T__ 4"
> +.LASF148:
> + .string "__DBL_MAX_10_EXP__ 308"
> +.LASF121:
> + .string "__UINT_FAST64_MAX__ 0xffffffffffffffffUL"
> +.LASF217:
> + .string "__amd64 1"
> +.LASF38:
> + .string "__WINT_TYPE__ unsigned int"
> +.LASF113:
> + .string "__UINT64_C(c) c ## UL"
> +.LASF155:
> + .string "__DBL_HAS_INFINITY__ 1"
> +.LASF233:
> + .string "__SSE2_MATH__ 1"
> +.LASF7:
> + .string "__GNUC_PATCHLEVEL__ 1"
> +.LASF236:
> + .string "__linux__ 1"
> +.LASF4:
> + .string "__STDC_HOSTED__ 1"
> +.LASF81:
> + .string "__WINT_MIN__ 0U"
> +.LASF222:
> + .string "__SIZEOF_FLOAT128__ 16"
> +.LASF246:
> + .string "__STDC_ISO_10646__ 201304L"
> +.LASF50:
> + .string "__UINT32_TYPE__ unsigned int"
> +.LASF231:
> + .string "__FXSR__ 1"
> +.LASF184:
> + .string "__DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD"
> +.LASF136:
> + .string "__FLT_MAX__ 3.40282346638528859812e+38F"
> +.LASF253:
> + .string "/path/to/binutils-gdb/src/gdb/testsuite/gdb.arch"
> +.LASF237:
> + .string "linux 1"
> +.LASF114:
> + .string "__INT_FAST8_MAX__ 0x7f"
> +.LASF156:
> + .string "__DBL_HAS_QUIET_NAN__ 1"
> +.LASF143:
> + .string "__DBL_MANT_DIG__ 53"
> +.LASF48:
> + .string "__UINT8_TYPE__ unsigned char"
> +.LASF173:
> + .string "__DEC32_MAX_EXP__ 97"
> +.LASF46:
> + .string "__INT32_TYPE__ int"
> +.LASF43:
> + .string "__SIG_ATOMIC_TYPE__ int"
> +.LASF145:
> + .string "__DBL_MIN_EXP__ (-1021)"
> +.LASF169:
> + .string "__LDBL_HAS_INFINITY__ 1"
> +.LASF20:
> + .string "__SIZEOF_LONG__ 8"
> +.LASF140:
> + .string "__FLT_HAS_DENORM__ 1"
> +.LASF95:
> + .string "__UINT16_MAX__ 0xffff"
> +.LASF204:
> + .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
> +.LASF67:
> + .string "__UINT_FAST64_TYPE__ long unsigned int"
> +.LASF123:
> + .string "__UINTPTR_MAX__ 0xffffffffffffffffUL"
> +.LASF33:
> + .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
> +.LASF108:
> + .string "__UINT_LEAST16_MAX__ 0xffff"
> +.LASF212:
> + .string "__PRAGMA_REDEFINE_EXTNAME 1"
> +.LASF53:
> + .string "__INT_LEAST16_TYPE__ short int"
> +.LASF18:
> + .string "__LP64__ 1"
> +.LASF163:
> + .string "__DECIMAL_DIG__ 21"
> +.LASF71:
> + .string "__has_include_next(STR) __has_include_next__(STR)"
> +.LASF122:
> + .string "__INTPTR_MAX__ 0x7fffffffffffffffL"
> +.LASF234:
> + .string "__gnu_linux__ 1"
> +.LASF150:
> + .string "__DBL_MAX__ ((double)1.79769313486231570815e+308L)"
> +.LASF45:
> + .string "__INT16_TYPE__ short int"
> +.LASF170:
> + .string "__LDBL_HAS_QUIET_NAN__ 1"
> +.LASF24:
> + .string "__SIZEOF_DOUBLE__ 8"
> +.LASF94:
> + .string "__UINT8_MAX__ 0xff"
> +.LASF17:
> + .string "_LP64 1"
> +.LASF51:
> + .string "__UINT64_TYPE__ long unsigned int"
> +.LASF54:
> + .string "__INT_LEAST32_TYPE__ int"
> +.LASF93:
> + .string "__INT64_MAX__ 0x7fffffffffffffffL"
> +.LASF224:
> + .string "__ATOMIC_HLE_RELEASE 131072"
> +.LASF230:
> + .string "__SSE2__ 1"
> +.LASF85:
> + .string "__INTMAX_C(c) c ## L"
> +.LASF203:
> + .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
> +.LASF213:
> + .string "__SIZEOF_INT128__ 16"
> +.LASF36:
> + .string "__PTRDIFF_TYPE__ long int"
> +.LASF174:
> + .string "__DEC32_MIN__ 1E-95DF"
> +.LASF99:
> + .string "__INT8_C(c) c"
> +.LASF21:
> + .string "__SIZEOF_LONG_LONG__ 8"
> +.LASF130:
> + .string "__FLT_DIG__ 6"
> +.LASF214:
> + .string "__SIZEOF_WCHAR_T__ 4"
> +.LASF105:
> + .string "__INT64_C(c) c ## L"
> +.LASF119:
> + .string "__UINT_FAST16_MAX__ 0xffffffffffffffffUL"
> +.LASF134:
> + .string "__FLT_MAX_10_EXP__ 38"
> +.LASF137:
> + .string "__FLT_MIN__ 1.17549435082228750797e-38F"
> +.LASF59:
> + .string "__UINT_LEAST64_TYPE__ long unsigned int"
> +.LASF25:
> + .string "__SIZEOF_LONG_DOUBLE__ 16"
> +.LASF73:
> + .string "__SCHAR_MAX__ 0x7f"
> +.LASF6:
> + .string "__GNUC_MINOR__ 1"
> +.LASF55:
> + .string "__INT_LEAST64_TYPE__ long int"
> +.LASF127:
> + .string "__DEC_EVAL_METHOD__ 2"
> +.LASF175:
> + .string "__DEC32_MAX__ 9.999999E96DF"
> +.LASF77:
> + .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
> +.LASF200:
> + .string "__GCC_ATOMIC_BOOL_LOCK_FREE 2"
> +.LASF35:
> + .string "__SIZE_TYPE__ long unsigned int"
> +.LASF159:
> + .string "__LDBL_MIN_EXP__ (-16381)"
> +.LASF125:
> + .string "__GCC_IEC_559_COMPLEX 2"
> +.LASF142:
> + .string "__FLT_HAS_QUIET_NAN__ 1"
> +.LASF152:
> + .string "__DBL_EPSILON__ ((double)2.22044604925031308085e-16L)"
> +.LASF32:
> + .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
> +.LASF100:
> + .string "__INT_LEAST16_MAX__ 0x7fff"
> +.LASF83:
> + .string "__SIZE_MAX__ 0xffffffffffffffffUL"
> +.LASF112:
> + .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffUL"
> +.LASF117:
> + .string "__INT_FAST64_MAX__ 0x7fffffffffffffffL"
> +.LASF30:
> + .string "__ORDER_BIG_ENDIAN__ 4321"
> +.LASF68:
> + .string "__INTPTR_TYPE__ long int"
> +.LASF160:
> + .string "__LDBL_MIN_10_EXP__ (-4931)"
> +.LASF210:
> + .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
> +.LASF22:
> + .string "__SIZEOF_SHORT__ 2"
> +.LASF243:
> + .string "_STDC_PREDEF_H 1"
> +.LASF101:
> + .string "__INT16_C(c) c"
> +.LASF240:
> + .string "unix 1"
> +.LASF63:
> + .string "__INT_FAST64_TYPE__ long int"
> +.LASF182:
> + .string "__DEC64_MAX__ 9.999999999999999E384DD"
> +.LASF82:
> + .string "__PTRDIFF_MAX__ 0x7fffffffffffffffL"
> +.LASF138:
> + .string "__FLT_EPSILON__ 1.19209289550781250000e-7F"
> +.LASF75:
> + .string "__INT_MAX__ 0x7fffffff"
> +.LASF208:
> + .string "__GCC_ATOMIC_LLONG_LOCK_FREE 2"
> +.LASF104:
> + .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffL"
> +.LASF186:
> + .string "__DEC128_MIN_EXP__ (-6142)"
> +.LASF13:
> + .string "__ATOMIC_RELEASE 3"
> +.LASF149:
> + .string "__DBL_DECIMAL_DIG__ 17"
> +.LASF144:
> + .string "__DBL_DIG__ 15"
> +.LASF135:
> + .string "__FLT_DECIMAL_DIG__ 9"
> +.LASF11:
> + .string "__ATOMIC_SEQ_CST 5"
> +.LASF188:
> + .string "__DEC128_MIN__ 1E-6143DL"
> +.LASF28:
> + .string "__BIGGEST_ALIGNMENT__ 16"
> +.LASF19:
> + .string "__SIZEOF_INT__ 4"
> +.LASF62:
> + .string "__INT_FAST32_TYPE__ long int"
> +.LASF206:
> + .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
> +.LASF187:
> + .string "__DEC128_MAX_EXP__ 6145"
> +.LASF91:
> + .string "__INT16_MAX__ 0x7fff"
> +.LASF198:
> + .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
> +.LASF180:
> + .string "__DEC64_MAX_EXP__ 385"
> +.LASF14:
> + .string "__ATOMIC_ACQ_REL 4"
> +.LASF129:
> + .string "__FLT_MANT_DIG__ 24"
> +.LASF5:
> + .string "__GNUC__ 5"
> +.LASF40:
> + .string "__UINTMAX_TYPE__ long unsigned int"
> +.LASF245:
> + .string "__STDC_IEC_559_COMPLEX__ 1"
> +.LASF205:
> + .string "__GCC_ATOMIC_SHORT_LOCK_FREE 2"
> +.LASF189:
> + .string "__DEC128_MAX__ 9.999999999999999999999999999999999E6144DL"
> +.LASF9:
> + .string "__GNUC_RH_RELEASE__ 4"
> +.LASF57:
> + .string "__UINT_LEAST16_TYPE__ short unsigned int"
> +.LASF69:
> + .string "__UINTPTR_TYPE__ long unsigned int"
> +.LASF147:
> + .string "__DBL_MAX_EXP__ 1024"
> +.LASF0:
> + .string "__STDC__ 1"
> +.LASF241:
> + .string "__ELF__ 1"
> +.LASF126:
> + .string "__FLT_EVAL_METHOD__ 0"
> +.LASF84:
> + .string "__INTMAX_MAX__ 0x7fffffffffffffffL"
> +.LASF12:
> + .string "__ATOMIC_ACQUIRE 2"
> +.LASF66:
> + .string "__UINT_FAST32_TYPE__ long unsigned int"
> +.LASF102:
> + .string "__INT_LEAST32_MAX__ 0x7fffffff"
> +.LASF201:
> + .string "__GCC_ATOMIC_CHAR_LOCK_FREE 2"
> +.LASF190:
> + .string "__DEC128_EPSILON__ 1E-33DL"
> +.LASF64:
> + .string "__UINT_FAST8_TYPE__ unsigned char"
> +.LASF61:
> + .string "__INT_FAST16_TYPE__ long int"
> +.LASF172:
> + .string "__DEC32_MIN_EXP__ (-94)"
> +.LASF92:
> + .string "__INT32_MAX__ 0x7fffffff"
> +.LASF158:
> + .string "__LDBL_DIG__ 18"
> +.LASF244:
> + .string "__STDC_IEC_559__ 1"
> +.LASF191:
> + .string "__DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL"
> +.LASF164:
> + .string "__LDBL_MAX__ 1.18973149535723176502e+4932L"
> +.LASF223:
> + .string "__ATOMIC_HLE_ACQUIRE 65536"
> +.LASF232:
> + .string "__SSE_MATH__ 1"
> +.LASF115:
> + .string "__INT_FAST16_MAX__ 0x7fffffffffffffffL"
> +.LASF151:
> + .string "__DBL_MIN__ ((double)2.22507385850720138309e-308L)"
> +.LASF185:
> + .string "__DEC128_MANT_DIG__ 34"
> +.LASF103:
> + .string "__INT32_C(c) c"
> +.LASF179:
> + .string "__DEC64_MIN_EXP__ (-382)"
> +.LASF79:
> + .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
> +.LASF197:
> + .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1"
> +.LASF161:
> + .string "__LDBL_MAX_EXP__ 16384"
> +.LASF226:
> + .string "__k8__ 1"
> +.LASF42:
> + .string "__CHAR32_TYPE__ unsigned int"
> +.LASF86:
> + .string "__UINTMAX_MAX__ 0xffffffffffffffffUL"
> +.LASF76:
> + .string "__LONG_MAX__ 0x7fffffffffffffffL"
> +.LASF52:
> + .string "__INT_LEAST8_TYPE__ signed char"
> +.LASF109:
> + .string "__UINT16_C(c) c"
> +.LASF74:
> + .string "__SHRT_MAX__ 0x7fff"
> +.LASF23:
> + .string "__SIZEOF_FLOAT__ 4"
> +.LASF199:
> + .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1"
> +.LASF78:
> + .string "__WCHAR_MAX__ 0x7fffffff"
> +.LASF166:
> + .string "__LDBL_EPSILON__ 1.08420217248550443401e-19L"
> +.LASF31:
> + .string "__ORDER_PDP_ENDIAN__ 3412"
> +.LASF29:
> + .string "__ORDER_LITTLE_ENDIAN__ 1234"
> +.LASF251:
> + .string "GNU C11 5.1.1 20150618 (Red Hat 5.1.1-4) -mtune=generic -march=x86-64 -g3 -O0"
> +.LASF238:
> + .string "__unix 1"
> +.LASF10:
> + .string "__ATOMIC_RELAXED 0"
> +.LASF80:
> + .string "__WINT_MAX__ 0xffffffffU"
> +.LASF220:
> + .string "__x86_64__ 1"
> +.LASF171:
> + .string "__DEC32_MANT_DIG__ 7"
> +.LASF183:
> + .string "__DEC64_EPSILON__ 1E-15DD"
> +.LASF124:
> + .string "__GCC_IEC_559 2"
> +.LASF120:
> + .string "__UINT_FAST32_MAX__ 0xffffffffffffffffUL"
> +.LASF228:
> + .string "__MMX__ 1"
> +.LASF131:
> + .string "__FLT_MIN_EXP__ (-125)"
> +.LASF72:
> + .string "__GXX_ABI_VERSION 1008"
> +.LASF88:
> + .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
> +.LASF247:
> + .string "__STDC_NO_THREADS__ 1"
> +.LASF65:
> + .string "__UINT_FAST16_TYPE__ long unsigned int"
> +.LASF167:
> + .string "__LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L"
> +.LASF141:
> + .string "__FLT_HAS_INFINITY__ 1"
> +.LASF116:
> + .string "__INT_FAST32_MAX__ 0x7fffffffffffffffL"
> +.LASF44:
> + .string "__INT8_TYPE__ signed char"
> +.LASF87:
> + .string "__UINTMAX_C(c) c ## UL"
> +.LASF2:
> + .string "__STDC_UTF_16__ 1"
> +.LASF39:
> + .string "__INTMAX_TYPE__ long int"
> +.LASF195:
> + .string "__NO_INLINE__ 1"
> +.LASF168:
> + .string "__LDBL_HAS_DENORM__ 1"
> +.LASF70:
> + .string "__has_include(STR) __has_include__(STR)"
> +.LASF202:
> + .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 2"
> +.LASF221:
> + .string "__SIZEOF_FLOAT80__ 16"
> +.LASF192:
> + .string "__REGISTER_PREFIX__ "
> +.LASF15:
> + .string "__ATOMIC_CONSUME 1"
> +.LASF97:
> + .string "__UINT64_MAX__ 0xffffffffffffffffUL"
> +.LASF3:
> + .string "__STDC_UTF_32__ 1"
> +.LASF49:
> + .string "__UINT16_TYPE__ short unsigned int"
> +.LASF229:
> + .string "__SSE__ 1"
> +.LASF111:
> + .string "__UINT32_C(c) c ## U"
> +.LASF225:
> + .string "__k8 1"
> +.LASF177:
> + .string "__DEC32_SUBNORMAL_MIN__ 0.000001E-95DF"
> +.LASF249:
> + .string "frame2"
> +.LASF248:
> + .string "frame3"
> +.LASF216:
> + .string "__SIZEOF_PTRDIFF_T__ 8"
> +.LASF27:
> + .string "__CHAR_BIT__ 8"
> +.LASF60:
> + .string "__INT_FAST8_TYPE__ signed char"
> +.LASF89:
> + .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
> +.LASF176:
> + .string "__DEC32_EPSILON__ 1E-6DF"
> +.LASF58:
> + .string "__UINT_LEAST32_TYPE__ unsigned int"
> +.LASF154:
> + .string "__DBL_HAS_DENORM__ 1"
> +.LASF227:
> + .string "__code_model_small__ 1"
> +.LASF157:
> + .string "__LDBL_MANT_DIG__ 64"
> +.LASF207:
> + .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
> +.LASF242:
> + .string "__DECIMAL_BID_FORMAT__ 1"
> +.LASF90:
> + .string "__INT8_MAX__ 0x7f"
> +.LASF118:
> + .string "__UINT_FAST8_MAX__ 0xff"
> +.LASF132:
> + .string "__FLT_MIN_10_EXP__ (-37)"
> +.LASF209:
> + .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
> +.LASF37:
> + .string "__WCHAR_TYPE__ int"
> +.LASF16:
> + .string "__FINITE_MATH_ONLY__ 0"
> +.LASF193:
> + .string "__USER_LABEL_PREFIX__ "
> +.LASF41:
> + .string "__CHAR16_TYPE__ short unsigned int"
> +.LASF107:
> + .string "__UINT8_C(c) c"
> +.LASF219:
> + .string "__x86_64 1"
> +.LASF56:
> + .string "__UINT_LEAST8_TYPE__ unsigned char"
> +.LASF47:
> + .string "__INT64_TYPE__ long int"
> +.LASF196:
> + .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1"
> +.LASF250:
> + .string "main"
> +.LASF96:
> + .string "__UINT32_MAX__ 0xffffffffU"
> +.LASF211:
> + .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
> +.LASF98:
> + .string "__INT_LEAST8_MAX__ 0x7f"
> +.LASF181:
> + .string "__DEC64_MIN__ 1E-383DD"
> +.LASF146:
> + .string "__DBL_MIN_10_EXP__ (-307)"
> +.LASF139:
> + .string "__FLT_DENORM_MIN__ 1.40129846432481707092e-45F"
> +.LASF194:
> + .string "__GNUC_STDC_INLINE__ 1"
> + .ident "GCC: (GNU) 5.1.1 20150618 (Red Hat 5.1.1-4)"
> + .section .note.GNU-stack,"",@progbits
* Doug Evans <xdje42@gmail.com> [2015-10-26 01:57:08 +0000]:
> Andrew Burgess <andrew.burgess@embecosm.com> writes:
> > It is possible to use multiple base addresses within a single address
> > range series, within the .debug_ranges section. The following is a
> > simplified example for 32-bit addresses:
> >
> > .section ".debug_ranges"
> > .4byte 0xffffffff
> > .4byte BASE_1
> > .4byte START_OFFSET_1
> > .4byte END_OFFSET_1
> > .4byte START_OFFSET_2
> > .4byte END_OFFSET_2
> > .4byte 0xffffffff
> > .4byte BASE_2
> > .4byte START_OFFSET_3
> > .4byte END_OFFSET_3
> > .4byte 0
> > .4byte 0
> >
> > In this example START/END 1 and 2 are relative to BASE_1, while
> > START/END 3 are relative to BASE_2.
> >
> > Currently gdb does not correctly parse this DWARF, resulting in
> > corrupted address range information. This commit fixes this issue, and
> > adds a new test to cover this case.
> >
> > gdb/ChangeLog:
> >
> > * dwarf2read.c (dwarf2_ranges_read): Unify and fix base address
> > reading code.
> >
> > gdb/testsuite/ChangeLog:
> >
> > * gdb.arch/amd64-debug-ranges-base.c: New file.
> > * gdb.arch/amd64-debug-ranges-base.exp: New file.
> > * gdb.arch/amd64-debug-ranges-base.s: New file.
>
> Hi.
>
> The code patch is fine with me, nice find.
>
> IWBN to enhance the dwarf assembler (testsuite/lib/dwarf.exp)
> to handle .debug_ranges. The more we get away from checking in
> generated assembler the better.
> Can do?
> If not, I'll volunteer to take that on, but I can't promise to
> get to it this week. .debug_ranges is pretty simple so I think(!)
> this will be easy.
This was absolutely my first thought too, and I even stated working on
exactly this feature.
I got the .debug_ranges table generation to a reasonable state, but
then I needed more features from the .debug_line table generator, but
I ran out of time....
Anyway, you can find the initial work I did here:
https://github.com/T-J-Teru/binutils-gdb/commits/gdb-dwarf-ranges
that branch doesn't contain the fix, just the initial work on writing
a test to expose the bug. Feel free to take any code out of that
branch if it is useful to you.
> [Though if we go with the generated assembler, take out the 3 in -g3.
> I mention this more for completeness sake though, as I'd really like
> to see if we can do this with the dwarf assembler first.]
I'd rather not push the fix without a test, and I don't think you're
approving the current test, so...
I'll hopefully get more time to work on this next month, if I don't
get approval for the current patch before then I'll return to working
on the dwarf assembler style testing.
Thanks for the review,
Andrew
@@ -1,3 +1,8 @@
+2015-10-15 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * dwarf2read.c (dwarf2_ranges_read): Unify and fix base address
+ reading code.
+
2015-10-15 Yao Qi <yao.qi@linaro.org>
* aarch64-linux-nat.c (aarch64_linux_insert_hw_breakpoint):
@@ -11894,7 +11894,6 @@ dwarf2_ranges_read (unsigned offset, CORE_ADDR *low_return,
int found_base;
unsigned int dummy;
const gdb_byte *buffer;
- CORE_ADDR marker;
int low_set;
CORE_ADDR low = 0;
CORE_ADDR high = 0;
@@ -11913,18 +11912,6 @@ dwarf2_ranges_read (unsigned offset, CORE_ADDR *low_return,
}
buffer = dwarf2_per_objfile->ranges.buffer + offset;
- /* Read in the largest possible address. */
- marker = read_address (obfd, buffer, cu, &dummy);
- if ((marker & mask) == mask)
- {
- /* If we found the largest possible address, then
- read the base address. */
- base = read_address (obfd, buffer + addr_size, cu, &dummy);
- buffer += 2 * addr_size;
- offset += 2 * addr_size;
- found_base = 1;
- }
-
low_set = 0;
baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
@@ -11949,9 +11936,9 @@ dwarf2_ranges_read (unsigned offset, CORE_ADDR *low_return,
the base address. Check for a base address here. */
if ((range_beginning & mask) == mask)
{
- /* If we found the largest possible address, then
- read the base address. */
- base = read_address (obfd, buffer + addr_size, cu, &dummy);
+ /* If we found the largest possible address, then we already
+ have the base address in range_end. */
+ base = range_end;
found_base = 1;
continue;
}
@@ -1,3 +1,9 @@
+2015-10-16 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.arch/amd64-debug-ranges-base.c: New file.
+ * gdb.arch/amd64-debug-ranges-base.exp: New file.
+ * gdb.arch/amd64-debug-ranges-base.s: New file.
+
2015-10-12 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.base/dbx.exp (test_func): Remove xfails, update expected
new file mode 100644
@@ -0,0 +1,34 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2015 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+int __attribute__ ((section (".text.3")))
+frame3 (void)
+{
+ return 0;
+}
+
+int __attribute__ ((section (".text.2")))
+frame2 (void)
+{
+ return 0;
+}
+
+int __attribute__ ((section (".text.1")))
+main (void)
+{
+ return frame2 ();
+}
new file mode 100644
@@ -0,0 +1,39 @@
+# Copyright (C) 2015 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+standard_testfile .s
+set opts {}
+
+if [info exists COMPILE] {
+ # make check RUNTESTFLAGS="gdb.arch/amd64-entry-value.exp COMPILE=1"
+ set srcfile ${testfile}.cc
+ lappend opts debug optimize=-O2
+} elseif { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
+ verbose "Skipping amd64-debug-ranges-base."
+ return
+}
+
+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} $opts] } {
+ return -1
+}
+
+if ![runto_main] {
+ return -1
+}
+
+gdb_test "info line main" "Line \[0-9\]* of .* starts at address .* and ends at .*"
+gdb_test "info line frame2" "Line \[0-9\]* of .* starts at address .* and ends at .*"
+gdb_test "info line frame3" "Line \[0-9\]* of .* starts at address .* and ends at .*"
+
new file mode 100644
@@ -0,0 +1,1540 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2015 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* This file is compiled from gdb.arch/amd64-debug-ranges-base.c
+ using '-g3 -O0 -S', after which the .debug_ranges sections was
+ re-written by hand in order to contain the required (valid) DWARF. */
+
+ .file "amd64-debug-ranges-base.c"
+ .text
+.Ltext0:
+ .section .text.3,"ax",@progbits
+ .globl frame3
+ .type frame3, @function
+frame3:
+.LFB0:
+ .file 1 "amd64-debug-ranges-base.c"
+ .loc 1 20 0
+ .cfi_startproc
+ pushq %rbp
+ .cfi_def_cfa_offset 16
+ .cfi_offset 6, -16
+ movq %rsp, %rbp
+ .cfi_def_cfa_register 6
+ .loc 1 21 0
+ movl $0, %eax
+ .loc 1 22 0
+ popq %rbp
+ .cfi_def_cfa 7, 8
+ ret
+ .cfi_endproc
+.LFE0:
+ .size frame3, .-frame3
+ .section .text.2,"ax",@progbits
+ .globl frame2
+ .type frame2, @function
+frame2:
+.LFB1:
+ .loc 1 26 0
+ .cfi_startproc
+ pushq %rbp
+ .cfi_def_cfa_offset 16
+ .cfi_offset 6, -16
+ movq %rsp, %rbp
+ .cfi_def_cfa_register 6
+ .loc 1 27 0
+ movl $0, %eax
+ .loc 1 28 0
+ popq %rbp
+ .cfi_def_cfa 7, 8
+ ret
+ .cfi_endproc
+.LFE1:
+ .size frame2, .-frame2
+ .section .text.1,"ax",@progbits
+ .globl main
+ .type main, @function
+main:
+.LFB2:
+ .loc 1 32 0
+ .cfi_startproc
+ pushq %rbp
+ .cfi_def_cfa_offset 16
+ .cfi_offset 6, -16
+ movq %rsp, %rbp
+ .cfi_def_cfa_register 6
+ .loc 1 33 0
+ call frame2
+ .loc 1 34 0
+ popq %rbp
+ .cfi_def_cfa 7, 8
+ ret
+ .cfi_endproc
+.LFE2:
+ .size main, .-main
+ .text
+.Letext0:
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .long 0x88
+ .value 0x4
+ .long .Ldebug_abbrev0
+ .byte 0x8
+ .uleb128 0x1
+ .long .LASF251
+ .byte 0xc
+ .long .LASF252
+ .long .LASF253
+ .long .Ldebug_ranges0+0
+ .quad 0
+ .long .Ldebug_line0
+ .long .Ldebug_macro0
+ .uleb128 0x2
+ .long .LASF248
+ .byte 0x1
+ .byte 0x13
+ .long 0x4a
+ .quad .LFB0
+ .quad .LFE0-.LFB0
+ .uleb128 0x1
+ .byte 0x9c
+ .uleb128 0x3
+ .byte 0x4
+ .byte 0x5
+ .string "int"
+ .uleb128 0x2
+ .long .LASF249
+ .byte 0x1
+ .byte 0x19
+ .long 0x4a
+ .quad .LFB1
+ .quad .LFE1-.LFB1
+ .uleb128 0x1
+ .byte 0x9c
+ .uleb128 0x4
+ .long .LASF250
+ .byte 0x1
+ .byte 0x1f
+ .long 0x4a
+ .quad .LFB2
+ .quad .LFE2-.LFB2
+ .uleb128 0x1
+ .byte 0x9c
+ .byte 0
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .uleb128 0x1
+ .uleb128 0x11
+ .byte 0x1
+ .uleb128 0x25
+ .uleb128 0xe
+ .uleb128 0x13
+ .uleb128 0xb
+ .uleb128 0x3
+ .uleb128 0xe
+ .uleb128 0x1b
+ .uleb128 0xe
+ .uleb128 0x55
+ .uleb128 0x17
+ .uleb128 0x11
+ .uleb128 0x1
+ .uleb128 0x10
+ .uleb128 0x17
+ .uleb128 0x2119
+ .uleb128 0x17
+ .byte 0
+ .byte 0
+ .uleb128 0x2
+ .uleb128 0x2e
+ .byte 0
+ .uleb128 0x3f
+ .uleb128 0x19
+ .uleb128 0x3
+ .uleb128 0xe
+ .uleb128 0x3a
+ .uleb128 0xb
+ .uleb128 0x3b
+ .uleb128 0xb
+ .uleb128 0x27
+ .uleb128 0x19
+ .uleb128 0x49
+ .uleb128 0x13
+ .uleb128 0x11
+ .uleb128 0x1
+ .uleb128 0x12
+ .uleb128 0x7
+ .uleb128 0x40
+ .uleb128 0x18
+ .uleb128 0x2117
+ .uleb128 0x19
+ .byte 0
+ .byte 0
+ .uleb128 0x3
+ .uleb128 0x24
+ .byte 0
+ .uleb128 0xb
+ .uleb128 0xb
+ .uleb128 0x3e
+ .uleb128 0xb
+ .uleb128 0x3
+ .uleb128 0x8
+ .byte 0
+ .byte 0
+ .uleb128 0x4
+ .uleb128 0x2e
+ .byte 0
+ .uleb128 0x3f
+ .uleb128 0x19
+ .uleb128 0x3
+ .uleb128 0xe
+ .uleb128 0x3a
+ .uleb128 0xb
+ .uleb128 0x3b
+ .uleb128 0xb
+ .uleb128 0x27
+ .uleb128 0x19
+ .uleb128 0x49
+ .uleb128 0x13
+ .uleb128 0x11
+ .uleb128 0x1
+ .uleb128 0x12
+ .uleb128 0x7
+ .uleb128 0x40
+ .uleb128 0x18
+ .uleb128 0x2116
+ .uleb128 0x19
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .long 0x4c
+ .value 0x2
+ .long .Ldebug_info0
+ .byte 0x8
+ .byte 0
+ .value 0
+ .value 0
+ .quad .LFB0
+ .quad .LFE0-.LFB0
+ .quad .LFB1
+ .quad .LFE1-.LFB1
+ .quad .LFB2
+ .quad .LFE2-.LFB2
+ .quad 0
+ .quad 0
+ .section .debug_ranges,"",@progbits
+.Ldebug_ranges0:
+ .quad 0xffffffffffffffff
+ .quad .LFB0
+ .quad 0
+ .quad .LFE0 - .LFB0
+ .quad 0xffffffffffffffff
+ .quad .LFB1
+ .quad 0
+ .quad .LFE1 - .LFB1
+ .quad 0xffffffffffffffff
+ .quad .LFB2
+ .quad 0
+ .quad .LFE2 - .LFB2
+ .quad 0
+ .quad 0
+ .section .debug_macro,"",@progbits
+.Ldebug_macro0:
+ .value 0x4
+ .byte 0x2
+ .long .Ldebug_line0
+ .byte 0x7
+ .long .Ldebug_macro1
+ .byte 0x3
+ .uleb128 0
+ .uleb128 0x1
+ .file 2 "/usr/include/stdc-predef.h"
+ .byte 0x3
+ .uleb128 0
+ .uleb128 0x2
+ .byte 0x7
+ .long .Ldebug_macro2
+ .byte 0x4
+ .byte 0x4
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.0.9fc6967513006a990da6a9952cf266ea,comdat
+.Ldebug_macro1:
+ .value 0x4
+ .byte 0
+ .byte 0x5
+ .uleb128 0
+ .long .LASF0
+ .byte 0x5
+ .uleb128 0
+ .long .LASF1
+ .byte 0x5
+ .uleb128 0
+ .long .LASF2
+ .byte 0x5
+ .uleb128 0
+ .long .LASF3
+ .byte 0x5
+ .uleb128 0
+ .long .LASF4
+ .byte 0x5
+ .uleb128 0
+ .long .LASF5
+ .byte 0x5
+ .uleb128 0
+ .long .LASF6
+ .byte 0x5
+ .uleb128 0
+ .long .LASF7
+ .byte 0x5
+ .uleb128 0
+ .long .LASF8
+ .byte 0x5
+ .uleb128 0
+ .long .LASF9
+ .byte 0x5
+ .uleb128 0
+ .long .LASF10
+ .byte 0x5
+ .uleb128 0
+ .long .LASF11
+ .byte 0x5
+ .uleb128 0
+ .long .LASF12
+ .byte 0x5
+ .uleb128 0
+ .long .LASF13
+ .byte 0x5
+ .uleb128 0
+ .long .LASF14
+ .byte 0x5
+ .uleb128 0
+ .long .LASF15
+ .byte 0x5
+ .uleb128 0
+ .long .LASF16
+ .byte 0x5
+ .uleb128 0
+ .long .LASF17
+ .byte 0x5
+ .uleb128 0
+ .long .LASF18
+ .byte 0x5
+ .uleb128 0
+ .long .LASF19
+ .byte 0x5
+ .uleb128 0
+ .long .LASF20
+ .byte 0x5
+ .uleb128 0
+ .long .LASF21
+ .byte 0x5
+ .uleb128 0
+ .long .LASF22
+ .byte 0x5
+ .uleb128 0
+ .long .LASF23
+ .byte 0x5
+ .uleb128 0
+ .long .LASF24
+ .byte 0x5
+ .uleb128 0
+ .long .LASF25
+ .byte 0x5
+ .uleb128 0
+ .long .LASF26
+ .byte 0x5
+ .uleb128 0
+ .long .LASF27
+ .byte 0x5
+ .uleb128 0
+ .long .LASF28
+ .byte 0x5
+ .uleb128 0
+ .long .LASF29
+ .byte 0x5
+ .uleb128 0
+ .long .LASF30
+ .byte 0x5
+ .uleb128 0
+ .long .LASF31
+ .byte 0x5
+ .uleb128 0
+ .long .LASF32
+ .byte 0x5
+ .uleb128 0
+ .long .LASF33
+ .byte 0x5
+ .uleb128 0
+ .long .LASF34
+ .byte 0x5
+ .uleb128 0
+ .long .LASF35
+ .byte 0x5
+ .uleb128 0
+ .long .LASF36
+ .byte 0x5
+ .uleb128 0
+ .long .LASF37
+ .byte 0x5
+ .uleb128 0
+ .long .LASF38
+ .byte 0x5
+ .uleb128 0
+ .long .LASF39
+ .byte 0x5
+ .uleb128 0
+ .long .LASF40
+ .byte 0x5
+ .uleb128 0
+ .long .LASF41
+ .byte 0x5
+ .uleb128 0
+ .long .LASF42
+ .byte 0x5
+ .uleb128 0
+ .long .LASF43
+ .byte 0x5
+ .uleb128 0
+ .long .LASF44
+ .byte 0x5
+ .uleb128 0
+ .long .LASF45
+ .byte 0x5
+ .uleb128 0
+ .long .LASF46
+ .byte 0x5
+ .uleb128 0
+ .long .LASF47
+ .byte 0x5
+ .uleb128 0
+ .long .LASF48
+ .byte 0x5
+ .uleb128 0
+ .long .LASF49
+ .byte 0x5
+ .uleb128 0
+ .long .LASF50
+ .byte 0x5
+ .uleb128 0
+ .long .LASF51
+ .byte 0x5
+ .uleb128 0
+ .long .LASF52
+ .byte 0x5
+ .uleb128 0
+ .long .LASF53
+ .byte 0x5
+ .uleb128 0
+ .long .LASF54
+ .byte 0x5
+ .uleb128 0
+ .long .LASF55
+ .byte 0x5
+ .uleb128 0
+ .long .LASF56
+ .byte 0x5
+ .uleb128 0
+ .long .LASF57
+ .byte 0x5
+ .uleb128 0
+ .long .LASF58
+ .byte 0x5
+ .uleb128 0
+ .long .LASF59
+ .byte 0x5
+ .uleb128 0
+ .long .LASF60
+ .byte 0x5
+ .uleb128 0
+ .long .LASF61
+ .byte 0x5
+ .uleb128 0
+ .long .LASF62
+ .byte 0x5
+ .uleb128 0
+ .long .LASF63
+ .byte 0x5
+ .uleb128 0
+ .long .LASF64
+ .byte 0x5
+ .uleb128 0
+ .long .LASF65
+ .byte 0x5
+ .uleb128 0
+ .long .LASF66
+ .byte 0x5
+ .uleb128 0
+ .long .LASF67
+ .byte 0x5
+ .uleb128 0
+ .long .LASF68
+ .byte 0x5
+ .uleb128 0
+ .long .LASF69
+ .byte 0x5
+ .uleb128 0
+ .long .LASF70
+ .byte 0x5
+ .uleb128 0
+ .long .LASF71
+ .byte 0x5
+ .uleb128 0
+ .long .LASF72
+ .byte 0x5
+ .uleb128 0
+ .long .LASF73
+ .byte 0x5
+ .uleb128 0
+ .long .LASF74
+ .byte 0x5
+ .uleb128 0
+ .long .LASF75
+ .byte 0x5
+ .uleb128 0
+ .long .LASF76
+ .byte 0x5
+ .uleb128 0
+ .long .LASF77
+ .byte 0x5
+ .uleb128 0
+ .long .LASF78
+ .byte 0x5
+ .uleb128 0
+ .long .LASF79
+ .byte 0x5
+ .uleb128 0
+ .long .LASF80
+ .byte 0x5
+ .uleb128 0
+ .long .LASF81
+ .byte 0x5
+ .uleb128 0
+ .long .LASF82
+ .byte 0x5
+ .uleb128 0
+ .long .LASF83
+ .byte 0x5
+ .uleb128 0
+ .long .LASF84
+ .byte 0x5
+ .uleb128 0
+ .long .LASF85
+ .byte 0x5
+ .uleb128 0
+ .long .LASF86
+ .byte 0x5
+ .uleb128 0
+ .long .LASF87
+ .byte 0x5
+ .uleb128 0
+ .long .LASF88
+ .byte 0x5
+ .uleb128 0
+ .long .LASF89
+ .byte 0x5
+ .uleb128 0
+ .long .LASF90
+ .byte 0x5
+ .uleb128 0
+ .long .LASF91
+ .byte 0x5
+ .uleb128 0
+ .long .LASF92
+ .byte 0x5
+ .uleb128 0
+ .long .LASF93
+ .byte 0x5
+ .uleb128 0
+ .long .LASF94
+ .byte 0x5
+ .uleb128 0
+ .long .LASF95
+ .byte 0x5
+ .uleb128 0
+ .long .LASF96
+ .byte 0x5
+ .uleb128 0
+ .long .LASF97
+ .byte 0x5
+ .uleb128 0
+ .long .LASF98
+ .byte 0x5
+ .uleb128 0
+ .long .LASF99
+ .byte 0x5
+ .uleb128 0
+ .long .LASF100
+ .byte 0x5
+ .uleb128 0
+ .long .LASF101
+ .byte 0x5
+ .uleb128 0
+ .long .LASF102
+ .byte 0x5
+ .uleb128 0
+ .long .LASF103
+ .byte 0x5
+ .uleb128 0
+ .long .LASF104
+ .byte 0x5
+ .uleb128 0
+ .long .LASF105
+ .byte 0x5
+ .uleb128 0
+ .long .LASF106
+ .byte 0x5
+ .uleb128 0
+ .long .LASF107
+ .byte 0x5
+ .uleb128 0
+ .long .LASF108
+ .byte 0x5
+ .uleb128 0
+ .long .LASF109
+ .byte 0x5
+ .uleb128 0
+ .long .LASF110
+ .byte 0x5
+ .uleb128 0
+ .long .LASF111
+ .byte 0x5
+ .uleb128 0
+ .long .LASF112
+ .byte 0x5
+ .uleb128 0
+ .long .LASF113
+ .byte 0x5
+ .uleb128 0
+ .long .LASF114
+ .byte 0x5
+ .uleb128 0
+ .long .LASF115
+ .byte 0x5
+ .uleb128 0
+ .long .LASF116
+ .byte 0x5
+ .uleb128 0
+ .long .LASF117
+ .byte 0x5
+ .uleb128 0
+ .long .LASF118
+ .byte 0x5
+ .uleb128 0
+ .long .LASF119
+ .byte 0x5
+ .uleb128 0
+ .long .LASF120
+ .byte 0x5
+ .uleb128 0
+ .long .LASF121
+ .byte 0x5
+ .uleb128 0
+ .long .LASF122
+ .byte 0x5
+ .uleb128 0
+ .long .LASF123
+ .byte 0x5
+ .uleb128 0
+ .long .LASF124
+ .byte 0x5
+ .uleb128 0
+ .long .LASF125
+ .byte 0x5
+ .uleb128 0
+ .long .LASF126
+ .byte 0x5
+ .uleb128 0
+ .long .LASF127
+ .byte 0x5
+ .uleb128 0
+ .long .LASF128
+ .byte 0x5
+ .uleb128 0
+ .long .LASF129
+ .byte 0x5
+ .uleb128 0
+ .long .LASF130
+ .byte 0x5
+ .uleb128 0
+ .long .LASF131
+ .byte 0x5
+ .uleb128 0
+ .long .LASF132
+ .byte 0x5
+ .uleb128 0
+ .long .LASF133
+ .byte 0x5
+ .uleb128 0
+ .long .LASF134
+ .byte 0x5
+ .uleb128 0
+ .long .LASF135
+ .byte 0x5
+ .uleb128 0
+ .long .LASF136
+ .byte 0x5
+ .uleb128 0
+ .long .LASF137
+ .byte 0x5
+ .uleb128 0
+ .long .LASF138
+ .byte 0x5
+ .uleb128 0
+ .long .LASF139
+ .byte 0x5
+ .uleb128 0
+ .long .LASF140
+ .byte 0x5
+ .uleb128 0
+ .long .LASF141
+ .byte 0x5
+ .uleb128 0
+ .long .LASF142
+ .byte 0x5
+ .uleb128 0
+ .long .LASF143
+ .byte 0x5
+ .uleb128 0
+ .long .LASF144
+ .byte 0x5
+ .uleb128 0
+ .long .LASF145
+ .byte 0x5
+ .uleb128 0
+ .long .LASF146
+ .byte 0x5
+ .uleb128 0
+ .long .LASF147
+ .byte 0x5
+ .uleb128 0
+ .long .LASF148
+ .byte 0x5
+ .uleb128 0
+ .long .LASF149
+ .byte 0x5
+ .uleb128 0
+ .long .LASF150
+ .byte 0x5
+ .uleb128 0
+ .long .LASF151
+ .byte 0x5
+ .uleb128 0
+ .long .LASF152
+ .byte 0x5
+ .uleb128 0
+ .long .LASF153
+ .byte 0x5
+ .uleb128 0
+ .long .LASF154
+ .byte 0x5
+ .uleb128 0
+ .long .LASF155
+ .byte 0x5
+ .uleb128 0
+ .long .LASF156
+ .byte 0x5
+ .uleb128 0
+ .long .LASF157
+ .byte 0x5
+ .uleb128 0
+ .long .LASF158
+ .byte 0x5
+ .uleb128 0
+ .long .LASF159
+ .byte 0x5
+ .uleb128 0
+ .long .LASF160
+ .byte 0x5
+ .uleb128 0
+ .long .LASF161
+ .byte 0x5
+ .uleb128 0
+ .long .LASF162
+ .byte 0x5
+ .uleb128 0
+ .long .LASF163
+ .byte 0x5
+ .uleb128 0
+ .long .LASF164
+ .byte 0x5
+ .uleb128 0
+ .long .LASF165
+ .byte 0x5
+ .uleb128 0
+ .long .LASF166
+ .byte 0x5
+ .uleb128 0
+ .long .LASF167
+ .byte 0x5
+ .uleb128 0
+ .long .LASF168
+ .byte 0x5
+ .uleb128 0
+ .long .LASF169
+ .byte 0x5
+ .uleb128 0
+ .long .LASF170
+ .byte 0x5
+ .uleb128 0
+ .long .LASF171
+ .byte 0x5
+ .uleb128 0
+ .long .LASF172
+ .byte 0x5
+ .uleb128 0
+ .long .LASF173
+ .byte 0x5
+ .uleb128 0
+ .long .LASF174
+ .byte 0x5
+ .uleb128 0
+ .long .LASF175
+ .byte 0x5
+ .uleb128 0
+ .long .LASF176
+ .byte 0x5
+ .uleb128 0
+ .long .LASF177
+ .byte 0x5
+ .uleb128 0
+ .long .LASF178
+ .byte 0x5
+ .uleb128 0
+ .long .LASF179
+ .byte 0x5
+ .uleb128 0
+ .long .LASF180
+ .byte 0x5
+ .uleb128 0
+ .long .LASF181
+ .byte 0x5
+ .uleb128 0
+ .long .LASF182
+ .byte 0x5
+ .uleb128 0
+ .long .LASF183
+ .byte 0x5
+ .uleb128 0
+ .long .LASF184
+ .byte 0x5
+ .uleb128 0
+ .long .LASF185
+ .byte 0x5
+ .uleb128 0
+ .long .LASF186
+ .byte 0x5
+ .uleb128 0
+ .long .LASF187
+ .byte 0x5
+ .uleb128 0
+ .long .LASF188
+ .byte 0x5
+ .uleb128 0
+ .long .LASF189
+ .byte 0x5
+ .uleb128 0
+ .long .LASF190
+ .byte 0x5
+ .uleb128 0
+ .long .LASF191
+ .byte 0x5
+ .uleb128 0
+ .long .LASF192
+ .byte 0x5
+ .uleb128 0
+ .long .LASF193
+ .byte 0x5
+ .uleb128 0
+ .long .LASF194
+ .byte 0x5
+ .uleb128 0
+ .long .LASF195
+ .byte 0x5
+ .uleb128 0
+ .long .LASF196
+ .byte 0x5
+ .uleb128 0
+ .long .LASF197
+ .byte 0x5
+ .uleb128 0
+ .long .LASF198
+ .byte 0x5
+ .uleb128 0
+ .long .LASF199
+ .byte 0x5
+ .uleb128 0
+ .long .LASF200
+ .byte 0x5
+ .uleb128 0
+ .long .LASF201
+ .byte 0x5
+ .uleb128 0
+ .long .LASF202
+ .byte 0x5
+ .uleb128 0
+ .long .LASF203
+ .byte 0x5
+ .uleb128 0
+ .long .LASF204
+ .byte 0x5
+ .uleb128 0
+ .long .LASF205
+ .byte 0x5
+ .uleb128 0
+ .long .LASF206
+ .byte 0x5
+ .uleb128 0
+ .long .LASF207
+ .byte 0x5
+ .uleb128 0
+ .long .LASF208
+ .byte 0x5
+ .uleb128 0
+ .long .LASF209
+ .byte 0x5
+ .uleb128 0
+ .long .LASF210
+ .byte 0x5
+ .uleb128 0
+ .long .LASF211
+ .byte 0x5
+ .uleb128 0
+ .long .LASF212
+ .byte 0x5
+ .uleb128 0
+ .long .LASF213
+ .byte 0x5
+ .uleb128 0
+ .long .LASF214
+ .byte 0x5
+ .uleb128 0
+ .long .LASF215
+ .byte 0x5
+ .uleb128 0
+ .long .LASF216
+ .byte 0x5
+ .uleb128 0
+ .long .LASF217
+ .byte 0x5
+ .uleb128 0
+ .long .LASF218
+ .byte 0x5
+ .uleb128 0
+ .long .LASF219
+ .byte 0x5
+ .uleb128 0
+ .long .LASF220
+ .byte 0x5
+ .uleb128 0
+ .long .LASF221
+ .byte 0x5
+ .uleb128 0
+ .long .LASF222
+ .byte 0x5
+ .uleb128 0
+ .long .LASF223
+ .byte 0x5
+ .uleb128 0
+ .long .LASF224
+ .byte 0x5
+ .uleb128 0
+ .long .LASF225
+ .byte 0x5
+ .uleb128 0
+ .long .LASF226
+ .byte 0x5
+ .uleb128 0
+ .long .LASF227
+ .byte 0x5
+ .uleb128 0
+ .long .LASF228
+ .byte 0x5
+ .uleb128 0
+ .long .LASF229
+ .byte 0x5
+ .uleb128 0
+ .long .LASF230
+ .byte 0x5
+ .uleb128 0
+ .long .LASF231
+ .byte 0x5
+ .uleb128 0
+ .long .LASF232
+ .byte 0x5
+ .uleb128 0
+ .long .LASF233
+ .byte 0x5
+ .uleb128 0
+ .long .LASF234
+ .byte 0x5
+ .uleb128 0
+ .long .LASF235
+ .byte 0x5
+ .uleb128 0
+ .long .LASF236
+ .byte 0x5
+ .uleb128 0
+ .long .LASF237
+ .byte 0x5
+ .uleb128 0
+ .long .LASF238
+ .byte 0x5
+ .uleb128 0
+ .long .LASF239
+ .byte 0x5
+ .uleb128 0
+ .long .LASF240
+ .byte 0x5
+ .uleb128 0
+ .long .LASF241
+ .byte 0x5
+ .uleb128 0
+ .long .LASF242
+ .byte 0
+ .section .debug_macro,"G",@progbits,wm4.stdcpredef.h.19.52894a18705f0664f8da17e99c6c0a93,comdat
+.Ldebug_macro2:
+ .value 0x4
+ .byte 0
+ .byte 0x5
+ .uleb128 0x13
+ .long .LASF243
+ .byte 0x5
+ .uleb128 0x26
+ .long .LASF244
+ .byte 0x5
+ .uleb128 0x2e
+ .long .LASF245
+ .byte 0x5
+ .uleb128 0x3b
+ .long .LASF246
+ .byte 0x5
+ .uleb128 0x3e
+ .long .LASF247
+ .byte 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF106:
+ .string "__UINT_LEAST8_MAX__ 0xff"
+.LASF153:
+ .string "__DBL_DENORM_MIN__ ((double)4.94065645841246544177e-324L)"
+.LASF218:
+ .string "__amd64__ 1"
+.LASF235:
+ .string "__linux 1"
+.LASF110:
+ .string "__UINT_LEAST32_MAX__ 0xffffffffU"
+.LASF26:
+ .string "__SIZEOF_SIZE_T__ 8"
+.LASF8:
+ .string "__VERSION__ \"5.1.1 20150618 (Red Hat 5.1.1-4)\""
+.LASF1:
+ .string "__STDC_VERSION__ 201112L"
+.LASF34:
+ .string "__SIZEOF_POINTER__ 8"
+.LASF252:
+ .string "amd64-debug-ranges-base.c"
+.LASF178:
+ .string "__DEC64_MANT_DIG__ 16"
+.LASF128:
+ .string "__FLT_RADIX__ 2"
+.LASF165:
+ .string "__LDBL_MIN__ 3.36210314311209350626e-4932L"
+.LASF239:
+ .string "__unix__ 1"
+.LASF133:
+ .string "__FLT_MAX_EXP__ 128"
+.LASF162:
+ .string "__LDBL_MAX_10_EXP__ 4932"
+.LASF215:
+ .string "__SIZEOF_WINT_T__ 4"
+.LASF148:
+ .string "__DBL_MAX_10_EXP__ 308"
+.LASF121:
+ .string "__UINT_FAST64_MAX__ 0xffffffffffffffffUL"
+.LASF217:
+ .string "__amd64 1"
+.LASF38:
+ .string "__WINT_TYPE__ unsigned int"
+.LASF113:
+ .string "__UINT64_C(c) c ## UL"
+.LASF155:
+ .string "__DBL_HAS_INFINITY__ 1"
+.LASF233:
+ .string "__SSE2_MATH__ 1"
+.LASF7:
+ .string "__GNUC_PATCHLEVEL__ 1"
+.LASF236:
+ .string "__linux__ 1"
+.LASF4:
+ .string "__STDC_HOSTED__ 1"
+.LASF81:
+ .string "__WINT_MIN__ 0U"
+.LASF222:
+ .string "__SIZEOF_FLOAT128__ 16"
+.LASF246:
+ .string "__STDC_ISO_10646__ 201304L"
+.LASF50:
+ .string "__UINT32_TYPE__ unsigned int"
+.LASF231:
+ .string "__FXSR__ 1"
+.LASF184:
+ .string "__DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD"
+.LASF136:
+ .string "__FLT_MAX__ 3.40282346638528859812e+38F"
+.LASF253:
+ .string "/path/to/binutils-gdb/src/gdb/testsuite/gdb.arch"
+.LASF237:
+ .string "linux 1"
+.LASF114:
+ .string "__INT_FAST8_MAX__ 0x7f"
+.LASF156:
+ .string "__DBL_HAS_QUIET_NAN__ 1"
+.LASF143:
+ .string "__DBL_MANT_DIG__ 53"
+.LASF48:
+ .string "__UINT8_TYPE__ unsigned char"
+.LASF173:
+ .string "__DEC32_MAX_EXP__ 97"
+.LASF46:
+ .string "__INT32_TYPE__ int"
+.LASF43:
+ .string "__SIG_ATOMIC_TYPE__ int"
+.LASF145:
+ .string "__DBL_MIN_EXP__ (-1021)"
+.LASF169:
+ .string "__LDBL_HAS_INFINITY__ 1"
+.LASF20:
+ .string "__SIZEOF_LONG__ 8"
+.LASF140:
+ .string "__FLT_HAS_DENORM__ 1"
+.LASF95:
+ .string "__UINT16_MAX__ 0xffff"
+.LASF204:
+ .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+.LASF67:
+ .string "__UINT_FAST64_TYPE__ long unsigned int"
+.LASF123:
+ .string "__UINTPTR_MAX__ 0xffffffffffffffffUL"
+.LASF33:
+ .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF108:
+ .string "__UINT_LEAST16_MAX__ 0xffff"
+.LASF212:
+ .string "__PRAGMA_REDEFINE_EXTNAME 1"
+.LASF53:
+ .string "__INT_LEAST16_TYPE__ short int"
+.LASF18:
+ .string "__LP64__ 1"
+.LASF163:
+ .string "__DECIMAL_DIG__ 21"
+.LASF71:
+ .string "__has_include_next(STR) __has_include_next__(STR)"
+.LASF122:
+ .string "__INTPTR_MAX__ 0x7fffffffffffffffL"
+.LASF234:
+ .string "__gnu_linux__ 1"
+.LASF150:
+ .string "__DBL_MAX__ ((double)1.79769313486231570815e+308L)"
+.LASF45:
+ .string "__INT16_TYPE__ short int"
+.LASF170:
+ .string "__LDBL_HAS_QUIET_NAN__ 1"
+.LASF24:
+ .string "__SIZEOF_DOUBLE__ 8"
+.LASF94:
+ .string "__UINT8_MAX__ 0xff"
+.LASF17:
+ .string "_LP64 1"
+.LASF51:
+ .string "__UINT64_TYPE__ long unsigned int"
+.LASF54:
+ .string "__INT_LEAST32_TYPE__ int"
+.LASF93:
+ .string "__INT64_MAX__ 0x7fffffffffffffffL"
+.LASF224:
+ .string "__ATOMIC_HLE_RELEASE 131072"
+.LASF230:
+ .string "__SSE2__ 1"
+.LASF85:
+ .string "__INTMAX_C(c) c ## L"
+.LASF203:
+ .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+.LASF213:
+ .string "__SIZEOF_INT128__ 16"
+.LASF36:
+ .string "__PTRDIFF_TYPE__ long int"
+.LASF174:
+ .string "__DEC32_MIN__ 1E-95DF"
+.LASF99:
+ .string "__INT8_C(c) c"
+.LASF21:
+ .string "__SIZEOF_LONG_LONG__ 8"
+.LASF130:
+ .string "__FLT_DIG__ 6"
+.LASF214:
+ .string "__SIZEOF_WCHAR_T__ 4"
+.LASF105:
+ .string "__INT64_C(c) c ## L"
+.LASF119:
+ .string "__UINT_FAST16_MAX__ 0xffffffffffffffffUL"
+.LASF134:
+ .string "__FLT_MAX_10_EXP__ 38"
+.LASF137:
+ .string "__FLT_MIN__ 1.17549435082228750797e-38F"
+.LASF59:
+ .string "__UINT_LEAST64_TYPE__ long unsigned int"
+.LASF25:
+ .string "__SIZEOF_LONG_DOUBLE__ 16"
+.LASF73:
+ .string "__SCHAR_MAX__ 0x7f"
+.LASF6:
+ .string "__GNUC_MINOR__ 1"
+.LASF55:
+ .string "__INT_LEAST64_TYPE__ long int"
+.LASF127:
+ .string "__DEC_EVAL_METHOD__ 2"
+.LASF175:
+ .string "__DEC32_MAX__ 9.999999E96DF"
+.LASF77:
+ .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+.LASF200:
+ .string "__GCC_ATOMIC_BOOL_LOCK_FREE 2"
+.LASF35:
+ .string "__SIZE_TYPE__ long unsigned int"
+.LASF159:
+ .string "__LDBL_MIN_EXP__ (-16381)"
+.LASF125:
+ .string "__GCC_IEC_559_COMPLEX 2"
+.LASF142:
+ .string "__FLT_HAS_QUIET_NAN__ 1"
+.LASF152:
+ .string "__DBL_EPSILON__ ((double)2.22044604925031308085e-16L)"
+.LASF32:
+ .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF100:
+ .string "__INT_LEAST16_MAX__ 0x7fff"
+.LASF83:
+ .string "__SIZE_MAX__ 0xffffffffffffffffUL"
+.LASF112:
+ .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffUL"
+.LASF117:
+ .string "__INT_FAST64_MAX__ 0x7fffffffffffffffL"
+.LASF30:
+ .string "__ORDER_BIG_ENDIAN__ 4321"
+.LASF68:
+ .string "__INTPTR_TYPE__ long int"
+.LASF160:
+ .string "__LDBL_MIN_10_EXP__ (-4931)"
+.LASF210:
+ .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+.LASF22:
+ .string "__SIZEOF_SHORT__ 2"
+.LASF243:
+ .string "_STDC_PREDEF_H 1"
+.LASF101:
+ .string "__INT16_C(c) c"
+.LASF240:
+ .string "unix 1"
+.LASF63:
+ .string "__INT_FAST64_TYPE__ long int"
+.LASF182:
+ .string "__DEC64_MAX__ 9.999999999999999E384DD"
+.LASF82:
+ .string "__PTRDIFF_MAX__ 0x7fffffffffffffffL"
+.LASF138:
+ .string "__FLT_EPSILON__ 1.19209289550781250000e-7F"
+.LASF75:
+ .string "__INT_MAX__ 0x7fffffff"
+.LASF208:
+ .string "__GCC_ATOMIC_LLONG_LOCK_FREE 2"
+.LASF104:
+ .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffL"
+.LASF186:
+ .string "__DEC128_MIN_EXP__ (-6142)"
+.LASF13:
+ .string "__ATOMIC_RELEASE 3"
+.LASF149:
+ .string "__DBL_DECIMAL_DIG__ 17"
+.LASF144:
+ .string "__DBL_DIG__ 15"
+.LASF135:
+ .string "__FLT_DECIMAL_DIG__ 9"
+.LASF11:
+ .string "__ATOMIC_SEQ_CST 5"
+.LASF188:
+ .string "__DEC128_MIN__ 1E-6143DL"
+.LASF28:
+ .string "__BIGGEST_ALIGNMENT__ 16"
+.LASF19:
+ .string "__SIZEOF_INT__ 4"
+.LASF62:
+ .string "__INT_FAST32_TYPE__ long int"
+.LASF206:
+ .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
+.LASF187:
+ .string "__DEC128_MAX_EXP__ 6145"
+.LASF91:
+ .string "__INT16_MAX__ 0x7fff"
+.LASF198:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+.LASF180:
+ .string "__DEC64_MAX_EXP__ 385"
+.LASF14:
+ .string "__ATOMIC_ACQ_REL 4"
+.LASF129:
+ .string "__FLT_MANT_DIG__ 24"
+.LASF5:
+ .string "__GNUC__ 5"
+.LASF40:
+ .string "__UINTMAX_TYPE__ long unsigned int"
+.LASF245:
+ .string "__STDC_IEC_559_COMPLEX__ 1"
+.LASF205:
+ .string "__GCC_ATOMIC_SHORT_LOCK_FREE 2"
+.LASF189:
+ .string "__DEC128_MAX__ 9.999999999999999999999999999999999E6144DL"
+.LASF9:
+ .string "__GNUC_RH_RELEASE__ 4"
+.LASF57:
+ .string "__UINT_LEAST16_TYPE__ short unsigned int"
+.LASF69:
+ .string "__UINTPTR_TYPE__ long unsigned int"
+.LASF147:
+ .string "__DBL_MAX_EXP__ 1024"
+.LASF0:
+ .string "__STDC__ 1"
+.LASF241:
+ .string "__ELF__ 1"
+.LASF126:
+ .string "__FLT_EVAL_METHOD__ 0"
+.LASF84:
+ .string "__INTMAX_MAX__ 0x7fffffffffffffffL"
+.LASF12:
+ .string "__ATOMIC_ACQUIRE 2"
+.LASF66:
+ .string "__UINT_FAST32_TYPE__ long unsigned int"
+.LASF102:
+ .string "__INT_LEAST32_MAX__ 0x7fffffff"
+.LASF201:
+ .string "__GCC_ATOMIC_CHAR_LOCK_FREE 2"
+.LASF190:
+ .string "__DEC128_EPSILON__ 1E-33DL"
+.LASF64:
+ .string "__UINT_FAST8_TYPE__ unsigned char"
+.LASF61:
+ .string "__INT_FAST16_TYPE__ long int"
+.LASF172:
+ .string "__DEC32_MIN_EXP__ (-94)"
+.LASF92:
+ .string "__INT32_MAX__ 0x7fffffff"
+.LASF158:
+ .string "__LDBL_DIG__ 18"
+.LASF244:
+ .string "__STDC_IEC_559__ 1"
+.LASF191:
+ .string "__DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL"
+.LASF164:
+ .string "__LDBL_MAX__ 1.18973149535723176502e+4932L"
+.LASF223:
+ .string "__ATOMIC_HLE_ACQUIRE 65536"
+.LASF232:
+ .string "__SSE_MATH__ 1"
+.LASF115:
+ .string "__INT_FAST16_MAX__ 0x7fffffffffffffffL"
+.LASF151:
+ .string "__DBL_MIN__ ((double)2.22507385850720138309e-308L)"
+.LASF185:
+ .string "__DEC128_MANT_DIG__ 34"
+.LASF103:
+ .string "__INT32_C(c) c"
+.LASF179:
+ .string "__DEC64_MIN_EXP__ (-382)"
+.LASF79:
+ .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+.LASF197:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1"
+.LASF161:
+ .string "__LDBL_MAX_EXP__ 16384"
+.LASF226:
+ .string "__k8__ 1"
+.LASF42:
+ .string "__CHAR32_TYPE__ unsigned int"
+.LASF86:
+ .string "__UINTMAX_MAX__ 0xffffffffffffffffUL"
+.LASF76:
+ .string "__LONG_MAX__ 0x7fffffffffffffffL"
+.LASF52:
+ .string "__INT_LEAST8_TYPE__ signed char"
+.LASF109:
+ .string "__UINT16_C(c) c"
+.LASF74:
+ .string "__SHRT_MAX__ 0x7fff"
+.LASF23:
+ .string "__SIZEOF_FLOAT__ 4"
+.LASF199:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1"
+.LASF78:
+ .string "__WCHAR_MAX__ 0x7fffffff"
+.LASF166:
+ .string "__LDBL_EPSILON__ 1.08420217248550443401e-19L"
+.LASF31:
+ .string "__ORDER_PDP_ENDIAN__ 3412"
+.LASF29:
+ .string "__ORDER_LITTLE_ENDIAN__ 1234"
+.LASF251:
+ .string "GNU C11 5.1.1 20150618 (Red Hat 5.1.1-4) -mtune=generic -march=x86-64 -g3 -O0"
+.LASF238:
+ .string "__unix 1"
+.LASF10:
+ .string "__ATOMIC_RELAXED 0"
+.LASF80:
+ .string "__WINT_MAX__ 0xffffffffU"
+.LASF220:
+ .string "__x86_64__ 1"
+.LASF171:
+ .string "__DEC32_MANT_DIG__ 7"
+.LASF183:
+ .string "__DEC64_EPSILON__ 1E-15DD"
+.LASF124:
+ .string "__GCC_IEC_559 2"
+.LASF120:
+ .string "__UINT_FAST32_MAX__ 0xffffffffffffffffUL"
+.LASF228:
+ .string "__MMX__ 1"
+.LASF131:
+ .string "__FLT_MIN_EXP__ (-125)"
+.LASF72:
+ .string "__GXX_ABI_VERSION 1008"
+.LASF88:
+ .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
+.LASF247:
+ .string "__STDC_NO_THREADS__ 1"
+.LASF65:
+ .string "__UINT_FAST16_TYPE__ long unsigned int"
+.LASF167:
+ .string "__LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L"
+.LASF141:
+ .string "__FLT_HAS_INFINITY__ 1"
+.LASF116:
+ .string "__INT_FAST32_MAX__ 0x7fffffffffffffffL"
+.LASF44:
+ .string "__INT8_TYPE__ signed char"
+.LASF87:
+ .string "__UINTMAX_C(c) c ## UL"
+.LASF2:
+ .string "__STDC_UTF_16__ 1"
+.LASF39:
+ .string "__INTMAX_TYPE__ long int"
+.LASF195:
+ .string "__NO_INLINE__ 1"
+.LASF168:
+ .string "__LDBL_HAS_DENORM__ 1"
+.LASF70:
+ .string "__has_include(STR) __has_include__(STR)"
+.LASF202:
+ .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 2"
+.LASF221:
+ .string "__SIZEOF_FLOAT80__ 16"
+.LASF192:
+ .string "__REGISTER_PREFIX__ "
+.LASF15:
+ .string "__ATOMIC_CONSUME 1"
+.LASF97:
+ .string "__UINT64_MAX__ 0xffffffffffffffffUL"
+.LASF3:
+ .string "__STDC_UTF_32__ 1"
+.LASF49:
+ .string "__UINT16_TYPE__ short unsigned int"
+.LASF229:
+ .string "__SSE__ 1"
+.LASF111:
+ .string "__UINT32_C(c) c ## U"
+.LASF225:
+ .string "__k8 1"
+.LASF177:
+ .string "__DEC32_SUBNORMAL_MIN__ 0.000001E-95DF"
+.LASF249:
+ .string "frame2"
+.LASF248:
+ .string "frame3"
+.LASF216:
+ .string "__SIZEOF_PTRDIFF_T__ 8"
+.LASF27:
+ .string "__CHAR_BIT__ 8"
+.LASF60:
+ .string "__INT_FAST8_TYPE__ signed char"
+.LASF89:
+ .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+.LASF176:
+ .string "__DEC32_EPSILON__ 1E-6DF"
+.LASF58:
+ .string "__UINT_LEAST32_TYPE__ unsigned int"
+.LASF154:
+ .string "__DBL_HAS_DENORM__ 1"
+.LASF227:
+ .string "__code_model_small__ 1"
+.LASF157:
+ .string "__LDBL_MANT_DIG__ 64"
+.LASF207:
+ .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+.LASF242:
+ .string "__DECIMAL_BID_FORMAT__ 1"
+.LASF90:
+ .string "__INT8_MAX__ 0x7f"
+.LASF118:
+ .string "__UINT_FAST8_MAX__ 0xff"
+.LASF132:
+ .string "__FLT_MIN_10_EXP__ (-37)"
+.LASF209:
+ .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+.LASF37:
+ .string "__WCHAR_TYPE__ int"
+.LASF16:
+ .string "__FINITE_MATH_ONLY__ 0"
+.LASF193:
+ .string "__USER_LABEL_PREFIX__ "
+.LASF41:
+ .string "__CHAR16_TYPE__ short unsigned int"
+.LASF107:
+ .string "__UINT8_C(c) c"
+.LASF219:
+ .string "__x86_64 1"
+.LASF56:
+ .string "__UINT_LEAST8_TYPE__ unsigned char"
+.LASF47:
+ .string "__INT64_TYPE__ long int"
+.LASF196:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1"
+.LASF250:
+ .string "main"
+.LASF96:
+ .string "__UINT32_MAX__ 0xffffffffU"
+.LASF211:
+ .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
+.LASF98:
+ .string "__INT_LEAST8_MAX__ 0x7f"
+.LASF181:
+ .string "__DEC64_MIN__ 1E-383DD"
+.LASF146:
+ .string "__DBL_MIN_10_EXP__ (-307)"
+.LASF139:
+ .string "__FLT_DENORM_MIN__ 1.40129846432481707092e-45F"
+.LASF194:
+ .string "__GNUC_STDC_INLINE__ 1"
+ .ident "GCC: (GNU) 5.1.1 20150618 (Red Hat 5.1.1-4)"
+ .section .note.GNU-stack,"",@progbits