]> git.pld-linux.org Git - packages/gdb.git/blob - gdb-gcc46-stdarg-prologue.patch
- up to 7.3.1
[packages/gdb.git] / gdb-gcc46-stdarg-prologue.patch
1 http://sourceware.org/ml/gdb-patches/2011-07/msg00645.html
2 Subject: [patch] workaround gcc46: prologue skip skips too far (PR 12435) #2
3
4 Hi,
5
6 this is an improved patch of a former:
7         [patch] workaround gcc46: prologue skip skips too far (PR 12435)
8         http://sourceware.org/ml/gdb-patches/2011-03/msg01108.html
9         cancel/FYI: Re: [patch] workaround gcc46: prologue skip skips too far (PR 12435)
10         http://sourceware.org/ml/gdb-patches/2011-03/msg01123.html
11
12 For example `break error' does not work for debugging GDB with gcc-4.6.x.
13
14 As gcc-4.6.0 and now even 4.6.1 still has this bug and I have seen a user(s?)
15 on non-Fedora platform asking about this bug and as there may be enough
16 binaries out there (although it affects only -O0 -g compilation) coded it
17 properly I have coded the workaround properly this time.
18
19 It does not solve overlays well, but the code just does not work for overlays,
20 it has no other negative effect.
21
22 I will update the code after FSF gcc gets fixed to minimize the workaround.
23
24 No regressions on {x86_64,x86_64-m32,i686}-fedora16pre-linux-gnu.
25
26 I would welcome a comment whether it is suitable for FSF GDB.
27
28
29 Thanks,
30 Jan
31
32
33 gdb/
34 2011-07-22  Jan Kratochvil  <jan.kratochvil@redhat.com>
35
36         PR breakpoints/12435
37         * amd64-tdep.c (amd64_skip_prologue): New variables start_pc_sal,
38         next_sal, buf, offset and xmmreg.  Advance PC if it sees the PR.
39         * dwarf2read.c (process_full_comp_unit): Initialize
40         amd64_prologue_line_bug.
41         * symtab.h (struct symtab): New field amd64_prologue_line_bug.
42
43 gdb/testsuite/
44 2011-07-22  Jan Kratochvil  <jan.kratochvil@redhat.com>
45
46         PR breakpoints/12435
47         * gdb.arch/amd64-prologue-xmm.c: New file.
48         * gdb.arch/amd64-prologue-xmm.exp: New file.
49         * gdb.arch/amd64-prologue-xmm.s: New file.
50
51 Index: gdb-7.3/gdb/amd64-tdep.c
52 ===================================================================
53 --- gdb-7.3.orig/gdb/amd64-tdep.c       2011-03-18 19:52:29.000000000 +0100
54 +++ gdb-7.3/gdb/amd64-tdep.c    2011-07-26 22:09:15.000000000 +0200
55 @@ -1902,6 +1902,9 @@ amd64_skip_prologue (struct gdbarch *gdb
56  {
57    struct amd64_frame_cache cache;
58    CORE_ADDR pc;
59 +  struct symtab_and_line start_pc_sal, next_sal;
60 +  gdb_byte buf[4 + 8 * 7];
61 +  int offset, xmmreg;
62  
63    amd64_init_frame_cache (&cache);
64    pc = amd64_analyze_prologue (gdbarch, start_pc, 0xffffffffffffffffLL,
65 @@ -1909,7 +1912,71 @@ amd64_skip_prologue (struct gdbarch *gdb
66    if (cache.frameless_p)
67      return start_pc;
68  
69 -  return pc;
70 +  /* GCC PR debug/48827 produced false prologue end:
71 +     84 c0                test   %al,%al
72 +     74 23                je     after
73 +     <-- here is 0 lines advance - the false prologue end marker.
74 +     0f 29 85 70 ff ff ff movaps %xmm0,-0x90(%rbp)
75 +     0f 29 4d 80          movaps %xmm1,-0x80(%rbp)
76 +     0f 29 55 90          movaps %xmm2,-0x70(%rbp)
77 +     0f 29 5d a0          movaps %xmm3,-0x60(%rbp)
78 +     0f 29 65 b0          movaps %xmm4,-0x50(%rbp)
79 +     0f 29 6d c0          movaps %xmm5,-0x40(%rbp)
80 +     0f 29 75 d0          movaps %xmm6,-0x30(%rbp)
81 +     0f 29 7d e0          movaps %xmm7,-0x20(%rbp)
82 +     after:  */
83 +
84 +  if (pc == start_pc)
85 +    return pc;
86 +
87 +  start_pc_sal = find_pc_sect_line (start_pc, NULL, 0);
88 +  if (start_pc_sal.symtab == NULL
89 +      || !start_pc_sal.symtab->amd64_prologue_line_bug
90 +      || start_pc_sal.pc != start_pc || pc >= start_pc_sal.end)
91 +    return pc;
92 +
93 +  next_sal = find_pc_sect_line (start_pc_sal.end, NULL, 0);
94 +  if (next_sal.line != start_pc_sal.line)
95 +    return pc;
96 +
97 +  /* START_PC can be from overlayed memory, ignored here.  */
98 +  if (target_read_memory (next_sal.pc - 4, buf, sizeof (buf)) != 0)
99 +    return pc;
100 +
101 +  /* test %al,%al */
102 +  if (buf[0] != 0x84 || buf[1] != 0xc0)
103 +    return pc;
104 +  /* je AFTER */
105 +  if (buf[2] != 0x74)
106 +    return pc;
107 +
108 +  offset = 4;
109 +  for (xmmreg = 0; xmmreg < 8; xmmreg++)
110 +    {
111 +      /* movaps %xmmreg?,-0x??(%rbp) */
112 +      if (buf[offset] != 0x0f || buf[offset + 1] != 0x29
113 +          || (buf[offset + 2] & 0b00111111) != (xmmreg << 3 | 0b101))
114 +       return pc;
115 +
116 +      if ((buf[offset + 2] & 0b11000000) == 0b01000000)
117 +       {
118 +         /* 8-bit displacement.  */
119 +         offset += 4;
120 +       }
121 +      else if ((buf[offset + 2] & 0b11000000) == 0b10000000)
122 +       {
123 +         /* 32-bit displacement.  */
124 +         offset += 7;
125 +       }
126 +      else
127 +       return pc;
128 +    }
129 +
130 +  /* je AFTER */
131 +  if (offset - 4 != buf[3])
132 +    return pc;
133 +
134 +  return next_sal.end;
135  }
136  \f
137  
138 Index: gdb-7.3/gdb/dwarf2read.c
139 ===================================================================
140 --- gdb-7.3.orig/gdb/dwarf2read.c       2011-07-26 22:08:59.000000000 +0200
141 +++ gdb-7.3/gdb/dwarf2read.c    2011-07-26 22:11:07.000000000 +0200
142 @@ -4647,6 +4647,42 @@ producer_is_gcc_ge_4_0 (struct dwarf2_cu
143    return major >= 4;
144  }
145  
146 +static int
147 +producer_is_gcc_ge_4_6 (struct dwarf2_cu *cu)
148 +{
149 +  const char *cs;
150 +  int major, minor;
151 +
152 +  if (cu->producer == NULL)
153 +    {
154 +      /* For unknown compilers expect their behavior is not compliant.  For GCC
155 +        this case can also happen for -gdwarf-4 type units supported since
156 +        gcc-4.5.  */
157 +
158 +      return 0;
159 +    }
160 +
161 +  /* Skip any identifier after "GNU " - such as "C++" or "Java".  */
162 +
163 +  if (strncmp (cu->producer, "GNU ", strlen ("GNU ")) != 0)
164 +    {
165 +      /* For non-GCC compilers expect their behavior is not compliant.  */
166 +
167 +      return 0;
168 +    }
169 +  cs = &cu->producer[strlen ("GNU ")];
170 +  while (*cs && !isdigit (*cs))
171 +    cs++;
172 +  if (sscanf (cs, "%d.%d", &major, &minor) != 2)
173 +    {
174 +      /* Not recognized as GCC.  */
175 +
176 +      return 0;
177 +    }
178 +
179 +  return major >= 4 && minor >= 6;
180 +}
181 +
182  /* Generate full symbol information for PST and CU, whose DIEs have
183     already been loaded into memory.  */
184  
185 @@ -4706,6 +4742,9 @@ process_full_comp_unit (struct dwarf2_pe
186          */ 
187        if (cu->has_loclist && producer_is_gcc_ge_4_0 (cu))
188         symtab->locations_valid = 1;
189 +
190 +      if (producer_is_gcc_ge_4_6 (cu))
191 +       symtab->amd64_prologue_line_bug = 1;
192      }
193  
194    if (dwarf2_per_objfile->using_index)
195 Index: gdb-7.3/gdb/symtab.h
196 ===================================================================
197 --- gdb-7.3.orig/gdb/symtab.h   2011-07-26 22:08:57.000000000 +0200
198 +++ gdb-7.3/gdb/symtab.h        2011-07-26 22:09:39.000000000 +0200
199 @@ -779,6 +779,11 @@ struct symtab
200  
201    unsigned int locations_valid : 1;
202  
203 +  /* At least GCC 4.6.0 and 4.6.1 can produce invalid false prologue and marker
204 +     on amd64.  This flag is set independently of the symtab arch.  */
205 +
206 +  unsigned amd64_prologue_line_bug : 1;
207 +
208    /* The macro table for this symtab.  Like the blockvector, this
209       may be shared between different symtabs --- and normally is for
210       all the symtabs in a given compilation unit.  */
211 Index: gdb-7.3/gdb/testsuite/gdb.arch/amd64-prologue-xmm.c
212 ===================================================================
213 --- /dev/null   1970-01-01 00:00:00.000000000 +0000
214 +++ gdb-7.3/gdb/testsuite/gdb.arch/amd64-prologue-xmm.c 2011-07-26 22:09:15.000000000 +0200
215 @@ -0,0 +1,38 @@
216 +/* This testcase is part of GDB, the GNU debugger.
217 +
218 +   Copyright 2011 Free Software Foundation, Inc.
219 +
220 +   This program is free software; you can redistribute it and/or modify
221 +   it under the terms of the GNU General Public License as published by
222 +   the Free Software Foundation; either version 3 of the License, or
223 +   (at your option) any later version.
224 +
225 +   This program is distributed in the hope that it will be useful,
226 +   but WITHOUT ANY WARRANTY; without even the implied warranty of
227 +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
228 +   GNU General Public License for more details.
229 +
230 +   You should have received a copy of the GNU General Public License
231 +   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
232 +
233 +static volatile int v, fail;
234 +
235 +static void
236 +func (int i, ...)
237 +{
238 +  v = i;
239 +}
240 +
241 +static void
242 +marker (void)
243 +{
244 +}
245 +
246 +int
247 +main (void)
248 +{
249 +  func (1);
250 +  fail = 1;
251 +  marker ();
252 +  return 0;
253 +}
254 Index: gdb-7.3/gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp
255 ===================================================================
256 --- /dev/null   1970-01-01 00:00:00.000000000 +0000
257 +++ gdb-7.3/gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp       2011-07-26 22:09:15.000000000 +0200
258 @@ -0,0 +1,46 @@
259 +# Copyright 2011 Free Software Foundation, Inc.
260 +#
261 +# This program is free software; you can redistribute it and/or modify
262 +# it under the terms of the GNU General Public License as published by
263 +# the Free Software Foundation; either version 3 of the License, or
264 +# (at your option) any later version.
265 +#
266 +# This program is distributed in the hope that it will be useful,
267 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
268 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
269 +# GNU General Public License for more details.
270 +#
271 +# You should have received a copy of the GNU General Public License
272 +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
273 +
274 +# Test GCC PR debug/48827 workaround in GDB.
275 +
276 +set testfile "amd64-prologue-xmm"
277 +set srcfile ${testfile}.s
278 +set csrcfile ${testfile}.c
279 +set binfile ${objdir}/${subdir}/${testfile}.x
280 +set opts {}
281 +
282 +if [info exists COMPILE] {
283 +    # make check RUNTESTFLAGS='gdb.arch/amd64-prologue-xmm.exp COMPILE=1'
284 +    set srcfile ${csrcfile}
285 +    lappend opts debug optimize=-O0
286 +} elseif { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
287 +    verbose "Skipping amd64-prologue-xmm test."
288 +    return 0
289 +}
290 +
291 +if {[prepare_for_testing ${testfile}.exp ${testfile} $srcfile $opts]} {
292 +    return -1
293 +}
294 +
295 +if ![runto_main] {
296 +    return -1
297 +}
298 +
299 +gdb_breakpoint "func"
300 +gdb_breakpoint "marker"
301 +
302 +gdb_continue_to_breakpoint "func"
303 +
304 +gdb_test "p fail" " = 0" "stopped at func"
305 Index: gdb-7.3/gdb/testsuite/gdb.arch/amd64-prologue-xmm.s
306 ===================================================================
307 --- /dev/null   1970-01-01 00:00:00.000000000 +0000
308 +++ gdb-7.3/gdb/testsuite/gdb.arch/amd64-prologue-xmm.s 2011-07-26 22:09:15.000000000 +0200
309 @@ -0,0 +1,400 @@
310 +/* This testcase is part of GDB, the GNU debugger.
311 +       
312 +   Copyright 2011 Free Software Foundation, Inc.
313 +
314 +   This program is free software; you can redistribute it and/or modify
315 +   it under the terms of the GNU General Public License as published by
316 +   the Free Software Foundation; either version 3 of the License, or
317 +   (at your option) any later version.
318 +
319 +   This program is distributed in the hope that it will be useful,
320 +   but WITHOUT ANY WARRANTY; without even the implied warranty of
321 +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
322 +   GNU General Public License for more details.
323 +
324 +   You should have received a copy of the GNU General Public License
325 +   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
326 +       
327 +/* This file is compiled from gdb.arch/amd64-prologue-xmm.c
328 +   using -g -dA -S.  */
329 +
330 +       .file   "amd64-prologue-xmm.c"
331 +       .text
332 +.Ltext0:
333 +       .local  v
334 +       .comm   v,4,4
335 +       .local  fail
336 +       .comm   fail,4,4
337 +       .type   func, @function
338 +func:
339 +.LFB0:
340 +       .file 1 "gdb.arch/amd64-prologue-xmm.c"
341 +       # gdb.arch/amd64-prologue-xmm.c:22
342 +       .loc 1 22 0
343 +       .cfi_startproc
344 +       # basic block 2
345 +       pushq   %rbp
346 +       .cfi_def_cfa_offset 16
347 +       .cfi_offset 6, -16
348 +       movq    %rsp, %rbp
349 +       .cfi_def_cfa_register 6
350 +       subq    $72, %rsp
351 +       movq    %rsi, -168(%rbp)
352 +       movq    %rdx, -160(%rbp)
353 +       movq    %rcx, -152(%rbp)
354 +       movq    %r8, -144(%rbp)
355 +       movq    %r9, -136(%rbp)
356 +       testb   %al, %al
357 +       je      .L2
358 +       # basic block 3
359 +       # gdb.arch/amd64-prologue-xmm.c:22
360 +       .loc 1 22 0
361 +       movaps  %xmm0, -128(%rbp)
362 +       movaps  %xmm1, -112(%rbp)
363 +       movaps  %xmm2, -96(%rbp)
364 +       movaps  %xmm3, -80(%rbp)
365 +       movaps  %xmm4, -64(%rbp)
366 +       movaps  %xmm5, -48(%rbp)
367 +       movaps  %xmm6, -32(%rbp)
368 +       movaps  %xmm7, -16(%rbp)
369 +.L2:
370 +       # basic block 4
371 +       movl    %edi, -180(%rbp)
372 +       # gdb.arch/amd64-prologue-xmm.c:23
373 +       .loc 1 23 0
374 +       movl    -180(%rbp), %eax
375 +       movl    %eax, v(%rip)
376 +       # gdb.arch/amd64-prologue-xmm.c:24
377 +       .loc 1 24 0
378 +       leave
379 +       .cfi_def_cfa 7, 8
380 +       ret
381 +       .cfi_endproc
382 +.LFE0:
383 +       .size   func, .-func
384 +       .type   marker, @function
385 +marker:
386 +.LFB1:
387 +       # gdb.arch/amd64-prologue-xmm.c:28
388 +       .loc 1 28 0
389 +       .cfi_startproc
390 +       # basic block 2
391 +       pushq   %rbp
392 +       .cfi_def_cfa_offset 16
393 +       .cfi_offset 6, -16
394 +       movq    %rsp, %rbp
395 +       .cfi_def_cfa_register 6
396 +       # gdb.arch/amd64-prologue-xmm.c:29
397 +       .loc 1 29 0
398 +       popq    %rbp
399 +       .cfi_def_cfa 7, 8
400 +       ret
401 +       .cfi_endproc
402 +.LFE1:
403 +       .size   marker, .-marker
404 +       .globl  main
405 +       .type   main, @function
406 +main:
407 +.LFB2:
408 +       # gdb.arch/amd64-prologue-xmm.c:33
409 +       .loc 1 33 0
410 +       .cfi_startproc
411 +       # basic block 2
412 +       pushq   %rbp
413 +       .cfi_def_cfa_offset 16
414 +       .cfi_offset 6, -16
415 +       movq    %rsp, %rbp
416 +       .cfi_def_cfa_register 6
417 +       # gdb.arch/amd64-prologue-xmm.c:34
418 +       .loc 1 34 0
419 +       movl    $1, %edi
420 +       movl    $0, %eax
421 +       call    func
422 +       # gdb.arch/amd64-prologue-xmm.c:35
423 +       .loc 1 35 0
424 +       movl    $1, fail(%rip)
425 +       # gdb.arch/amd64-prologue-xmm.c:36
426 +       .loc 1 36 0
427 +       call    marker
428 +       # gdb.arch/amd64-prologue-xmm.c:37
429 +       .loc 1 37 0
430 +       movl    $0, %eax
431 +       # gdb.arch/amd64-prologue-xmm.c:38
432 +       .loc 1 38 0
433 +       popq    %rbp
434 +       .cfi_def_cfa 7, 8
435 +       ret
436 +       .cfi_endproc
437 +.LFE2:
438 +       .size   main, .-main
439 +.Letext0:
440 +       .section        .debug_info,"",@progbits
441 +.Ldebug_info0:
442 +       .long   0xc0    # Length of Compilation Unit Info
443 +       .value  0x4     # DWARF version number
444 +       .long   .Ldebug_abbrev0 # Offset Into Abbrev. Section
445 +       .byte   0x8     # Pointer Size (in bytes)
446 +       .uleb128 0x1    # (DIE (0xb) DW_TAG_compile_unit)
447 +       .long   .LASF1  # DW_AT_producer: "GNU C 4.6.1 20110715 (Red Hat 4.6.1-3)"
448 +       .byte   0x1     # DW_AT_language
449 +       .long   .LASF2  # DW_AT_name: "gdb.arch/amd64-prologue-xmm.c"
450 +       .long   .LASF3  # DW_AT_comp_dir: ""
451 +       .quad   .Ltext0 # DW_AT_low_pc
452 +       .quad   .Letext0        # DW_AT_high_pc
453 +       .long   .Ldebug_line0   # DW_AT_stmt_list
454 +       .uleb128 0x2    # (DIE (0x2d) DW_TAG_subprogram)
455 +       .long   .LASF4  # DW_AT_name: "func"
456 +       .byte   0x1     # DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
457 +       .byte   0x15    # DW_AT_decl_line
458 +                       # DW_AT_prototyped
459 +       .quad   .LFB0   # DW_AT_low_pc
460 +       .quad   .LFE0   # DW_AT_high_pc
461 +       .uleb128 0x1    # DW_AT_frame_base
462 +       .byte   0x9c    # DW_OP_call_frame_cfa
463 +                       # DW_AT_GNU_all_call_sites
464 +       .long   0x59    # DW_AT_sibling
465 +       .uleb128 0x3    # (DIE (0x4a) DW_TAG_formal_parameter)
466 +       .ascii "i\0"    # DW_AT_name
467 +       .byte   0x1     # DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
468 +       .byte   0x15    # DW_AT_decl_line
469 +       .long   0x59    # DW_AT_type
470 +       .uleb128 0x3    # DW_AT_location
471 +       .byte   0x91    # DW_OP_fbreg
472 +       .sleb128 -196
473 +       .uleb128 0x4    # (DIE (0x57) DW_TAG_unspecified_parameters)
474 +       .byte   0       # end of children of DIE 0x2d
475 +       .uleb128 0x5    # (DIE (0x59) DW_TAG_base_type)
476 +       .byte   0x4     # DW_AT_byte_size
477 +       .byte   0x5     # DW_AT_encoding
478 +       .ascii "int\0"  # DW_AT_name
479 +       .uleb128 0x6    # (DIE (0x60) DW_TAG_subprogram)
480 +       .long   .LASF5  # DW_AT_name: "marker"
481 +       .byte   0x1     # DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
482 +       .byte   0x1b    # DW_AT_decl_line
483 +                       # DW_AT_prototyped
484 +       .quad   .LFB1   # DW_AT_low_pc
485 +       .quad   .LFE1   # DW_AT_high_pc
486 +       .uleb128 0x1    # DW_AT_frame_base
487 +       .byte   0x9c    # DW_OP_call_frame_cfa
488 +                       # DW_AT_GNU_all_call_sites
489 +       .uleb128 0x7    # (DIE (0x79) DW_TAG_subprogram)
490 +                       # DW_AT_external
491 +       .long   .LASF6  # DW_AT_name: "main"
492 +       .byte   0x1     # DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
493 +       .byte   0x20    # DW_AT_decl_line
494 +                       # DW_AT_prototyped
495 +       .long   0x59    # DW_AT_type
496 +       .quad   .LFB2   # DW_AT_low_pc
497 +       .quad   .LFE2   # DW_AT_high_pc
498 +       .uleb128 0x1    # DW_AT_frame_base
499 +       .byte   0x9c    # DW_OP_call_frame_cfa
500 +                       # DW_AT_GNU_all_tail_call_sites
501 +       .uleb128 0x8    # (DIE (0x96) DW_TAG_variable)
502 +       .ascii "v\0"    # DW_AT_name
503 +       .byte   0x1     # DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
504 +       .byte   0x12    # DW_AT_decl_line
505 +       .long   0xa9    # DW_AT_type
506 +       .uleb128 0x9    # DW_AT_location
507 +       .byte   0x3     # DW_OP_addr
508 +       .quad   v
509 +       .uleb128 0x9    # (DIE (0xa9) DW_TAG_volatile_type)
510 +       .long   0x59    # DW_AT_type
511 +       .uleb128 0xa    # (DIE (0xae) DW_TAG_variable)
512 +       .long   .LASF0  # DW_AT_name: "fail"
513 +       .byte   0x1     # DW_AT_decl_file (gdb.arch/amd64-prologue-xmm.c)
514 +       .byte   0x12    # DW_AT_decl_line
515 +       .long   0xa9    # DW_AT_type
516 +       .uleb128 0x9    # DW_AT_location
517 +       .byte   0x3     # DW_OP_addr
518 +       .quad   fail
519 +       .byte   0       # end of children of DIE 0xb
520 +       .section        .debug_abbrev,"",@progbits
521 +.Ldebug_abbrev0:
522 +       .uleb128 0x1    # (abbrev code)
523 +       .uleb128 0x11   # (TAG: DW_TAG_compile_unit)
524 +       .byte   0x1     # DW_children_yes
525 +       .uleb128 0x25   # (DW_AT_producer)
526 +       .uleb128 0xe    # (DW_FORM_strp)
527 +       .uleb128 0x13   # (DW_AT_language)
528 +       .uleb128 0xb    # (DW_FORM_data1)
529 +       .uleb128 0x3    # (DW_AT_name)
530 +       .uleb128 0xe    # (DW_FORM_strp)
531 +       .uleb128 0x1b   # (DW_AT_comp_dir)
532 +       .uleb128 0xe    # (DW_FORM_strp)
533 +       .uleb128 0x11   # (DW_AT_low_pc)
534 +       .uleb128 0x1    # (DW_FORM_addr)
535 +       .uleb128 0x12   # (DW_AT_high_pc)
536 +       .uleb128 0x1    # (DW_FORM_addr)
537 +       .uleb128 0x10   # (DW_AT_stmt_list)
538 +       .uleb128 0x17   # (DW_FORM_sec_offset)
539 +       .byte   0
540 +       .byte   0
541 +       .uleb128 0x2    # (abbrev code)
542 +       .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
543 +       .byte   0x1     # DW_children_yes
544 +       .uleb128 0x3    # (DW_AT_name)
545 +       .uleb128 0xe    # (DW_FORM_strp)
546 +       .uleb128 0x3a   # (DW_AT_decl_file)
547 +       .uleb128 0xb    # (DW_FORM_data1)
548 +       .uleb128 0x3b   # (DW_AT_decl_line)
549 +       .uleb128 0xb    # (DW_FORM_data1)
550 +       .uleb128 0x27   # (DW_AT_prototyped)
551 +       .uleb128 0x19   # (DW_FORM_flag_present)
552 +       .uleb128 0x11   # (DW_AT_low_pc)
553 +       .uleb128 0x1    # (DW_FORM_addr)
554 +       .uleb128 0x12   # (DW_AT_high_pc)
555 +       .uleb128 0x1    # (DW_FORM_addr)
556 +       .uleb128 0x40   # (DW_AT_frame_base)
557 +       .uleb128 0x18   # (DW_FORM_exprloc)
558 +       .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
559 +       .uleb128 0x19   # (DW_FORM_flag_present)
560 +       .uleb128 0x1    # (DW_AT_sibling)
561 +       .uleb128 0x13   # (DW_FORM_ref4)
562 +       .byte   0
563 +       .byte   0
564 +       .uleb128 0x3    # (abbrev code)
565 +       .uleb128 0x5    # (TAG: DW_TAG_formal_parameter)
566 +       .byte   0       # DW_children_no
567 +       .uleb128 0x3    # (DW_AT_name)
568 +       .uleb128 0x8    # (DW_FORM_string)
569 +       .uleb128 0x3a   # (DW_AT_decl_file)
570 +       .uleb128 0xb    # (DW_FORM_data1)
571 +       .uleb128 0x3b   # (DW_AT_decl_line)
572 +       .uleb128 0xb    # (DW_FORM_data1)
573 +       .uleb128 0x49   # (DW_AT_type)
574 +       .uleb128 0x13   # (DW_FORM_ref4)
575 +       .uleb128 0x2    # (DW_AT_location)
576 +       .uleb128 0x18   # (DW_FORM_exprloc)
577 +       .byte   0
578 +       .byte   0
579 +       .uleb128 0x4    # (abbrev code)
580 +       .uleb128 0x18   # (TAG: DW_TAG_unspecified_parameters)
581 +       .byte   0       # DW_children_no
582 +       .byte   0
583 +       .byte   0
584 +       .uleb128 0x5    # (abbrev code)
585 +       .uleb128 0x24   # (TAG: DW_TAG_base_type)
586 +       .byte   0       # DW_children_no
587 +       .uleb128 0xb    # (DW_AT_byte_size)
588 +       .uleb128 0xb    # (DW_FORM_data1)
589 +       .uleb128 0x3e   # (DW_AT_encoding)
590 +       .uleb128 0xb    # (DW_FORM_data1)
591 +       .uleb128 0x3    # (DW_AT_name)
592 +       .uleb128 0x8    # (DW_FORM_string)
593 +       .byte   0
594 +       .byte   0
595 +       .uleb128 0x6    # (abbrev code)
596 +       .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
597 +       .byte   0       # DW_children_no
598 +       .uleb128 0x3    # (DW_AT_name)
599 +       .uleb128 0xe    # (DW_FORM_strp)
600 +       .uleb128 0x3a   # (DW_AT_decl_file)
601 +       .uleb128 0xb    # (DW_FORM_data1)
602 +       .uleb128 0x3b   # (DW_AT_decl_line)
603 +       .uleb128 0xb    # (DW_FORM_data1)
604 +       .uleb128 0x27   # (DW_AT_prototyped)
605 +       .uleb128 0x19   # (DW_FORM_flag_present)
606 +       .uleb128 0x11   # (DW_AT_low_pc)
607 +       .uleb128 0x1    # (DW_FORM_addr)
608 +       .uleb128 0x12   # (DW_AT_high_pc)
609 +       .uleb128 0x1    # (DW_FORM_addr)
610 +       .uleb128 0x40   # (DW_AT_frame_base)
611 +       .uleb128 0x18   # (DW_FORM_exprloc)
612 +       .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
613 +       .uleb128 0x19   # (DW_FORM_flag_present)
614 +       .byte   0
615 +       .byte   0
616 +       .uleb128 0x7    # (abbrev code)
617 +       .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
618 +       .byte   0       # DW_children_no
619 +       .uleb128 0x3f   # (DW_AT_external)
620 +       .uleb128 0x19   # (DW_FORM_flag_present)
621 +       .uleb128 0x3    # (DW_AT_name)
622 +       .uleb128 0xe    # (DW_FORM_strp)
623 +       .uleb128 0x3a   # (DW_AT_decl_file)
624 +       .uleb128 0xb    # (DW_FORM_data1)
625 +       .uleb128 0x3b   # (DW_AT_decl_line)
626 +       .uleb128 0xb    # (DW_FORM_data1)
627 +       .uleb128 0x27   # (DW_AT_prototyped)
628 +       .uleb128 0x19   # (DW_FORM_flag_present)
629 +       .uleb128 0x49   # (DW_AT_type)
630 +       .uleb128 0x13   # (DW_FORM_ref4)
631 +       .uleb128 0x11   # (DW_AT_low_pc)
632 +       .uleb128 0x1    # (DW_FORM_addr)
633 +       .uleb128 0x12   # (DW_AT_high_pc)
634 +       .uleb128 0x1    # (DW_FORM_addr)
635 +       .uleb128 0x40   # (DW_AT_frame_base)
636 +       .uleb128 0x18   # (DW_FORM_exprloc)
637 +       .uleb128 0x2116 # (DW_AT_GNU_all_tail_call_sites)
638 +       .uleb128 0x19   # (DW_FORM_flag_present)
639 +       .byte   0
640 +       .byte   0
641 +       .uleb128 0x8    # (abbrev code)
642 +       .uleb128 0x34   # (TAG: DW_TAG_variable)
643 +       .byte   0       # DW_children_no
644 +       .uleb128 0x3    # (DW_AT_name)
645 +       .uleb128 0x8    # (DW_FORM_string)
646 +       .uleb128 0x3a   # (DW_AT_decl_file)
647 +       .uleb128 0xb    # (DW_FORM_data1)
648 +       .uleb128 0x3b   # (DW_AT_decl_line)
649 +       .uleb128 0xb    # (DW_FORM_data1)
650 +       .uleb128 0x49   # (DW_AT_type)
651 +       .uleb128 0x13   # (DW_FORM_ref4)
652 +       .uleb128 0x2    # (DW_AT_location)
653 +       .uleb128 0x18   # (DW_FORM_exprloc)
654 +       .byte   0
655 +       .byte   0
656 +       .uleb128 0x9    # (abbrev code)
657 +       .uleb128 0x35   # (TAG: DW_TAG_volatile_type)
658 +       .byte   0       # DW_children_no
659 +       .uleb128 0x49   # (DW_AT_type)
660 +       .uleb128 0x13   # (DW_FORM_ref4)
661 +       .byte   0
662 +       .byte   0
663 +       .uleb128 0xa    # (abbrev code)
664 +       .uleb128 0x34   # (TAG: DW_TAG_variable)
665 +       .byte   0       # DW_children_no
666 +       .uleb128 0x3    # (DW_AT_name)
667 +       .uleb128 0xe    # (DW_FORM_strp)
668 +       .uleb128 0x3a   # (DW_AT_decl_file)
669 +       .uleb128 0xb    # (DW_FORM_data1)
670 +       .uleb128 0x3b   # (DW_AT_decl_line)
671 +       .uleb128 0xb    # (DW_FORM_data1)
672 +       .uleb128 0x49   # (DW_AT_type)
673 +       .uleb128 0x13   # (DW_FORM_ref4)
674 +       .uleb128 0x2    # (DW_AT_location)
675 +       .uleb128 0x18   # (DW_FORM_exprloc)
676 +       .byte   0
677 +       .byte   0
678 +       .byte   0
679 +       .section        .debug_aranges,"",@progbits
680 +       .long   0x2c    # Length of Address Ranges Info
681 +       .value  0x2     # DWARF Version
682 +       .long   .Ldebug_info0   # Offset of Compilation Unit Info
683 +       .byte   0x8     # Size of Address
684 +       .byte   0       # Size of Segment Descriptor
685 +       .value  0       # Pad to 16 byte boundary
686 +       .value  0
687 +       .quad   .Ltext0 # Address
688 +       .quad   .Letext0-.Ltext0        # Length
689 +       .quad   0
690 +       .quad   0
691 +       .section        .debug_line,"",@progbits
692 +.Ldebug_line0:
693 +       .section        .debug_str,"MS",@progbits,1
694 +.LASF3:
695 +       .string ""
696 +.LASF0:
697 +       .string "fail"
698 +.LASF4:
699 +       .string "func"
700 +.LASF1:
701 +       .string "GNU C 4.6.1 20110715 (Red Hat 4.6.1-3)"
702 +.LASF2:
703 +       .string "gdb.arch/amd64-prologue-xmm.c"
704 +.LASF5:
705 +       .string "marker"
706 +.LASF6:
707 +       .string "main"
708 +       .ident  "GCC: (GNU) 4.6.1 20110715 (Red Hat 4.6.1-3)"
709 +       .section        .note.GNU-stack,"",@progbits
This page took 0.105225 seconds and 4 git commands to generate.