1 /* Definitions for inline frame support.
3 Copyright (C) 2008-2016 Free Software Foundation, Inc.
5 This file is part of GDB.
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.
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.
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/>. */
20 #if !defined (INLINE_FRAME_H)
21 #define INLINE_FRAME_H 1
26 /* The inline frame unwinder. */
28 extern const struct frame_unwind inline_frame_unwind
;
30 /* Skip all inlined functions whose call sites are at the current PC.
31 Frames for the hidden functions will not appear in the backtrace until the
32 user steps into them. */
34 void skip_inline_frames (ptid_t ptid
);
36 /* Forget about any hidden inlined functions in PTID, which is new or
37 about to be resumed. If PTID is minus_one_ptid, forget about all
38 hidden inlined functions. */
40 void clear_inline_frame_state (ptid_t ptid
);
42 /* Step into an inlined function by unhiding it. */
44 void step_into_inline_frame (ptid_t ptid
);
46 /* Return the number of hidden functions inlined into the current
49 int inline_skipped_frames (ptid_t ptid
);
51 /* If one or more inlined functions are hidden, return the symbol for
52 the function inlined into the current frame. */
54 struct symbol
*inline_skipped_symbol (ptid_t ptid
);
56 /* Return the number of functions inlined into THIS_FRAME. Some of
57 the callees may not have associated frames (see
58 skip_inline_frames). */
60 int frame_inlined_callees (struct frame_info
*this_frame
);
62 #endif /* !defined (INLINE_FRAME_H) */