1/* Unwinder test program for signal frames. 2 3 Copyright 2007 Free Software Foundation, Inc. 4 5 This file is part of GDB. 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 3 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19 20void sigframe (void); 21void setup (void); 22 23void 24func (void) 25{ 26} 27 28int 29main (void) 30{ 31 setup (); 32} 33 34/* Create an imitation signal frame. This will work on any x86 or 35 x86-64 target which uses a version of GAS recent enough for 36 .cfi_signal_frame (added 2006-02-27 and included in binutils 2.17). 37 The default CIE created by gas suffices to unwind from an empty 38 function. */ 39 40asm(".text\n" 41 " .align 8\n" 42 " .globl setup\n" 43 "setup:\n" 44 " push $sigframe\n" 45 " jmp func\n" 46 "\n" 47 " .cfi_startproc\n" 48 " .cfi_signal_frame\n" 49 " nop\n" 50 " .globl sigframe\n" 51 "sigframe:\n" 52 " ret\n" 53 " .cfi_endproc"); 54