| /* |
| Copyright 2009-2012 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 |