GDB (xrefs)
Macros | Functions | Variables
/tmp/gdb-8.1/gdb/extension.c File Reference
#include "defs.h"
#include <signal.h>
#include "target.h"
#include "auto-load.h"
#include "breakpoint.h"
#include "event-top.h"
#include "extension.h"
#include "extension-priv.h"
#include "observer.h"
#include "cli/cli-script.h"
#include "python/python.h"
#include "guile/guile.h"

Go to the source code of this file.

Macros

#define ALL_EXTENSION_LANGUAGES(i, extlang)
 
#define ALL_ENABLED_EXTENSION_LANGUAGES(i, extlang)
 

Functions

const struct extension_language_defnget_ext_lang_defn (enum extension_language lang)
 
static int has_extension (const char *file, const char *extension)
 
const struct extension_language_defnget_ext_lang_of_file (const char *file)
 
int ext_lang_present_p (const struct extension_language_defn *extlang)
 
int ext_lang_initialized_p (const struct extension_language_defn *extlang)
 
void throw_ext_lang_unsupported (const struct extension_language_defn *extlang)
 
static void source_gdb_script (const struct extension_language_defn *extlang, FILE *stream, const char *file)
 
static void source_gdb_objfile_script (const struct extension_language_defn *extlang, struct objfile *objfile, FILE *stream, const char *file)
 
const char * ext_lang_name (const struct extension_language_defn *extlang)
 
const char * ext_lang_capitalized_name (const struct extension_language_defn *extlang)
 
const char * ext_lang_suffix (const struct extension_language_defn *extlang)
 
const char * ext_lang_auto_load_suffix (const struct extension_language_defn *extlang)
 
script_sourcer_funcext_lang_script_sourcer (const struct extension_language_defn *extlang)
 
objfile_script_sourcer_funcext_lang_objfile_script_sourcer (const struct extension_language_defn *extlang)
 
objfile_script_executor_funcext_lang_objfile_script_executor (const struct extension_language_defn *extlang)
 
int ext_lang_auto_load_enabled (const struct extension_language_defn *extlang)
 
void finish_ext_lang_initialization (void)
 
void eval_ext_lang_from_control_command (struct command_line *cmd)
 
void auto_load_ext_lang_scripts_for_objfile (struct objfile *objfile)
 
struct ext_lang_type_printersstart_ext_lang_type_printers (void)
 
char * apply_ext_lang_type_printers (struct ext_lang_type_printers *printers, struct type *type)
 
void free_ext_lang_type_printers (struct ext_lang_type_printers *printers)
 
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)
 
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)
 
void preserve_ext_lang_values (struct objfile *objfile, htab_t copied_types)
 
const struct extension_language_defnget_breakpoint_cond_ext_lang (struct breakpoint *b, enum extension_language skip_lang)
 
int breakpoint_ext_lang_cond_says_stop (struct breakpoint *b)
 
const struct extension_language_defnget_active_ext_lang (void)
 
static void install_sigint_handler (const struct signal_handler *handler_state)
 
static void install_gdb_sigint_handler (struct signal_handler *previous)
 
struct active_ext_lang_stateset_active_ext_lang (const struct extension_language_defn *now_active)
 
void restore_active_ext_lang (struct active_ext_lang_state *previous)
 
void set_quit_flag (void)
 
int check_quit_flag (void)
 
struct xmethod_workernew_xmethod_worker (const struct extension_language_defn *extlang, void *data)
 
struct xmethod_workerclone_xmethod_worker (struct xmethod_worker *worker)
 
 VEC (xmethod_worker_ptr)
 
struct type ** get_xmethod_arg_types (struct xmethod_worker *worker, int *nargs)
 
struct typeget_xmethod_result_type (struct xmethod_worker *worker, struct value *object, struct value **args, int nargs)
 
struct valueinvoke_xmethod (struct xmethod_worker *worker, struct value *obj, struct value **args, int nargs)
 
void free_xmethod_worker (struct xmethod_worker *worker)
 
void free_xmethod_worker_vec (void *vec)
 
static void ext_lang_before_prompt (const char *current_gdb_prompt)
 
void _initialize_extension (void)
 

Variables

static script_sourcer_func source_gdb_script
 
static objfile_script_sourcer_func source_gdb_objfile_script
 
static const struct extension_language_script_ops extension_language_gdb_script_ops
 
const struct extension_language_defn extension_language_gdb
 
static const struct extension_language_defn *const extension_languages []
 
static int quit_flag
 
static const struct extension_language_defnactive_ext_lang = &extension_language_gdb
 

Macro Definition Documentation

◆ ALL_ENABLED_EXTENSION_LANGUAGES

#define ALL_ENABLED_EXTENSION_LANGUAGES (   i,
  extlang 
)

◆ ALL_EXTENSION_LANGUAGES

#define ALL_EXTENSION_LANGUAGES (   i,
  extlang 
)
Value:
for (/*int*/ i = 0, extlang = extension_languages[0]; \
extlang != NULL; \
extlang = extension_languages[++i])
static const struct extension_language_defn *const extension_languages[]
Definition: extension.c:102

Definition at line 40 of file extension.c.

Referenced by eval_ext_lang_from_control_command(), get_ext_lang_defn(), and get_ext_lang_of_file().

Function Documentation

◆ _initialize_extension()

void _initialize_extension ( void  )

Definition at line 1065 of file extension.c.

References ext_lang_before_prompt(), and observer_attach_before_prompt().

◆ apply_ext_lang_frame_filter()

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 
)

◆ apply_ext_lang_type_printers()

char* apply_ext_lang_type_printers ( struct ext_lang_type_printers printers,
struct type type 
)

◆ apply_ext_lang_val_pretty_printer()

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 
)

◆ auto_load_ext_lang_scripts_for_objfile()

void auto_load_ext_lang_scripts_for_objfile ( struct objfile objfile)

◆ breakpoint_ext_lang_cond_says_stop()

int breakpoint_ext_lang_cond_says_stop ( struct breakpoint b)

◆ check_quit_flag()

int check_quit_flag ( void  )

◆ clone_xmethod_worker()

struct xmethod_worker* clone_xmethod_worker ( struct xmethod_worker worker)

◆ eval_ext_lang_from_control_command()

void eval_ext_lang_from_control_command ( struct command_line cmd)

◆ ext_lang_auto_load_enabled()

int ext_lang_auto_load_enabled ( const struct extension_language_defn extlang)

◆ ext_lang_auto_load_suffix()

const char* ext_lang_auto_load_suffix ( const struct extension_language_defn extlang)

◆ ext_lang_before_prompt()

static void ext_lang_before_prompt ( const char *  current_gdb_prompt)
static

◆ ext_lang_capitalized_name()

const char* ext_lang_capitalized_name ( const struct extension_language_defn extlang)

◆ ext_lang_initialized_p()

int ext_lang_initialized_p ( const struct extension_language_defn extlang)

◆ ext_lang_name()

const char* ext_lang_name ( const struct extension_language_defn extlang)

◆ ext_lang_objfile_script_executor()

objfile_script_executor_func* ext_lang_objfile_script_executor ( const struct extension_language_defn extlang)

◆ ext_lang_objfile_script_sourcer()

objfile_script_sourcer_func* ext_lang_objfile_script_sourcer ( const struct extension_language_defn extlang)

◆ ext_lang_present_p()

int ext_lang_present_p ( const struct extension_language_defn extlang)

Definition at line 170 of file extension.c.

References extension_language_defn::script_ops.

Referenced by source_script_from_stream().

◆ ext_lang_script_sourcer()

script_sourcer_func* ext_lang_script_sourcer ( const struct extension_language_defn extlang)

◆ ext_lang_suffix()

const char* ext_lang_suffix ( const struct extension_language_defn extlang)

Definition at line 243 of file extension.c.

References extension_language_defn::suffix.

◆ finish_ext_lang_initialization()

void finish_ext_lang_initialization ( void  )

◆ free_ext_lang_type_printers()

void free_ext_lang_type_printers ( struct ext_lang_type_printers printers)

◆ free_xmethod_worker()

void free_xmethod_worker ( struct xmethod_worker worker)

◆ free_xmethod_worker_vec()

void free_xmethod_worker_vec ( void *  vec)

Definition at line 1021 of file extension.c.

References free_xmethod_worker(), VEC(), VEC_free, and VEC_iterate.

Referenced by find_overload_match(), and VEC().

◆ get_active_ext_lang()

const struct extension_language_defn* get_active_ext_lang ( void  )

Definition at line 687 of file extension.c.

References active_ext_lang.

◆ get_breakpoint_cond_ext_lang()

const struct extension_language_defn* get_breakpoint_cond_ext_lang ( struct breakpoint b,
enum extension_language  skip_lang 
)

◆ get_ext_lang_defn()

const struct extension_language_defn* get_ext_lang_defn ( enum extension_language  lang)

◆ get_ext_lang_of_file()

const struct extension_language_defn* get_ext_lang_of_file ( const char *  file)

◆ get_xmethod_arg_types()

struct type** get_xmethod_arg_types ( struct xmethod_worker worker,
int *  nargs 
)

◆ get_xmethod_result_type()

struct type* get_xmethod_result_type ( struct xmethod_worker worker,
struct value object,
struct value **  args,
int  nargs 
)

◆ has_extension()

static int has_extension ( const char *  file,
const char *  extension 
)
static

Definition at line 138 of file extension.c.

Referenced by get_ext_lang_of_file().

◆ install_gdb_sigint_handler()

static void install_gdb_sigint_handler ( struct signal_handler previous)
static

Definition at line 708 of file extension.c.

References handle_sigint(), signal_handler::handler, and signal_handler::handler_saved.

Referenced by set_active_ext_lang().

◆ install_sigint_handler()

static void install_sigint_handler ( const struct signal_handler handler_state)
static

Definition at line 695 of file extension.c.

References gdb_assert, signal_handler::handler, and signal_handler::handler_saved.

Referenced by restore_active_ext_lang().

◆ invoke_xmethod()

struct value* invoke_xmethod ( struct xmethod_worker worker,
struct value obj,
struct value **  args,
int  nargs 
)

◆ new_xmethod_worker()

struct xmethod_worker* new_xmethod_worker ( const struct extension_language_defn extlang,
void *  data 
)

◆ preserve_ext_lang_values()

void preserve_ext_lang_values ( struct objfile objfile,
htab_t  copied_types 
)

◆ restore_active_ext_lang()

void restore_active_ext_lang ( struct active_ext_lang_state previous)

◆ set_active_ext_lang()

struct active_ext_lang_state* set_active_ext_lang ( const struct extension_language_defn now_active)

◆ set_quit_flag()

void set_quit_flag ( void  )

◆ source_gdb_objfile_script()

static void source_gdb_objfile_script ( const struct extension_language_defn extlang,
struct objfile objfile,
FILE *  stream,
const char *  file 
)
static

Definition at line 215 of file extension.c.

References script_from_file().

◆ source_gdb_script()

static void source_gdb_script ( const struct extension_language_defn extlang,
FILE *  stream,
const char *  file 
)
static

Definition at line 206 of file extension.c.

References script_from_file().

◆ start_ext_lang_type_printers()

struct ext_lang_type_printers* start_ext_lang_type_printers ( void  )

◆ throw_ext_lang_unsupported()

void throw_ext_lang_unsupported ( const struct extension_language_defn extlang)

◆ VEC()

VEC ( xmethod_worker_ptr  )

Variable Documentation

◆ active_ext_lang

const struct extension_language_defn* active_ext_lang = &extension_language_gdb
static

◆ extension_language_gdb

const struct extension_language_defn extension_language_gdb
Initial value:
=
{
"gdb",
"GDB",
".gdb",
"-gdb.gdb",
NULL
}
static const struct extension_language_script_ops extension_language_gdb_script_ops
Definition: extension.c:61

Definition at line 69 of file extension.c.

Referenced by auto_load_ext_lang_scripts_for_objfile(), get_ext_lang_defn(), and info_auto_load_gdb_scripts().

◆ extension_language_gdb_script_ops

const struct extension_language_script_ops extension_language_gdb_script_ops
static
Initial value:
=
{
NULL,
}
static objfile_script_sourcer_func source_gdb_objfile_script
Definition: extension.c:55
static script_sourcer_func source_gdb_script
Definition: extension.c:54
int auto_load_gdb_scripts_enabled(const struct extension_language_defn *extlang)
Definition: auto-load.c:97

Definition at line 61 of file extension.c.

◆ extension_languages

const struct extension_language_defn* const extension_languages[]
static
Initial value:
=
{
NULL
}
const struct extension_language_defn extension_language_python
Definition: python.c:68
const struct extension_language_defn extension_language_guile

Definition at line 102 of file extension.c.

◆ quit_flag

int quit_flag
static

Definition at line 674 of file extension.c.

Referenced by check_quit_flag(), putpkt_binary(), and set_quit_flag().

◆ source_gdb_objfile_script

objfile_script_sourcer_func source_gdb_objfile_script
static

Definition at line 55 of file extension.c.

◆ source_gdb_script

script_sourcer_func source_gdb_script
static

Definition at line 54 of file extension.c.