Automatic date update in version.in
[deliverable/binutils-gdb.git] / gdb / infcall.h
CommitLineData
04714b91
AC
1/* Perform an inferior function call, for GDB, the GNU debugger.
2
e2882c85 3 Copyright (C) 2003-2018 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
JK
23#include "dummy-frame.h"
24
04714b91 25struct value;
a9fa03de
AF
26struct type;
27
8388016d
PA
28/* Determine a function's address and its return type from its value.
29 If the function is a GNU ifunc, then return the address of the
30 target function, and set *FUNCTION_TYPE to the target function's
31 type, and *RETVAL_TYPE to the target function's return type.
32 Calls error() if the function is not valid for calling. */
33
a9fa03de 34extern CORE_ADDR find_function_addr (struct value *function,
8388016d
PA
35 struct type **retval_type,
36 struct type **function_type = NULL);
04714b91
AC
37
38/* Perform a function call in the inferior.
39
40 ARGS is a vector of values of arguments (NARGS of them). FUNCTION
41 is a value, the function to be called. Returns a value
42 representing what the function returned. May fail to return, if a
43 breakpoint or signal is hit during the execution of the function.
44
7022349d
PA
45 DFEAULT_RETURN_TYPE is used as function return type if the return
46 type is unknown. This is used when calling functions with no debug
47 info.
48
1777feb0 49 ARGS is modified to contain coerced values. */
04714b91 50
7022349d
PA
51extern struct value *call_function_by_hand (struct value *function,
52 type *default_return_type,
53 int nargs,
04714b91
AC
54 struct value **args);
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,
63 int nargs,
ed12ef62 64 struct value **args,
558e5469 65 dummy_frame_dtor_ftype *dummy_dtor,
ed12ef62
JK
66 void *dummy_dtor_data);
67
7022349d
PA
68/* Throw an error indicating that the user tried to call a function
69 that has unknown return type. FUNC_NAME is the name of the
70 function to be included in the error message; may be NULL, in which
71 case the error message doesn't include a function name. */
72
73extern void error_call_unknown_return_type (const char *func_name);
74
04714b91 75#endif
This page took 1.394996 seconds and 4 git commands to generate.