gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gdb / infcall.h
CommitLineData
04714b91
AC
1/* Perform an inferior function call, for GDB, the GNU debugger.
2
b811d2c2 3 Copyright (C) 2003-2020 Free Software Foundation, Inc.
04714b91
AC
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
a9762ec7 9 the Free Software Foundation; either version 3 of the License, or
04714b91
AC
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
a9762ec7 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
04714b91
AC
19
20#ifndef INFCALL_H
21#define INFCALL_H
22
558e5469 23#include "dummy-frame.h"
268a13a5 24#include "gdbsupport/array-view.h"
558e5469 25
04714b91 26struct value;
a9fa03de
AF
27struct type;
28
8388016d
PA
29/* Determine a function's address and its return type from its value.
30 If the function is a GNU ifunc, then return the address of the
31 target function, and set *FUNCTION_TYPE to the target function's
32 type, and *RETVAL_TYPE to the target function's return type.
33 Calls error() if the function is not valid for calling. */
34
a9fa03de 35extern CORE_ADDR find_function_addr (struct value *function,
8388016d
PA
36 struct type **retval_type,
37 struct type **function_type = NULL);
04714b91
AC
38
39/* Perform a function call in the inferior.
40
e71585ff
PA
41 ARGS is a vector of values of arguments. FUNCTION is a value, the
42 function to be called. Returns a value representing what the
43 function returned. May fail to return, if a breakpoint or signal
44 is hit during the execution of the function.
04714b91 45
30baf67b 46 DEFAULT_RETURN_TYPE is used as function return type if the return
7022349d
PA
47 type is unknown. This is used when calling functions with no debug
48 info.
49
1777feb0 50 ARGS is modified to contain coerced values. */
04714b91 51
7022349d
PA
52extern struct value *call_function_by_hand (struct value *function,
53 type *default_return_type,
e71585ff 54 gdb::array_view<value *> args);
04714b91 55
ed12ef62
JK
56/* Similar to call_function_by_hand and additional call
57 register_dummy_frame_dtor with DUMMY_DTOR and DUMMY_DTOR_DATA for the
58 created inferior call dummy frame. */
59
ed12ef62 60extern struct value *
7022349d
PA
61 call_function_by_hand_dummy (struct value *function,
62 type *default_return_type,
e71585ff 63 gdb::array_view<value *> args,
558e5469 64 dummy_frame_dtor_ftype *dummy_dtor,
ed12ef62
JK
65 void *dummy_dtor_data);
66
7022349d
PA
67/* Throw an error indicating that the user tried to call a function
68 that has unknown return type. FUNC_NAME is the name of the
69 function to be included in the error message; may be NULL, in which
70 case the error message doesn't include a function name. */
71
72extern void error_call_unknown_return_type (const char *func_name);
73
04714b91 74#endif
This page took 1.388359 seconds and 4 git commands to generate.