OLD | NEW |
1 /* Definitions for a frame unwinder, for GDB, the GNU debugger. | 1 /* Definitions for a frame unwinder, for GDB, the GNU debugger. |
2 | 2 |
3 Copyright (C) 2003-2004, 2007-2012 Free Software Foundation, Inc. | 3 Copyright (C) 2003-2004, 2007-2012 Free Software Foundation, Inc. |
4 | 4 |
5 This file is part of GDB. | 5 This file is part of GDB. |
6 | 6 |
7 This program is free software; you can redistribute it and/or modify | 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 | 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 | 9 the Free Software Foundation; either version 3 of the License, or |
10 (at your option) any later version. | 10 (at your option) any later version. |
(...skipping 26 matching lines...) Expand all Loading... |
37 | 37 |
38 THIS frame's register values can be obtained by unwinding NEXT | 38 THIS frame's register values can be obtained by unwinding NEXT |
39 frame's registers (a recursive operation). | 39 frame's registers (a recursive operation). |
40 | 40 |
41 THIS frame's prologue cache can be used to cache information such | 41 THIS frame's prologue cache can be used to cache information such |
42 as where this frame's prologue stores the previous frame's | 42 as where this frame's prologue stores the previous frame's |
43 registers. */ | 43 registers. */ |
44 | 44 |
45 /* Given THIS frame, take a whiff of its registers (namely | 45 /* Given THIS frame, take a whiff of its registers (namely |
46 the PC and attributes) and if SELF is the applicable unwinder, | 46 the PC and attributes) and if SELF is the applicable unwinder, |
47 return non-zero. Possibly also initialize THIS_PROLOGUE_CACHE. */ | 47 return non-zero. Possibly also initialize THIS_PROLOGUE_CACHE; but |
| 48 only if returning 1. Initializing THIS_PROLOGUE_CACHE in other |
| 49 cases (0 return, or exception) is invalid. */ |
48 | 50 |
49 typedef int (frame_sniffer_ftype) (const struct frame_unwind *self, | 51 typedef int (frame_sniffer_ftype) (const struct frame_unwind *self, |
50 struct frame_info *this_frame, | 52 struct frame_info *this_frame, |
51 void **this_prologue_cache); | 53 void **this_prologue_cache); |
52 | 54 |
53 typedef enum unwind_stop_reason (frame_unwind_stop_reason_ftype) | 55 typedef enum unwind_stop_reason (frame_unwind_stop_reason_ftype) |
54 (struct frame_info *this_frame, void **this_prologue_cache); | 56 (struct frame_info *this_frame, void **this_prologue_cache); |
55 | 57 |
56 /* A default frame sniffer which always accepts the frame. Used by | 58 /* A default frame sniffer which always accepts the frame. Used by |
57 fallback prologue unwinders. */ | 59 fallback prologue unwinders. */ |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 gdb_byte *buf); | 213 gdb_byte *buf); |
212 | 214 |
213 /* Return a value which indicates that FRAME's saved version of REGNUM | 215 /* Return a value which indicates that FRAME's saved version of REGNUM |
214 has a known constant (computed) value of ADDR. Convert the | 216 has a known constant (computed) value of ADDR. Convert the |
215 CORE_ADDR to a target address if necessary. */ | 217 CORE_ADDR to a target address if necessary. */ |
216 | 218 |
217 struct value *frame_unwind_got_address (struct frame_info *frame, int regnum, | 219 struct value *frame_unwind_got_address (struct frame_info *frame, int regnum, |
218 CORE_ADDR addr); | 220 CORE_ADDR addr); |
219 | 221 |
220 #endif | 222 #endif |
OLD | NEW |