aboutsummaryrefslogtreecommitdiff
path: root/gdb/extension.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/extension.h')
-rw-r--r--gdb/extension.h212
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