/* TUI display locator. Copyright (C) 1998-2019 Free Software Foundation, Inc. Contributed by Hewlett-Packard Company. This file is part of GDB. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef TUI_TUI_STACK_H #define TUI_TUI_STACK_H #include "tui/tui-data.h" struct frame_info; /* Locator window class. */ struct tui_locator_window : public tui_gen_win_info { tui_locator_window () : tui_gen_win_info (LOCATOR_WIN) { full_name[0] = 0; proc_name[0] = 0; } void rerender () override; /* Update the locator, with the provided arguments. Returns true if any of the locator's fields were actually changed, and false otherwise. */ bool set_locator_info (struct gdbarch *gdbarch, const char *fullname, const char *procname, int lineno, CORE_ADDR addr); /* Set the full_name portion of the locator. */ void set_locator_fullname (const char *fullname); std::string full_name; std::string proc_name; int line_no = 0; CORE_ADDR addr = 0; /* Architecture associated with code at this location. */ struct gdbarch *gdbarch = nullptr; private: /* Create the status line to display as much information as we can on this single line: target name, process number, current function, current line, current PC, SingleKey mode. */ std::string make_status_line () const; }; extern void tui_update_locator_fullname (const char *); extern void tui_show_locator_content (void); extern int tui_show_frame_info (struct frame_info *); #endif /* TUI_TUI_STACK_H */