GDB (xrefs)
Macros | Functions | Variables
/tmp/gdb-8.1/gdb/solib.c File Reference
#include "defs.h"
#include <sys/types.h>
#include <fcntl.h>
#include "symtab.h"
#include "bfd.h"
#include "symfile.h"
#include "objfiles.h"
#include "gdbcore.h"
#include "command.h"
#include "target.h"
#include "frame.h"
#include "gdb_regex.h"
#include "inferior.h"
#include "environ.h"
#include "language.h"
#include "gdbcmd.h"
#include "completer.h"
#include "filenames.h"
#include "exec.h"
#include "solist.h"
#include "observer.h"
#include "readline/readline.h"
#include "remote.h"
#include "solib.h"
#include "interps.h"
#include "filesystem.h"
#include "gdb_bfd.h"
#include "filestuff.h"

Go to the source code of this file.

Macros

#define DOS_BASED_FILE_SYSTEM   0
 

Functions

static void * solib_init (struct obstack *obstack)
 
static const struct target_so_opssolib_ops (struct gdbarch *gdbarch)
 
void set_solib_ops (struct gdbarch *gdbarch, const struct target_so_ops *new_ops)
 
static void show_solib_search_path (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
static char * solib_find_1 (const char *in_pathname, int *fd, int is_solib)
 
char * exec_file_find (const char *in_pathname, int *fd)
 
char * solib_find (const char *in_pathname, int *fd)
 
gdb_bfd_ref_ptr solib_bfd_fopen (char *pathname, int fd)
 
gdb_bfd_ref_ptr solib_bfd_open (char *pathname)
 
static int solib_map_sections (struct so_list *so)
 
static void clear_so (struct so_list *so)
 
void free_so (struct so_list *so)
 
struct so_listmaster_so_list (void)
 
int solib_read_symbols (struct so_list *so, symfile_add_flags flags)
 
static int solib_used (const struct so_list *const known)
 
void update_solib_list (int from_tty)
 
int libpthread_name_p (const char *name)
 
static int libpthread_solib_p (struct so_list *so)
 
void solib_add (const char *pattern, int from_tty, int readsyms)
 
static void info_sharedlibrary_command (const char *pattern, int from_tty)
 
int solib_contains_address_p (const struct so_list *const solib, CORE_ADDR address)
 
char * solib_name_from_address (struct program_space *pspace, CORE_ADDR address)
 
int solib_keep_data_in_core (CORE_ADDR vaddr, unsigned long size)
 
void clear_solib (void)
 
void solib_create_inferior_hook (int from_tty)
 
int in_solib_dynsym_resolve_code (CORE_ADDR pc)
 
static void sharedlibrary_command (const char *args, int from_tty)
 
void no_shared_libraries (const char *ignored, int from_tty)
 
void update_solib_breakpoints (void)
 
void handle_solib_event (void)
 
static void reload_shared_libraries_1 (int from_tty)
 
static void reload_shared_libraries (const char *ignored, int from_tty, struct cmd_list_element *e)
 
static void gdb_sysroot_changed (const char *ignored, int from_tty, struct cmd_list_element *e)
 
static void show_auto_solib_add (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
struct block_symbol solib_global_lookup (struct objfile *objfile, const char *name, const domain_enum domain)
 
CORE_ADDR gdb_bfd_lookup_symbol_from_symtab (bfd *abfd, int(*match_sym)(const asymbol *, const void *), const void *data)
 
static CORE_ADDR bfd_lookup_symbol_from_dyn_symtab (bfd *abfd, int(*match_sym)(const asymbol *, const void *), const void *data)
 
CORE_ADDR gdb_bfd_lookup_symbol (bfd *abfd, int(*match_sym)(const asymbol *, const void *), const void *data)
 
static void remove_user_added_objfile (struct objfile *objfile)
 
void _initialize_solib (void)
 

Variables

static struct gdbarch_datasolib_data
 
struct target_so_opscurrent_target_so_ops
 
static char * solib_search_path = NULL
 

Macro Definition Documentation

◆ DOS_BASED_FILE_SYSTEM

#define DOS_BASED_FILE_SYSTEM   0

Definition at line 111 of file solib.c.

Referenced by solib_find_1().

Function Documentation

◆ _initialize_solib()

void _initialize_solib ( void  )

◆ bfd_lookup_symbol_from_dyn_symtab()

static CORE_ADDR bfd_lookup_symbol_from_dyn_symtab ( bfd *  abfd,
int(*)(const asymbol *, const void *)  match_sym,
const void *  data 
)
static

Definition at line 1543 of file solib.c.

References do_cleanups(), make_cleanup(), xfree(), and xmalloc().

Referenced by gdb_bfd_lookup_symbol().

◆ clear_so()

static void clear_so ( struct so_list so)
static

◆ clear_solib()

void clear_solib ( void  )

◆ exec_file_find()

char* exec_file_find ( const char *  in_pathname,
int *  fd 
)

◆ free_so()

void free_so ( struct so_list so)

◆ gdb_bfd_lookup_symbol()

CORE_ADDR gdb_bfd_lookup_symbol ( bfd *  abfd,
int(*)(const asymbol *, const void *)  match_sym,
const void *  data 
)

◆ gdb_bfd_lookup_symbol_from_symtab()

CORE_ADDR gdb_bfd_lookup_symbol_from_symtab ( bfd *  abfd,
int(*)(const asymbol *, const void *)  match_sym,
const void *  data 
)

◆ gdb_sysroot_changed()

static void gdb_sysroot_changed ( const char *  ignored,
int  from_tty,
struct cmd_list_element e 
)
static

◆ handle_solib_event()

void handle_solib_event ( void  )

◆ in_solib_dynsym_resolve_code()

int in_solib_dynsym_resolve_code ( CORE_ADDR  pc)

Definition at line 1239 of file solib.c.

References target_so_ops::in_dynsym_resolve_code, solib_ops(), and target_gdbarch().

Referenced by process_event_stop_test().

◆ info_sharedlibrary_command()

static void info_sharedlibrary_command ( const char *  pattern,
int  from_tty 
)
static

◆ libpthread_name_p()

int libpthread_name_p ( const char *  name)

Definition at line 938 of file solib.c.

References name.

Referenced by has_libpthread(), libpthread_solib_p(), thread_db_new_objfile(), and try_thread_db_load_from_pdir().

◆ libpthread_solib_p()

static int libpthread_solib_p ( struct so_list so)
static

Definition at line 946 of file solib.c.

References libpthread_name_p(), and so_list::so_name.

Referenced by reload_shared_libraries_1(), and solib_add().

◆ master_so_list()

struct so_list* master_so_list ( void  )

◆ no_shared_libraries()

void no_shared_libraries ( const char *  ignored,
int  from_tty 
)

◆ reload_shared_libraries()

static void reload_shared_libraries ( const char *  ignored,
int  from_tty,
struct cmd_list_element e 
)
static

◆ reload_shared_libraries_1()

static void reload_shared_libraries_1 ( int  from_tty)
static

◆ remove_user_added_objfile()

static void remove_user_added_objfile ( struct objfile objfile)
static

Definition at line 1601 of file solib.c.

References objfile::flags, so_list::next, OBJF_USERLOADED, so_list::objfile, and so_list_head.

Referenced by _initialize_solib().

◆ set_solib_ops()

void set_solib_ops ( struct gdbarch gdbarch,
const struct target_so_ops new_ops 
)

◆ sharedlibrary_command()

static void sharedlibrary_command ( const char *  args,
int  from_tty 
)
static

Definition at line 1249 of file solib.c.

References dont_repeat(), and solib_add().

Referenced by _initialize_solib().

◆ show_auto_solib_add()

static void show_auto_solib_add ( struct ui_file file,
int  from_tty,
struct cmd_list_element c,
const char *  value 
)
static

Definition at line 1454 of file solib.c.

References _, and fprintf_filtered().

Referenced by _initialize_solib().

◆ show_solib_search_path()

static void show_solib_search_path ( struct ui_file file,
int  from_tty,
struct cmd_list_element c,
const char *  value 
)
static

Definition at line 99 of file solib.c.

References _, and fprintf_filtered().

Referenced by _initialize_solib().

◆ solib_add()

void solib_add ( const char *  pattern,
int  from_tty,
int  readsyms 
)

◆ solib_bfd_fopen()

gdb_bfd_ref_ptr solib_bfd_fopen ( char *  pathname,
int  fd 
)

◆ solib_bfd_open()

gdb_bfd_ref_ptr solib_bfd_open ( char *  pathname)

◆ solib_contains_address_p()

int solib_contains_address_p ( const struct so_list *const  solib,
CORE_ADDR  address 
)

◆ solib_create_inferior_hook()

void solib_create_inferior_hook ( int  from_tty)

◆ solib_find()

char* solib_find ( const char *  in_pathname,
int *  fd 
)

◆ solib_find_1()

static char* solib_find_1 ( const char *  in_pathname,
int *  fd,
int  is_solib 
)
static

◆ solib_global_lookup()

struct block_symbol solib_global_lookup ( struct objfile objfile,
const char *  name,
const domain_enum  domain 
)

Definition at line 1466 of file solib.c.

References target_so_ops::lookup_lib_global_symbol, name, solib_ops(), and target_gdbarch().

Referenced by lookup_global_symbol().

◆ solib_init()

static void* solib_init ( struct obstack *  obstack)
static

Definition at line 56 of file solib.c.

References current_target_so_ops, and OBSTACK_ZALLOC.

Referenced by _initialize_solib().

◆ solib_keep_data_in_core()

int solib_keep_data_in_core ( CORE_ADDR  vaddr,
unsigned long  size 
)

Definition at line 1190 of file solib.c.

References target_so_ops::keep_data_in_core, size, solib_ops(), and target_gdbarch().

Referenced by gcore_create_callback().

◆ solib_map_sections()

static int solib_map_sections ( struct so_list so)
static

◆ solib_name_from_address()

char* solib_name_from_address ( struct program_space pspace,
CORE_ADDR  address 
)

◆ solib_ops()

static const struct target_so_ops* solib_ops ( struct gdbarch gdbarch)
static

◆ solib_read_symbols()

int solib_read_symbols ( struct so_list so,
symfile_add_flags  flags 
)

◆ solib_used()

static int solib_used ( const struct so_list *const  known)
static

Definition at line 734 of file solib.c.

References so_list::next, so_list::objfile, and so_list_head.

Referenced by reload_shared_libraries_1(), and update_solib_list().

◆ update_solib_breakpoints()

void update_solib_breakpoints ( void  )

Definition at line 1275 of file solib.c.

References solib_ops(), target_gdbarch(), and target_so_ops::update_breakpoints.

Referenced by set_stop_on_solib_events().

◆ update_solib_list()

void update_solib_list ( int  from_tty)

Variable Documentation

◆ current_target_so_ops

struct target_so_ops* current_target_so_ops

Definition at line 90 of file solib.c.

Referenced by _initialize_solib_target(), and solib_init().

◆ solib_data

struct gdbarch_data* solib_data
static

Definition at line 53 of file solib.c.

Referenced by _initialize_solib(), set_solib_ops(), and solib_ops().

◆ solib_search_path

char* solib_search_path = NULL
static

Definition at line 97 of file solib.c.

Referenced by _initialize_solib(), and solib_find_1().