40 #define ALL_EXTENSION_LANGUAGES(i, extlang) \ 41 for ( i = 0, extlang = extension_languages[0]; \ 43 extlang = extension_languages[++i]) 48 #define ALL_ENABLED_EXTENSION_LANGUAGES(i, extlang) \ 49 for ( i = 0, extlang = extension_languages[0]; \ 51 extlang = extension_languages[++i]) \ 52 if (extlang->ops != NULL) 140 int file_len = strlen (file);
141 int extension_len = strlen (extension);
143 return (file_len > extension_len
144 && strcmp (&file[file_len - extension_len], extension) == 0);
181 if (extlang->
ops != NULL)
196 error (
_(
"Scripting in the \"%s\" language is not supported" 197 " in this copy of GDB."),
207 FILE *stream,
const char *file)
217 FILE *stream,
const char *file)
229 return extlang->
name;
362 if (extlang->
ops != NULL
501 struct ui_file *stream,
int recurse,
516 embedded_offset, address,
517 stream, recurse, val,
559 int frame_low,
int frame_high)
572 frame_low, frame_high);
699 signal (SIGINT, handler_state->
handler);
714 if (previous->
handler != handle_sigint_for_compare)
871 worker->
value = NULL;
928 error (
_(
"Error while looking for matching xmethod workers " 952 struct type **type_array = NULL;
961 error (
_(
"Error while looking for arg types of a xmethod worker " 973 struct value *
object,
struct value **args,
int nargs)
976 struct type *result_type;
986 error (
_(
"Error while fetching result type of an xmethod worker " 999 struct value **args,
int nargs)
int check_quit_flag(void)
#define VEC_merge(T, V1, V2)
static const struct extension_language_defn *const extension_languages[]
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
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)
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
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 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)
#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
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)
mach_port_t mach_port_t name mach_port_t mach_port_t name kern_return_t int status
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
enum ext_lang_rc(* apply_val_pretty_printer)(const struct extension_language_defn *, struct type *type, LONGEST embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, struct value *val, const struct value_print_options *options, const struct language_defn *language)
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)
void quit_serial_event_clear(void)
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)
void _initialize_extension(void)
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 quit_serial_event_set(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)
const struct extension_language_defn extension_language_guile
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)
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, const struct language_defn *language)