diff options
Diffstat (limited to 'gdb/testsuite/gdb.dwarf2/callframecfa.S')
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/callframecfa.S | 309 |
1 files changed, 309 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.dwarf2/callframecfa.S b/gdb/testsuite/gdb.dwarf2/callframecfa.S new file mode 100644 index 0000000..6d0421a --- /dev/null +++ b/gdb/testsuite/gdb.dwarf2/callframecfa.S @@ -0,0 +1,309 @@ +/* + Copyright 2009 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 was compiled from a trivial program just to test the + DW_OP_call_frame_cfa operator: + + int func (int arg) { + return arg + 23; + } + + int main(int argc, char *argv[]) { + func (77); + } +*/ + + .file "q.c" + .section .debug_abbrev,"",@progbits +.Ldebug_abbrev0: + .section .debug_info,"",@progbits +.Ldebug_info0: + .section .debug_line,"",@progbits +.Ldebug_line0: + .text +.Ltext0: +.globl func + .type func, @function +func: +.LFB0: + .file 1 "q.c" + .loc 1 2 0 + .cfi_startproc + pushl %ebp + .cfi_def_cfa_offset 8 + movl %esp, %ebp + .cfi_offset 5, -8 + .cfi_def_cfa_register 5 + .loc 1 3 0 + movl 8(%ebp), %eax + addl $23, %eax + .loc 1 4 0 + popl %ebp + .cfi_restore 5 + .cfi_def_cfa 4, 4 + ret + .cfi_endproc +.LFE0: + .size func, .-func +.globl _start + .type _start, @function +_start: +.LFB1: + .loc 1 6 0 + .cfi_startproc + pushl %ebp + .cfi_def_cfa_offset 8 + movl %esp, %ebp + .cfi_offset 5, -8 + .cfi_def_cfa_register 5 + subl $4, %esp + .loc 1 7 0 + movl $77, (%esp) + call func + .loc 1 8 0 + leave + .cfi_restore 5 + .cfi_def_cfa 4, 4 + ret + .cfi_endproc +.LFE1: + .size _start, .-_start +.Letext0: + .section .debug_info + .long 0x9e + .value 0x3 + .long .Ldebug_abbrev0 + .byte 0x4 + .uleb128 0x1 + .long .LASF5 + .byte 0x1 + .string "q.c" + .long .LASF6 + .long .Ltext0 + .long .Letext0 + .long .Ldebug_line0 + .uleb128 0x2 + .byte 0x1 + .long .LASF0 + .byte 0x1 + .byte 0x1 + .byte 0x1 + .long 0x4f + .long .LFB0 + .long .LFE0 + .byte 0x1 + .byte 0x9c + .long 0x4f + .uleb128 0x3 + .string "arg" + .byte 0x1 + .byte 0x1 + .long 0x4f + .byte 0x2 + .byte 0x91 + .sleb128 0 + .byte 0x0 + .uleb128 0x4 + .byte 0x4 + .byte 0x5 + .string "int" + .uleb128 0x2 + .byte 0x1 + .long .LASF1 + .byte 0x1 + .byte 0x6 + .byte 0x1 + .long 0x4f + .long .LFB1 + .long .LFE1 + .byte 0x1 + .byte 0x9c + .long 0x8e + .uleb128 0x5 + .long .LASF2 + .byte 0x1 + .byte 0x6 + .long 0x4f + .byte 0x2 + .byte 0x91 + .sleb128 0 + .uleb128 0x5 + .long .LASF3 + .byte 0x1 + .byte 0x6 + .long 0x8e + .byte 0x2 + .byte 0x91 + .sleb128 4 + .byte 0x0 + .uleb128 0x6 + .byte 0x4 + .long 0x94 + .uleb128 0x6 + .byte 0x4 + .long 0x9a + .uleb128 0x7 + .byte 0x1 + .byte 0x6 + .long .LASF4 + .byte 0x0 + .section .debug_abbrev + .uleb128 0x1 + .uleb128 0x11 + .byte 0x1 + .uleb128 0x25 + .uleb128 0xe + .uleb128 0x13 + .uleb128 0xb + .uleb128 0x3 + .uleb128 0x8 + .uleb128 0x1b + .uleb128 0xe + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x12 + .uleb128 0x1 + .uleb128 0x10 + .uleb128 0x6 + .byte 0x0 + .byte 0x0 + .uleb128 0x2 + .uleb128 0x2e + .byte 0x1 + .uleb128 0x3f + .uleb128 0xc + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x3a + .uleb128 0xb + .uleb128 0x3b + .uleb128 0xb + .uleb128 0x27 + .uleb128 0xc + .uleb128 0x49 + .uleb128 0x13 + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x12 + .uleb128 0x1 + .uleb128 0x40 + .uleb128 0xa + .uleb128 0x1 + .uleb128 0x13 + .byte 0x0 + .byte 0x0 + .uleb128 0x3 + .uleb128 0x5 + .byte 0x0 + .uleb128 0x3 + .uleb128 0x8 + .uleb128 0x3a + .uleb128 0xb + .uleb128 0x3b + .uleb128 0xb + .uleb128 0x49 + .uleb128 0x13 + .uleb128 0x2 + .uleb128 0xa + .byte 0x0 + .byte 0x0 + .uleb128 0x4 + .uleb128 0x24 + .byte 0x0 + .uleb128 0xb + .uleb128 0xb + .uleb128 0x3e + .uleb128 0xb + .uleb128 0x3 + .uleb128 0x8 + .byte 0x0 + .byte 0x0 + .uleb128 0x5 + .uleb128 0x5 + .byte 0x0 + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x3a + .uleb128 0xb + .uleb128 0x3b + .uleb128 0xb + .uleb128 0x49 + .uleb128 0x13 + .uleb128 0x2 + .uleb128 0xa + .byte 0x0 + .byte 0x0 + .uleb128 0x6 + .uleb128 0xf + .byte 0x0 + .uleb128 0xb + .uleb128 0xb + .uleb128 0x49 + .uleb128 0x13 + .byte 0x0 + .byte 0x0 + .uleb128 0x7 + .uleb128 0x24 + .byte 0x0 + .uleb128 0xb + .uleb128 0xb + .uleb128 0x3e + .uleb128 0xb + .uleb128 0x3 + .uleb128 0xe + .byte 0x0 + .byte 0x0 + .byte 0x0 + .section .debug_pubnames,"",@progbits + .long 0x20 + .value 0x2 + .long .Ldebug_info0 + .long 0xa2 + .long 0x25 + .string "func" + .long 0x56 + .string "main" + .long 0x0 + .section .debug_aranges,"",@progbits + .long 0x1c + .value 0x2 + .long .Ldebug_info0 + .byte 0x4 + .byte 0x0 + .value 0x0 + .value 0x0 + .long .Ltext0 + .long .Letext0-.Ltext0 + .long 0x0 + .long 0x0 + .section .debug_str,"MS",@progbits,1 +.LASF5: + .string "GNU C 4.5.0 20090810 (experimental) [trunk revision 150633]" +.LASF2: + .string "argc" +.LASF6: + .string "/tmp" +.LASF0: + .string "func" +.LASF3: + .string "argv" +.LASF1: + .string "main" +.LASF4: + .string "char" + .ident "GCC: (GNU) 4.5.0 20090810 (experimental) [trunk revision 150633]" + .section .note.GNU-stack,"",@progbits |