gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gdb / stack.h
CommitLineData
b9362cc7
AC
1/* Stack manipulation commands, for GDB the GNU Debugger.
2
b811d2c2 3 Copyright (C) 2003-2020 Free Software Foundation, Inc.
b9362cc7
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
b9362cc7
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/>. */
b9362cc7
AC
19
20#ifndef STACK_H
21#define STACK_H
22
f67ffa6a
AB
23/* Access method used by the MI -stack-select-frame command to switch to
24 frame FI. This differs from SELECT_FRAME in that the observers for a
25 user selected context change will be triggered. */
26
27void select_frame_for_mi (struct frame_info *fi);
b9362cc7 28
c6dc63a1
TT
29gdb::unique_xmalloc_ptr<char> find_frame_funname (struct frame_info *frame,
30 enum language *funlang,
31 struct symbol **funcp);
f8f6f20b 32
3e43a32a 33typedef void (*iterate_over_block_arg_local_vars_cb) (const char *print_name,
2c58c0a9
PA
34 struct symbol *sym,
35 void *cb_data);
36
3977b71f 37void iterate_over_block_arg_vars (const struct block *block,
2c58c0a9
PA
38 iterate_over_block_arg_local_vars_cb cb,
39 void *cb_data);
40
3977b71f 41void iterate_over_block_local_vars (const struct block *block,
2c58c0a9
PA
42 iterate_over_block_arg_local_vars_cb cb,
43 void *cb_data);
44
4b5e8d19
PW
45/* Initialize *WHAT to be a copy of the user desired print what frame info.
46 If !WHAT.has_value (), the printing function chooses a default set of
47 information to print, otherwise the printing function should print
48 the relevant information. */
49
50void get_user_print_what_frame_info (gdb::optional<enum print_what> *what);
51
62137775 52/* Return true if we should display the address in addition to the location,
4b5e8d19
PW
53 because we are in the middle of a statement. */
54
62137775 55bool frame_show_address (struct frame_info *frame, struct symtab_and_line sal);
4b5e8d19 56
eb2dd8df
AB
57/* Forget the last sal we displayed. */
58
1bfeeb0f 59void clear_last_displayed_sal (void);
eb2dd8df
AB
60
61/* Is our record of the last sal we displayed valid? If not, the
62 get_last_displayed_* functions will return NULL or 0, as appropriate. */
63
64bool last_displayed_sal_is_valid (void);
65
66/* Get the pspace of the last sal we displayed, if it's valid, otherwise
67 return nullptr. */
68
1bfeeb0f 69struct program_space* get_last_displayed_pspace (void);
eb2dd8df
AB
70
71/* Get the address of the last sal we displayed, if it's valid, otherwise
72 return an address of 0. */
73
1bfeeb0f 74CORE_ADDR get_last_displayed_addr (void);
eb2dd8df
AB
75
76/* Get the symtab of the last sal we displayed, if it's valid, otherwise
77 return nullptr. */
78
1bfeeb0f 79struct symtab* get_last_displayed_symtab (void);
eb2dd8df
AB
80
81/* Get the line of the last sal we displayed, if it's valid, otherwise
82 return 0. */
83
1bfeeb0f 84int get_last_displayed_line (void);
eb2dd8df
AB
85
86/* Get the last sal we displayed, if it's valid, otherwise return a
87 symtab_and_line constructed in its default state. */
88
51abb421 89symtab_and_line get_last_displayed_sal ();
1bfeeb0f 90
5d707134
PA
91/* Completer for the "frame apply all" command. */
92void frame_apply_all_cmd_completer (struct cmd_list_element *ignore,
93 completion_tracker &tracker,
94 const char *text, const char */*word*/);
95
b9362cc7 96#endif /* #ifndef STACK_H */
This page took 1.77147 seconds and 4 git commands to generate.