39 #define ALL_EXTENSION_LANGUAGES(i, extlang) \
40 for ( i = 0, extlang = extension_languages[0]; \
42 extlang = extension_languages[++i])
47 #define ALL_ENABLED_EXTENSION_LANGUAGES(i, extlang) \
48 for ( i = 0, extlang = extension_languages[0]; \
50 extlang = extension_languages[++i]) \
51 if (extlang->ops != NULL)
60 extension_language_gdb_script_ops =
139 int file_len = strlen (file);
140 int extension_len = strlen (extension);
142 return (file_len > extension_len
143 && strcmp (&file[file_len - extension_len], extension) == 0);
180 if (extlang->
ops != NULL)
195 error (
_(
"Scripting in the \"%s\" language is not supported"
196 " in this copy of GDB."),
206 FILE *stream,
const char *file)
216 FILE *stream,
const char *file)
228 return extlang->
name;
361 if (extlang->
ops != NULL
500 struct ui_file *stream,
int recurse,
501 const struct value *val,
515 embedded_offset, address,
516 stream, recurse, val,
558 int frame_low,
int frame_high)
571 frame_low, frame_high);
698 signal (SIGINT, handler_state->
handler);
713 if (previous->
handler != handle_sigint_for_compare)
870 worker->
value = NULL;
927 error (
_(
"Error while looking for matching xmethod workers "
951 struct type **type_array = NULL;
960 error (
_(
"Error while looking for arg types of a xmethod worker "
972 struct value *
object,
struct value **args,
int nargs)
975 struct type *result_type;
985 error (
_(
"Error while fetching result type of an xmethod worker "
998 struct value **args,
int nargs)
int check_quit_flag(void)
#define VEC_merge(T, V1, V2)
const char * capitalized_name
struct observer * observer_attach_before_prompt(observer_before_prompt_ftype *f)
objfile_script_sourcer_func * objfile_script_sourcer
static void install_gdb_sigint_handler(struct signal_handler *previous)
const struct extension_language_defn extension_language_gdb
enum ext_lang_rc(* apply_val_pretty_printer)(const struct extension_language_defn *, struct type *type, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, const struct value *val, const struct value_print_options *options, const struct language_defn *language)
void restore_active_ext_lang(struct active_ext_lang_state *previous)
const struct extension_language_defn * extlang
void finish_ext_lang_initialization(void)
struct ext_lang_type_printers * start_ext_lang_type_printers(void)
void(* eval_from_control_command)(const struct extension_language_defn *, struct command_line *)
struct value * invoke_xmethod(struct xmethod_worker *worker, struct value *obj, struct value **args, int nargs)
enum ext_lang_bp_stop(* breakpoint_cond_says_stop)(const struct extension_language_defn *, struct breakpoint *)
void objfile_script_executor_func(const struct extension_language_defn *, struct objfile *, const char *name, const char *script)
initialize_file_ftype _initialize_extension
static const struct extension_language_defn * active_ext_lang
const struct extension_language_defn * get_ext_lang_of_file(const char *file)
#define ALL_EXTENSION_LANGUAGES(i, extlang)
enum ext_lang_rc(* before_prompt)(const struct extension_language_defn *, const char *current_gdb_prompt)
const char * ext_lang_name(const struct extension_language_defn *extlang)
const struct extension_language_defn extension_language_python
EXPORTED_CONST struct extension_language_defn extension_language_guile
const struct extension_language_ops * ops
enum command_control_type cli_control_type
mach_port_t kern_return_t mach_port_t msgports mach_port_t kern_return_t pid_t pid mach_port_t kern_return_t mach_port_t task mach_port_t kern_return_t int flags
void auto_load_objfile_script(struct objfile *objfile, const struct extension_language_defn *language)
enum ext_lang_rc(* get_xmethod_result_type)(const struct extension_language_defn *extlang, struct xmethod_worker *worker, struct value *object, struct value **args, int nargs, struct type **result_type)
static objfile_script_sourcer_func source_gdb_objfile_script
enum ext_lang_rc(* apply_type_printers)(const struct extension_language_defn *, const struct ext_lang_type_printers *, struct type *, char **prettied_type)
#define VEC_iterate(T, V, I, P)
script_sourcer_func * script_sourcer
void free_xmethod_worker(struct xmethod_worker *worker)
void *(* clone_xmethod_worker_data)(const struct extension_language_defn *extlang, void *data)
void objfile_script_sourcer_func(const struct extension_language_defn *, struct objfile *, FILE *stream, const char *filename)
script_sourcer_func * ext_lang_script_sourcer(const struct extension_language_defn *extlang)
void initialize_file_ftype(void)
void eval_ext_lang_from_control_command(struct command_line *cmd)
static script_sourcer_func source_gdb_script
void preserve_ext_lang_values(struct objfile *objfile, htab_t copied_types)
enum ext_lang_rc(* get_matching_xmethod_workers)(const struct extension_language_defn *extlang, struct type *obj_type, const char *method_name, xmethod_worker_vec **dm_vec)
static void ext_lang_before_prompt(const char *current_gdb_prompt)
mach_port_t mach_port_t name mach_port_t mach_port_t name error_t int status
#define gdb_assert_not_reached(message)
const struct extension_language_defn * get_active_ext_lang(void)
const struct extension_language_script_ops * script_ops
enum extension_language language
int apply_ext_lang_val_pretty_printer(struct type *type, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, const struct value *val, const struct value_print_options *options, const struct language_defn *language)
struct value *(* invoke_xmethod)(const struct extension_language_defn *extlang, struct xmethod_worker *worker, struct value *object, struct value **args, int nargs)
struct type * get_xmethod_result_type(struct xmethod_worker *worker, struct value *object, struct value **args, int nargs)
void script_sourcer_func(const struct extension_language_defn *, FILE *stream, const char *filename)
void free_ext_lang_type_printers(struct ext_lang_type_printers *printers)
enum ext_lang_rc(* get_xmethod_arg_types)(const struct extension_language_defn *extlang, struct xmethod_worker *worker, int *nargs, struct type ***arg_types)
void free_xmethod_worker_vec(void *vec)
struct xmethod_worker * new_xmethod_worker(const struct extension_language_defn *extlang, void *data)
int(* initialized)(const struct extension_language_defn *)
struct signal_handler sigint_handler
const char * auto_load_suffix
void script_from_file(FILE *stream, const char *file)
int breakpoint_ext_lang_cond_says_stop(struct breakpoint *b)
void(* free_xmethod_worker_data)(const struct extension_language_defn *extlang, void *data)
struct active_ext_lang_state * set_active_ext_lang(const struct extension_language_defn *now_active)
const struct extension_language_defn * get_ext_lang_defn(enum extension_language lang)
const struct extension_language_defn * ext_lang
static int has_extension(const char *file, const char *extension)
objfile_script_executor_func * objfile_script_executor
static const struct extension_language_script_ops extension_language_gdb_script_ops
int(* check_quit_flag)(const struct extension_language_defn *)
enum command_control_type control_type
const struct extension_language_defn * get_breakpoint_cond_ext_lang(struct breakpoint *b, enum extension_language skip_lang)
void(* free_type_printers)(const struct extension_language_defn *, struct ext_lang_type_printers *)
xmethod_worker_vec * get_matching_xmethod_workers(struct type *, const char *)
enum ext_lang_bt_status(* apply_frame_filter)(const struct extension_language_defn *, struct frame_info *frame, int flags, enum ext_lang_frame_args args_type, struct ui_out *out, int frame_low, int frame_high)
const char * ext_lang_capitalized_name(const struct extension_language_defn *extlang)
void throw_ext_lang_unsupported(const struct extension_language_defn *extlang)
void(* finish_initialization)(const struct extension_language_defn *)
char * apply_ext_lang_type_printers(struct ext_lang_type_printers *printers, struct type *type)
const char * ext_lang_suffix(const struct extension_language_defn *extlang)
enum ext_lang_bt_status apply_ext_lang_frame_filter(struct frame_info *frame, int flags, enum ext_lang_frame_args args_type, struct ui_out *out, int frame_low, int frame_high)
int auto_load_gdb_scripts_enabled(const struct extension_language_defn *extlang)
const char * ext_lang_auto_load_suffix(const struct extension_language_defn *extlang)
#define ALL_ENABLED_EXTENSION_LANGUAGES(i, extlang)
int(* auto_load_enabled)(const struct extension_language_defn *)
void auto_load_ext_lang_scripts_for_objfile(struct objfile *objfile)
void handle_sigint(int sig)
struct type ** get_xmethod_arg_types(struct xmethod_worker *worker, int *nargs)
int ext_lang_auto_load_enabled(const struct extension_language_defn *extlang)
static void install_sigint_handler(const struct signal_handler *handler_state)
objfile_script_executor_func * ext_lang_objfile_script_executor(const struct extension_language_defn *extlang)
void clear_quit_flag(void)
int(* breakpoint_has_cond)(const struct extension_language_defn *, struct breakpoint *)
objfile_script_sourcer_func * ext_lang_objfile_script_sourcer(const struct extension_language_defn *extlang)
struct xmethod_worker * clone_xmethod_worker(struct xmethod_worker *worker)
void(* start_type_printers)(const struct extension_language_defn *, struct ext_lang_type_printers *)
void(* set_quit_flag)(const struct extension_language_defn *)
void(* preserve_values)(const struct extension_language_defn *, struct objfile *objfile, htab_t copied_types)
void error(const char *fmt,...)
int ext_lang_present_p(const struct extension_language_defn *extlang)
int ext_lang_initialized_p(const struct extension_language_defn *extlang)
void(* clear_quit_flag)(const struct extension_language_defn *)