diff options
Diffstat (limited to 'gdb/extension.h')
-rw-r--r-- | gdb/extension.h | 212 |
1 files changed, 111 insertions, 101 deletions
diff --git a/gdb/extension.h b/gdb/extension.h index c7d1df2..a903c00 100644 --- a/gdb/extension.h +++ b/gdb/extension.h @@ -45,65 +45,67 @@ typedef void script_sourcer_func (const struct extension_language_defn *, /* A function to load and process a script for an objfile. The file has been opened and is ready to be read from the beginning. Any exceptions are not caught, and are passed to the caller. */ -typedef void objfile_script_sourcer_func - (const struct extension_language_defn *, - struct objfile *, FILE *stream, const char *filename); +typedef void +objfile_script_sourcer_func (const struct extension_language_defn *, + struct objfile *, FILE *stream, + const char *filename); /* A function to execute a script for an objfile. Any exceptions are not caught, and are passed to the caller. */ -typedef void objfile_script_executor_func - (const struct extension_language_defn *, - struct objfile *, const char *name, const char *script); +typedef void +objfile_script_executor_func (const struct extension_language_defn *, + struct objfile *, const char *name, + const char *script); /* Enum of each extension(/scripting) language. */ enum extension_language - { - EXT_LANG_NONE, - EXT_LANG_GDB, - EXT_LANG_PYTHON, - EXT_LANG_GUILE - }; +{ + EXT_LANG_NONE, + EXT_LANG_GDB, + EXT_LANG_PYTHON, + EXT_LANG_GUILE +}; /* Extension language frame-filter status return values. */ enum ext_lang_bt_status - { - /* Return when an error has occurred in processing frame filters, +{ + /* Return when an error has occurred in processing frame filters, or when printing the stack. */ - EXT_LANG_BT_ERROR = -1, + EXT_LANG_BT_ERROR = -1, - /* Return from internal routines to indicate that the function + /* Return from internal routines to indicate that the function succeeded. */ - EXT_LANG_BT_OK = 1, + EXT_LANG_BT_OK = 1, - /* Return when the frame filter process is complete, but there + /* Return when the frame filter process is complete, but there were no filter registered and enabled to process. */ - EXT_LANG_BT_NO_FILTERS = 2 - }; + EXT_LANG_BT_NO_FILTERS = 2 +}; /* Flags to pass to apply_extlang_frame_filter. */ enum frame_filter_flag - { - /* Set this flag if frame level is to be printed. */ - PRINT_LEVEL = 1 << 0, +{ + /* Set this flag if frame level is to be printed. */ + PRINT_LEVEL = 1 << 0, - /* Set this flag if frame information is to be printed. */ - PRINT_FRAME_INFO = 1 << 1, + /* Set this flag if frame information is to be printed. */ + PRINT_FRAME_INFO = 1 << 1, - /* Set this flag if frame arguments are to be printed. */ - PRINT_ARGS = 1 << 2, + /* Set this flag if frame arguments are to be printed. */ + PRINT_ARGS = 1 << 2, - /* Set this flag if frame locals are to be printed. */ - PRINT_LOCALS = 1 << 3, + /* Set this flag if frame locals are to be printed. */ + PRINT_LOCALS = 1 << 3, - /* Set this flag if a "More frames" message is to be printed. */ - PRINT_MORE_FRAMES = 1 << 4, + /* Set this flag if a "More frames" message is to be printed. */ + PRINT_MORE_FRAMES = 1 << 4, - /* Set this flag if elided frames should not be printed. */ - PRINT_HIDE = 1 << 5, - }; + /* Set this flag if elided frames should not be printed. */ + PRINT_HIDE = 1 << 5, +}; DEF_ENUM_FLAGS_TYPE (enum frame_filter_flag, frame_filter_flags); @@ -111,40 +113,40 @@ DEF_ENUM_FLAGS_TYPE (enum frame_filter_flag, frame_filter_flags); can occur in different cases of frame filter instantiation. */ enum ext_lang_frame_args - { - /* Print no values for arguments when invoked from the MI. */ - NO_VALUES = PRINT_NO_VALUES, +{ + /* Print no values for arguments when invoked from the MI. */ + NO_VALUES = PRINT_NO_VALUES, - MI_PRINT_ALL_VALUES = PRINT_ALL_VALUES, + MI_PRINT_ALL_VALUES = PRINT_ALL_VALUES, - /* Print only simple values (what MI defines as "simple") for + /* Print only simple values (what MI defines as "simple") for arguments when invoked from the MI. */ - MI_PRINT_SIMPLE_VALUES = PRINT_SIMPLE_VALUES, + MI_PRINT_SIMPLE_VALUES = PRINT_SIMPLE_VALUES, - /* Print only scalar values for arguments when invoked from the CLI. */ - CLI_SCALAR_VALUES, + /* Print only scalar values for arguments when invoked from the CLI. */ + CLI_SCALAR_VALUES, - /* Print all values for arguments when invoked from the CLI. */ - CLI_ALL_VALUES, + /* Print all values for arguments when invoked from the CLI. */ + CLI_ALL_VALUES, - /* Only indicate the presence of arguments when invoked from the CLI. */ - CLI_PRESENCE - }; + /* Only indicate the presence of arguments when invoked from the CLI. */ + CLI_PRESENCE +}; /* The possible results of extension_language_ops.breakpoint_cond_says_stop. */ enum ext_lang_bp_stop - { - /* No "stop" condition is set. */ - EXT_LANG_BP_STOP_UNSET, +{ + /* No "stop" condition is set. */ + EXT_LANG_BP_STOP_UNSET, - /* A "stop" condition is set, and it says "don't stop". */ - EXT_LANG_BP_STOP_NO, + /* A "stop" condition is set, and it says "don't stop". */ + EXT_LANG_BP_STOP_NO, - /* A "stop" condition is set, and it says "stop". */ - EXT_LANG_BP_STOP_YES - }; + /* A "stop" condition is set, and it says "stop". */ + EXT_LANG_BP_STOP_YES +}; /* Table of type printers associated with the global typedef table. */ @@ -184,8 +186,9 @@ enum ext_lang_rc struct xmethod_worker { xmethod_worker (const extension_language_defn *extlang) - : m_extlang (extlang) - {} + : m_extlang (extlang) + { + } virtual ~xmethod_worker () = default; @@ -210,16 +213,17 @@ private: /* Return the types of the arguments the method takes. The types are returned in TYPE_ARGS, one per argument. */ - virtual enum ext_lang_rc do_get_arg_types - (std::vector<type *> *type_args) = 0; + virtual enum ext_lang_rc do_get_arg_types (std::vector<type *> *type_args) + = 0; /* Fetch the type of the result of the method implemented by this worker. OBJECT and ARGS are the same as for the invoked method. The result type is stored in *RESULT_TYPE. */ - virtual enum ext_lang_rc do_get_result_type - (struct value *obj, gdb::array_view<value *> args, - struct type **result_type_ptr) = 0; + virtual enum ext_lang_rc do_get_result_type (struct value *obj, + gdb::array_view<value *> args, + struct type **result_type_ptr) + = 0; /* The language the xmethod worker is implemented in. */ @@ -231,47 +235,48 @@ typedef std::unique_ptr<xmethod_worker> xmethod_worker_up; /* The interface for gdb's own extension(/scripting) language. */ extern const struct extension_language_defn extension_language_gdb; -extern const struct extension_language_defn *get_ext_lang_defn - (enum extension_language lang); +extern const struct extension_language_defn * +get_ext_lang_defn (enum extension_language lang); -extern const struct extension_language_defn *get_ext_lang_of_file - (const char *file); +extern const struct extension_language_defn * +get_ext_lang_of_file (const char *file); extern int ext_lang_present_p (const struct extension_language_defn *); extern int ext_lang_initialized_p (const struct extension_language_defn *); -extern void throw_ext_lang_unsupported - (const struct extension_language_defn *); +extern void +throw_ext_lang_unsupported (const struct extension_language_defn *); /* Accessors for "public" attributes of the extension language definition. */ -extern enum extension_language ext_lang_kind - (const struct extension_language_defn *); +extern enum extension_language +ext_lang_kind (const struct extension_language_defn *); extern const char *ext_lang_name (const struct extension_language_defn *); -extern const char *ext_lang_capitalized_name - (const struct extension_language_defn *); +extern const char * +ext_lang_capitalized_name (const struct extension_language_defn *); extern const char *ext_lang_suffix (const struct extension_language_defn *); -extern const char *ext_lang_auto_load_suffix - (const struct extension_language_defn *); +extern const char * +ext_lang_auto_load_suffix (const struct extension_language_defn *); -extern script_sourcer_func *ext_lang_script_sourcer - (const struct extension_language_defn *); +extern script_sourcer_func * +ext_lang_script_sourcer (const struct extension_language_defn *); -extern objfile_script_sourcer_func *ext_lang_objfile_script_sourcer - (const struct extension_language_defn *); +extern objfile_script_sourcer_func * +ext_lang_objfile_script_sourcer (const struct extension_language_defn *); -extern objfile_script_executor_func *ext_lang_objfile_script_executor - (const struct extension_language_defn *); +extern objfile_script_executor_func * +ext_lang_objfile_script_executor (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 *); +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. */ @@ -285,20 +290,23 @@ extern void auto_load_ext_lang_scripts_for_objfile (struct objfile *); extern char *apply_ext_lang_type_printers (struct ext_lang_type_printers *, struct type *); -extern int apply_ext_lang_val_pretty_printer - (struct value *value, struct ui_file *stream, int recurse, - const struct value_print_options *options, - const struct language_defn *language); +extern int +apply_ext_lang_val_pretty_printer (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 - (frame_info_ptr frame, frame_filter_flags flags, - enum ext_lang_frame_args args_type, - struct ui_out *out, int frame_low, int frame_high); +extern enum ext_lang_bt_status +apply_ext_lang_frame_filter (frame_info_ptr frame, frame_filter_flags flags, + enum ext_lang_frame_args args_type, + struct ui_out *out, int frame_low, + int frame_high); extern void preserve_ext_lang_values (struct objfile *, htab_t copied_types); -extern const struct extension_language_defn *get_breakpoint_cond_ext_lang - (struct breakpoint *b, enum extension_language skip_lang); +extern const struct extension_language_defn * +get_breakpoint_cond_ext_lang (struct breakpoint *b, + enum extension_language skip_lang); extern bool breakpoint_ext_lang_cond_says_stop (struct breakpoint *); @@ -307,25 +315,25 @@ extern bool breakpoint_ext_lang_cond_says_stop (struct breakpoint *); methods with name METHOD_NAME. All matches found are appended to the WORKERS vector. */ -extern void get_matching_xmethod_workers - (struct type *type, const char *method_name, - std::vector<xmethod_worker_up> *workers); +extern void +get_matching_xmethod_workers (struct type *type, const char *method_name, + std::vector<xmethod_worker_up> *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<std::string> ext_lang_colorize - (const std::string &filename, const std::string &contents); +extern gdb::optional<std::string> +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<std::string> ext_lang_colorize_disasm - (const std::string &content, gdbarch *gdbarch); +extern gdb::optional<std::string> +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 @@ -334,11 +342,13 @@ extern gdb::optional<std::string> ext_lang_colorize_disasm All arguments are forwarded to extension_language_ops::print_insn, see that function for a full description. */ -extern gdb::optional<int> ext_lang_print_insn - (struct gdbarch *gdbarch, CORE_ADDR address, struct disassemble_info *info); +extern gdb::optional<int> ext_lang_print_insn (struct gdbarch *gdbarch, + CORE_ADDR address, + struct disassemble_info *info); #if GDB_SELF_TEST -namespace selftests { +namespace selftests +{ extern void (*hook_set_active_ext_lang) (); } #endif |