X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gdb%2Fextension.h;h=47839ea50beb7dc3257b9cf1c571038a572a267e;hb=0d02e70b197c786f26175b9a73f94e01d14abdab;hp=581afc282dc71a0193c31215aa2933d95589d38c;hpb=4b5e8d19afe4accc3dd87aeba58d6704e71c610d;p=binutils-gdb.git diff --git a/gdb/extension.h b/gdb/extension.h index 581afc282dc..47839ea50be 100644 --- a/gdb/extension.h +++ b/gdb/extension.h @@ -1,6 +1,6 @@ /* Interface between gdb and its extension languages. - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2022 Free Software Foundation, Inc. This file is part of GDB. @@ -21,8 +21,8 @@ #define EXTENSION_H #include "mi/mi-cmds.h" /* For PRINT_NO_VALUES, etc. */ -#include "gdbsupport/vec.h" #include "gdbsupport/array-view.h" +#include "gdbsupport/gdb_optional.h" struct breakpoint; struct command_line; @@ -268,12 +268,15 @@ extern objfile_script_sourcer_func *ext_lang_objfile_script_sourcer extern objfile_script_executor_func *ext_lang_objfile_script_executor (const struct extension_language_defn *); -extern int ext_lang_auto_load_enabled (const struct extension_language_defn *); +/* Return true if auto-loading of EXTLANG scripts is enabled. + False is returned if support for this language isn't compiled in. */ + +extern bool ext_lang_auto_load_enabled (const struct extension_language_defn *); /* Wrappers for each extension language API function that iterate over all extension languages. */ -extern void finish_ext_lang_initialization (void); +extern void ext_lang_initialization (void); extern void eval_ext_lang_from_control_command (struct command_line *cmd); @@ -283,10 +286,8 @@ extern char *apply_ext_lang_type_printers (struct ext_lang_type_printers *, struct type *); extern int apply_ext_lang_val_pretty_printer - (struct type *type, - LONGEST embedded_offset, CORE_ADDR address, - struct ui_file *stream, int recurse, - struct value *val, const struct value_print_options *options, + (struct value *value, struct ui_file *stream, int recurse, + const struct value_print_options *options, const struct language_defn *language); extern enum ext_lang_bt_status apply_ext_lang_frame_filter @@ -310,4 +311,36 @@ extern void get_matching_xmethod_workers (struct type *type, const char *method_name, std::vector *workers); +/* Try to colorize some source code. FILENAME is the name of the file + holding the code. CONTENTS is the source code itself. This will + either a colorized (using ANSI terminal escapes) version of the + source code, or an empty value if colorizing could not be done. */ + +extern gdb::optional ext_lang_colorize + (const std::string &filename, const std::string &contents); + +/* Try to colorize a single line of disassembler output, CONTENT for + GDBARCH. This will return either a colorized (using ANSI terminal + escapes) version of CONTENT, or an empty value if colorizing could not + be done. */ + +extern gdb::optional ext_lang_colorize_disasm + (const std::string &content, gdbarch *gdbarch); + +/* Calls extension_language_ops::print_insn for each extension language, + returning the result from the first extension language that returns a + non-empty result (any further extension languages are not then called). + + All arguments are forwarded to extension_language_ops::print_insn, see + that function for a full description. */ + +extern gdb::optional ext_lang_print_insn + (struct gdbarch *gdbarch, CORE_ADDR address, struct disassemble_info *info); + +#if GDB_SELF_TEST +namespace selftests { +extern void (*hook_set_active_ext_lang) (); +} +#endif + #endif /* EXTENSION_H */