]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/tui/tui-disasm.h
Introduce tui_source_window_base::set_contents method
[thirdparty/binutils-gdb.git] / gdb / tui / tui-disasm.h
CommitLineData
f377b406 1/* Disassembly display.
65f05602 2
42a4f53d 3 Copyright (C) 1998-2019 Free Software Foundation, Inc.
65f05602 4
f377b406
SC
5 Contributed by Hewlett-Packard Company.
6
7 This file is part of GDB.
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
a9762ec7 11 the Free Software Foundation; either version 3 of the License, or
f377b406
SC
12 (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
a9762ec7 20 along with this program. If not, see <http://www.gnu.org/licenses/>. */
f377b406 21
1a5c2598
TT
22#ifndef TUI_TUI_DISASM_H
23#define TUI_TUI_DISASM_H
c906108c 24
88f7e873
TT
25#include "tui/tui.h"
26#include "tui/tui-data.h"
5104fe36 27#include "tui-winsource.h"
88f7e873
TT
28
29/* A TUI disassembly window. */
30
31struct tui_disasm_window : public tui_source_window_base
32{
33 tui_disasm_window ()
34 : tui_source_window_base (DISASSEM_WIN)
35 {
36 }
37
38 DISABLE_COPY_AND_ASSIGN (tui_disasm_window);
39
40 const char *name () const override
41 {
42 return DISASSEM_NAME;
43 }
44
45 bool location_matches_p (struct bp_location *loc, int line_no) override;
46
a54700c6
TT
47 void maybe_update (struct frame_info *fi, symtab_and_line sal,
48 int line_no, CORE_ADDR addr)
49 override;
50
e25d2004
TT
51 void erase_source_content () override
52 {
53 do_erase_source_content (NO_DISASSEM_STRING);
54 }
55
88f7e873
TT
56protected:
57
58 void do_scroll_vertical (int num_to_scroll) override;
088f37dd 59
81c82c4b
TT
60 enum tui_status set_contents
61 (struct gdbarch *gdbarch,
62 struct symtab *s,
63 struct tui_line_or_address line_or_addr) override;
64
088f37dd
TT
65private:
66 /* Answer whether a particular line number or address is displayed
67 in the current source window. */
68 bool addr_is_displayed (CORE_ADDR addr) const;
88f7e873 69};
c906108c 70
13274fc3
UW
71extern void tui_show_disassem (struct gdbarch *, CORE_ADDR);
72extern void tui_show_disassem_and_update_source (struct gdbarch *, CORE_ADDR);
13274fc3 73extern void tui_get_begin_asm_address (struct gdbarch **, CORE_ADDR *);
c906108c 74
1a5c2598 75#endif /* TUI_TUI_DISASM_H */