GDB (API)
|
00001 /* Definitions for inline frame support. 00002 00003 Copyright (C) 2008-2013 Free Software Foundation, Inc. 00004 00005 This file is part of GDB. 00006 00007 This program is free software; you can redistribute it and/or modify 00008 it under the terms of the GNU General Public License as published by 00009 the Free Software Foundation; either version 3 of the License, or 00010 (at your option) any later version. 00011 00012 This program is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 00019 00020 #if !defined (INLINE_FRAME_H) 00021 #define INLINE_FRAME_H 1 00022 00023 struct frame_info; 00024 struct frame_unwind; 00025 00026 /* The inline frame unwinder. */ 00027 00028 extern const struct frame_unwind inline_frame_unwind; 00029 00030 /* Skip all inlined functions whose call sites are at the current PC. 00031 Frames for the hidden functions will not appear in the backtrace until the 00032 user steps into them. */ 00033 00034 void skip_inline_frames (ptid_t ptid); 00035 00036 /* Forget about any hidden inlined functions in PTID, which is new or 00037 about to be resumed. If PTID is minus_one_ptid, forget about all 00038 hidden inlined functions. */ 00039 00040 void clear_inline_frame_state (ptid_t ptid); 00041 00042 /* Step into an inlined function by unhiding it. */ 00043 00044 void step_into_inline_frame (ptid_t ptid); 00045 00046 /* Return the number of hidden functions inlined into the current 00047 frame. */ 00048 00049 int inline_skipped_frames (ptid_t ptid); 00050 00051 /* If one or more inlined functions are hidden, return the symbol for 00052 the function inlined into the current frame. */ 00053 00054 struct symbol *inline_skipped_symbol (ptid_t ptid); 00055 00056 /* Return the number of functions inlined into THIS_FRAME. Some of 00057 the callees may not have associated frames (see 00058 skip_inline_frames). */ 00059 00060 int frame_inlined_callees (struct frame_info *this_frame); 00061 00062 #endif /* !defined (INLINE_FRAME_H) */