GDB (xrefs)

Classes | Typedefs | Functions | Variables
/tmp/gdb-8.1/gdb/solib-aix.c File Reference
`#include "defs.h"`
`#include "solib-aix.h"`
`#include "solist.h"`
`#include "inferior.h"`
`#include "gdb_bfd.h"`
`#include "gdbcore.h"`
`#include "objfiles.h"`
`#include "symtab.h"`
`#include "xcoffread.h"`
`#include "observer.h"`
`#include "gdbcmd.h"`
`#include "xml-support.h"`

Go to the source code of this file.

## Classes
struct | lm_info_aix
struct | solib_aix_inferior_data

## Typedefs
typedef lm_info_aix * | lm_info_aix_p

## Functions
| DEF_VEC_P (lm_info_aix_p)
static struct solib_aix_inferior_data * | get_solib_aix_inferior_data (struct inferior *inf)
static void | library_list_start_library (struct gdb_xml_parser *parser, const struct gdb_xml_element *element, void *user_data, VEC(gdb_xml_value_s) *attributes)
static void | library_list_start_list (struct gdb_xml_parser *parser, const struct gdb_xml_element *element, void *user_data, VEC(gdb_xml_value_s) *attributes)
static void | solib_aix_free_library_list (void *p)
static | VEC (lm_info_aix_p)
static CORE_ADDR | solib_aix_bss_data_overlap (bfd *abfd)
static void | solib_aix_relocate_section_addresses (struct so_list *so, struct target_section *sec)
static void | solib_aix_free_so (struct so_list *so)
static void | solib_aix_clear_solib (void)
static struct section_offsets * | solib_aix_get_section_offsets (struct objfile *objfile, lm_info_aix *info)
static void | solib_aix_solib_create_inferior_hook (int from_tty)
static struct so_list * | solib_aix_current_sos (void)
static int | solib_aix_open_symbol_file_object (int from_tty)
static int | solib_aix_in_dynsym_resolve_code (CORE_ADDR pc)
static gdb_bfd_ref_ptr | solib_aix_bfd_open (char *pathname)
static struct obj_section * | data_obj_section_from_objfile (struct objfile *objfile)
CORE_ADDR | solib_aix_get_toc_value (CORE_ADDR pc)
static void | solib_aix_normal_stop_observer (struct bpstats *unused_1, int unused_2)
static void | show_solib_aix_debug (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
void | _initialize_solib_aix (void)

## Variables
static int | solib_aix_debug
static const struct inferior_data * | solib_aix_inferior_data_handle
static const struct gdb_xml_attribute | library_attributes []
static const struct gdb_xml_element | library_list_children []
static const struct gdb_xml_attribute | library_list_attributes []
static const struct gdb_xml_element | library_list_elements []
struct target_so_ops | solib_aix_so_ops

## Typedef Documentation

## ◆ lm_info_aix_p

typedef lm_info_aix* lm_info_aix_p

Definition at line 61 of file solib-aix.c.

## Function Documentation

## ◆ _initialize_solib_aix()

void _initialize_solib_aix | ( | void |  | ) |

Definition at line 774 of file solib-aix.c.

References _, add_setshow_boolean_cmd(), target_so_ops::bfd_open, class_maintenance, target_so_ops::clear_solib, target_so_ops::current_sos, target_so_ops::free_so, target_so_ops::in_dynsym_resolve_code, observer_attach_normal_stop(), target_so_ops::open_symbol_file_object, target_so_ops::relocate_section_addresses, setdebuglist, show_solib_aix_debug(), showdebuglist, solib_aix_bfd_open(), solib_aix_clear_solib(), solib_aix_current_sos(), solib_aix_debug, solib_aix_free_so(), solib_aix_in_dynsym_resolve_code(), solib_aix_inferior_data_handle, solib_aix_normal_stop_observer(), solib_aix_open_symbol_file_object(), solib_aix_relocate_section_addresses(), solib_aix_so_ops, solib_aix_solib_create_inferior_hook(), and target_so_ops::solib_create_inferior_hook.

## ◆ data_obj_section_from_objfile()

static struct obj_section* data_obj_section_from_objfile | ( | struct objfile * | objfile | ) |
| static

Definition at line 703 of file solib-aix.c.

References ALL_OBJFILE_OSECTIONS, objfile::obfd, and obj_section::the_bfd_section.

Referenced by solib_aix_get_toc_value().

## ◆ DEF_VEC_P()

DEF_VEC_P | ( | lm_info_aix_p |  | ) |

## ◆ get_solib_aix_inferior_data()

static struct solib_aix_inferior_data* get_solib_aix_inferior_data | ( | struct inferior * | inf | ) |
| static

Definition at line 86 of file solib-aix.c.

References solib_aix_inferior_data_handle, and XCNEW.

Referenced by solib_aix_normal_stop_observer().

## ◆ library_list_start_library()

static void library_list_start_library | ( | struct gdb_xml_parser * | parser,
|  | const struct gdb_xml_element * | element,
|  | void * | user_data,
|  | VEC(gdb_xml_value_s) * | attributes
| ) |  |
| static

Definition at line 134 of file solib-aix.c.

References lm_info_aix::data_addr, lm_info_aix::data_size, lm_info_aix::filename, lm_info_aix::member_name, lm_info_aix::text_addr, lm_info_aix::text_size, gdb_xml_value::value, VEC(), VEC_safe_push, and xml_find_attribute().

## ◆ library_list_start_list()

static void library_list_start_list | ( | struct gdb_xml_parser * | parser,
|  | const struct gdb_xml_element * | element,
|  | void * | user_data,
|  | VEC(gdb_xml_value_s) * | attributes
| ) |  |
| static

Definition at line 168 of file solib-aix.c.

References _, gdb_xml_error(), gdb_xml_value::value, version, and xml_find_attribute().

## ◆ show_solib_aix_debug()

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

Definition at line 764 of file solib-aix.c.

References _, and fprintf_filtered().

Referenced by _initialize_solib_aix().

## ◆ solib_aix_bfd_open()

static gdb_bfd_ref_ptr solib_aix_bfd_open | ( | char * | pathname | ) |
| static

Definition at line 603 of file solib-aix.c.

References _, gdb_bfd_openr_next_archived_file(), gdb::ref_ptr< T, Policy >::get(), perror_with_name(), solib_bfd_fopen(), solib_bfd_open(), solib_find(), string, string_printf(), warning(), xfree(), and xstrprintf().

Referenced by _initialize_solib_aix().

## ◆ solib_aix_bss_data_overlap()

static CORE_ADDR solib_aix_bss_data_overlap | ( | bfd * | abfd | ) |
| static

Definition at line 330 of file solib-aix.c.

Referenced by solib_aix_get_section_offsets(), and solib_aix_relocate_section_addresses().

## ◆ solib_aix_clear_solib()

static void solib_aix_clear_solib | ( | void |  | ) |
| static

Definition at line 429 of file solib-aix.c.

Referenced by _initialize_solib_aix().

## ◆ solib_aix_current_sos()

static struct so_list* solib_aix_current_sos | ( | void |  | ) |
| static

Definition at line 528 of file solib-aix.c.

References current_inferior(), lm_info_aix::filename, so_list::lm_info, lm_info_aix::member_name, so_list::next, so_list::so_name, SO_NAME_MAX_PATH_SIZE, so_list::so_original_name, string, string_printf(), VEC(), VEC_iterate, and XCNEW.

Referenced by _initialize_solib_aix().

## ◆ solib_aix_free_library_list()

static void solib_aix_free_library_list | ( | void * | p | ) |
| static

Definition at line 183 of file solib-aix.c.

References fprintf_unfiltered(), gdb_stdlog, solib_aix_debug, VEC(), VEC_free, and VEC_iterate.

Referenced by solib_aix_normal_stop_observer(), and VEC().

## ◆ solib_aix_free_so()

static void solib_aix_free_so | ( | struct so_list * | so | ) |
| static

Definition at line 415 of file solib-aix.c.

References fprintf_unfiltered(), gdb_stdlog, if(), so_list::lm_info, so_list::so_name, and solib_aix_debug.

Referenced by _initialize_solib_aix().

## ◆ solib_aix_get_section_offsets()

static struct section_offsets* solib_aix_get_section_offsets | ( | struct objfile * | objfile,
|  | lm_info_aix * | info
| ) |  |
| static

Definition at line 441 of file solib-aix.c.

References lm_info_aix::data_addr, objfile::num_sections, objfile::obfd, section_offsets::offsets, objfile::sect_index_bss, objfile::sect_index_data, objfile::sect_index_text, objfile::sections, solib_aix_bss_data_overlap(), lm_info_aix::text_addr, obj_section::the_bfd_section, and XCNEWVEC.

Referenced by solib_aix_solib_create_inferior_hook().

## ◆ solib_aix_get_toc_value()

CORE_ADDR solib_aix_get_toc_value | ( | CORE_ADDR | pc | ) |

Definition at line 719 of file solib-aix.c.

References _, core_addr_to_string(), data_obj_section_from_objfile(), error(), find_pc_section(), fprintf_unfiltered(), gdb_stdlog, obj_section_addr, obj_section::objfile, objfile_name(), solib_aix_debug, and xcoff_get_toc_offset().

Referenced by rs6000_push_dummy_call().

## ◆ solib_aix_in_dynsym_resolve_code()

static int solib_aix_in_dynsym_resolve_code | ( | CORE_ADDR | pc | ) |
| static

Definition at line 595 of file solib-aix.c.

Referenced by _initialize_solib_aix().

## ◆ solib_aix_normal_stop_observer()

static void solib_aix_normal_stop_observer | ( | struct bpstats * | unused_1,
|  | int | unused_2
| ) |  |
| static

Definition at line 750 of file solib-aix.c.

References current_inferior(), get_solib_aix_inferior_data(), and solib_aix_free_library_list().

Referenced by _initialize_solib_aix().

## ◆ solib_aix_open_symbol_file_object()

static int solib_aix_open_symbol_file_object | ( | int | from_tty | ) |
| static

Definition at line 587 of file solib-aix.c.

Referenced by _initialize_solib_aix().

## ◆ solib_aix_relocate_section_addresses()

static void solib_aix_relocate_section_addresses | ( | struct so_list * | so,
|  | struct target_section * | sec
| ) |  |
| static

Definition at line 362 of file solib-aix.c.

References target_section::addr, lm_info_aix::data_addr, lm_info_aix::data_size, target_section::endaddr, if(), so_list::lm_info, solib_aix_bss_data_overlap(), lm_info_aix::text_addr, lm_info_aix::text_size, and target_section::the_bfd_section.

Referenced by _initialize_solib_aix().

## ◆ solib_aix_solib_create_inferior_hook()

static void solib_aix_solib_create_inferior_hook | ( | int | from_tty | ) |
| static

Definition at line 493 of file solib-aix.c.

References _, current_inferior(), do_cleanups(), exec_info, make_cleanup(), objfile_relocate(), section_offsets::offsets, solib_aix_get_section_offsets(), symfile_objfile, VEC(), VEC_index, VEC_length, warning(), and xfree().

Referenced by _initialize_solib_aix().

## ◆ VEC()

static VEC | ( | lm_info_aix_p |  | ) |
| static

Definition at line 239 of file solib-aix.c.

References _, discard_cleanups(), do_cleanups(), gdb_xml_parse_quick(), library_list_elements, make_cleanup(), and solib_aix_free_library_list().

Referenced by library_list_start_library(), solib_aix_current_sos(), solib_aix_free_library_list(), and solib_aix_solib_create_inferior_hook().

## Variable Documentation

## ◆ library_attributes

const struct gdb_xml_attribute library_attributes[]
| static

Initial value:
=
{
{ "name", GDB_XML_AF_NONE, NULL, NULL },
{ "member", GDB_XML_AF_OPTIONAL, NULL, NULL },
{ "text_addr", GDB_XML_AF_NONE, gdb_xml_parse_attr_ulongest, NULL },
{ "text_size", GDB_XML_AF_NONE, gdb_xml_parse_attr_ulongest, NULL },
{ "data_addr", GDB_XML_AF_NONE, gdb_xml_parse_attr_ulongest, NULL },
{ "data_size", GDB_XML_AF_NONE, gdb_xml_parse_attr_ulongest, NULL },
{ NULL, GDB_XML_AF_NONE, NULL, NULL }
}
GDB_XML_AF_NONE
Definition: xml-support.h:106
GDB_XML_AF_OPTIONAL
Definition: xml-support.h:107
gdb_xml_parse_attr_ulongest
gdb_xml_attribute_handler gdb_xml_parse_attr_ulongest

Definition at line 202 of file solib-aix.c.

## ◆ library_list_attributes

const struct gdb_xml_attribute library_list_attributes[]
| static

Initial value:
=
{
{ "version", GDB_XML_AF_NONE, NULL, NULL },
{ NULL, GDB_XML_AF_NONE, NULL, NULL }
}
GDB_XML_AF_NONE
Definition: xml-support.h:106

Definition at line 221 of file solib-aix.c.

## ◆ library_list_children

const struct gdb_xml_element library_list_children[]
| static

Initial value:
=
{
{ "library", library_attributes, NULL,
GDB_XML_EF_REPEATABLE | GDB_XML_EF_OPTIONAL,
library_list_start_library, NULL},
{ NULL, NULL, NULL, GDB_XML_EF_NONE, NULL, NULL }
}
library_attributes
static const struct gdb_xml_attribute library_attributes[]
Definition: solib-aix.c:202
library_list_start_library
static void library_list_start_library(struct gdb_xml_parser *parser, const struct gdb_xml_element *element, void *user_data, VEC(gdb_xml_value_s) *attributes)
Definition: solib-aix.c:134
GDB_XML_EF_NONE
Definition: xml-support.h:127
GDB_XML_EF_REPEATABLE
Definition: xml-support.h:129
GDB_XML_EF_OPTIONAL
Definition: xml-support.h:128

Definition at line 213 of file solib-aix.c.

## ◆ library_list_elements

const struct gdb_xml_element library_list_elements[]
| static

Initial value:
=
{
{ "library-list-aix", library_list_attributes, library_list_children,
GDB_XML_EF_NONE, library_list_start_list, NULL },
{ NULL, NULL, NULL, GDB_XML_EF_NONE, NULL, NULL }
}
library_list_start_list
static void library_list_start_list(struct gdb_xml_parser *parser, const struct gdb_xml_element *element, void *user_data, VEC(gdb_xml_value_s) *attributes)
Definition: solib-aix.c:168
library_list_attributes
static const struct gdb_xml_attribute library_list_attributes[]
Definition: solib-aix.c:221
GDB_XML_EF_NONE
Definition: xml-support.h:127
library_list_children
static const struct gdb_xml_element library_list_children[]
Definition: solib-aix.c:213

Definition at line 227 of file solib-aix.c.

Referenced by VEC().

## ◆ solib_aix_debug

int solib_aix_debug
| static

Definition at line 32 of file solib-aix.c.

Referenced by _initialize_solib_aix(), solib_aix_free_library_list(), solib_aix_free_so(), and solib_aix_get_toc_value().

## ◆ solib_aix_inferior_data_handle

const struct inferior_data* solib_aix_inferior_data_handle
| static

Definition at line 80 of file solib-aix.c.

Referenced by _initialize_solib_aix(), and get_solib_aix_inferior_data().

## ◆ solib_aix_so_ops

struct target_so_ops solib_aix_so_ops

Definition at line 771 of file solib-aix.c.

Referenced by _initialize_solib_aix(), and rs6000_aix_init_osabi().