GDB (xrefs)

Classes | Macros | Functions | Variables
/tmp/gdb-8.1/gdb/fbsd-tdep.c File Reference
`#include "defs.h"`
`#include "auxv.h"`
`#include "gdbcore.h"`
`#include "inferior.h"`
`#include "regcache.h"`
`#include "regset.h"`
`#include "gdbthread.h"`
`#include "xml-syscall.h"`
`#include "elf-bfd.h"`
`#include "fbsd-tdep.h"`

Go to the source code of this file.

## Classes
struct | fbsd_gdbarch_data
struct | fbsd_collect_regset_section_cb_data
struct | fbsd_corefile_thread_data

## Macros
#define | LWPINFO_OFFSET 0x4
#define | LWPINFO_PL_FLAGS 0x8
#define | LWPINFO64_PL_SIGINFO 0x30
#define | LWPINFO32_PL_SIGINFO 0x2c
#define | PL_FLAG_SI 0x20 /* siginfo is valid */
#define | SIZE64_SIGINFO_T 80
#define | SIZE32_SIGINFO_T 64
#define | _TAGNAME(tag) #tag
#define | TAGNAME(tag) _TAGNAME(AT_##tag)
#define | TAG(tag, text, kind) case AT_FREEBSD_##tag: name = TAGNAME(tag); description = text; format = kind; break

## Functions
static void * | init_fbsd_gdbarch_data (struct gdbarch *gdbarch)
static struct fbsd_gdbarch_data * | get_fbsd_gdbarch_data (struct gdbarch *gdbarch)
static const char * | fbsd_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid)
static const char * | fbsd_core_thread_name (struct gdbarch *gdbarch, struct thread_info *thr)
static LONGEST | fbsd_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
static int | find_signalled_thread (struct thread_info *info, void *data)
static void | fbsd_collect_regset_section_cb (const char *sect_name, int size, const struct regset *regset, const char *human_name, void *cb_data)
static char * | fbsd_collect_thread_registers (const struct regcache *regcache, ptid_t ptid, bfd *obfd, char *note_data, int *note_size, enum gdb_signal stop_signal)
static void | fbsd_corefile_thread (struct thread_info *info, struct fbsd_corefile_thread_data *args)
static char * | fbsd_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size)
static void | fbsd_print_auxv_entry (struct gdbarch *gdbarch, struct ui_file *file, CORE_ADDR type, CORE_ADDR val)
static struct type * | fbsd_get_siginfo_type (struct gdbarch *gdbarch)
static LONGEST | fbsd_get_syscall_number (struct gdbarch *gdbarch, ptid_t ptid)
void | fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
void | _initialize_fbsd_tdep (void)

## Variables
static struct gdbarch_data * | fbsd_gdbarch_data_handle

## Macro Definition Documentation

## ◆ _TAGNAME

#define _TAGNAME | ( |  | tag | ) | #tag

## ◆ LWPINFO32_PL_SIGINFO

#define LWPINFO32_PL_SIGINFO 0x2c

Definition at line 46 of file fbsd-tdep.c.

Referenced by fbsd_core_xfer_siginfo().

## ◆ LWPINFO64_PL_SIGINFO

#define LWPINFO64_PL_SIGINFO 0x30

Definition at line 45 of file fbsd-tdep.c.

Referenced by fbsd_core_xfer_siginfo().

## ◆ LWPINFO_OFFSET

#define LWPINFO_OFFSET 0x4

Definition at line 41 of file fbsd-tdep.c.

Referenced by fbsd_core_xfer_siginfo().

## ◆ LWPINFO_PL_FLAGS

#define LWPINFO_PL_FLAGS 0x8

Definition at line 44 of file fbsd-tdep.c.

Referenced by fbsd_core_xfer_siginfo().

## ◆ PL_FLAG_SI

#define PL_FLAG_SI 0x20 /* siginfo is valid */

Definition at line 49 of file fbsd-tdep.c.

Referenced by fbsd_core_xfer_siginfo().

## ◆ SIZE32_SIGINFO_T

#define SIZE32_SIGINFO_T 64

Definition at line 53 of file fbsd-tdep.c.

Referenced by fbsd_core_xfer_siginfo().

## ◆ SIZE64_SIGINFO_T

#define SIZE64_SIGINFO_T 80

Definition at line 52 of file fbsd-tdep.c.

Referenced by fbsd_core_xfer_siginfo().

## ◆ TAG

#define TAG | ( |  | tag,
|  |  | text,
|  |  | kind
| ) |  | case AT_FREEBSD_##tag: name = TAGNAME(tag); description = text; format = kind; break

Referenced by fbsd_print_auxv_entry().

## ◆ TAGNAME

#define TAGNAME | ( |  | tag | ) | _TAGNAME(AT_##tag)

## Function Documentation

## ◆ _initialize_fbsd_tdep()

void _initialize_fbsd_tdep | ( | void |  | ) |

Definition at line 531 of file fbsd-tdep.c.

References fbsd_gdbarch_data_handle, gdbarch_data_register_post_init(), and init_fbsd_gdbarch_data().

## ◆ fbsd_collect_regset_section_cb()

static void fbsd_collect_regset_section_cb | ( | const char * | sect_name,
|  | int | size,
|  | const struct regset * | regset,
|  | const char * | human_name,
|  | void * | cb_data
| ) |  |
| static

Definition at line 209 of file fbsd-tdep.c.

References fbsd_collect_regset_section_cb_data::abort_iteration, regset::collect_regset, gdb_assert, gdb_signal_to_host(), fbsd_collect_regset_section_cb_data::lwp, fbsd_collect_regset_section_cb_data::note_data, fbsd_collect_regset_section_cb_data::note_size, fbsd_collect_regset_section_cb_data::obfd, fbsd_collect_regset_section_cb_data::regcache, size, fbsd_collect_regset_section_cb_data::stop_signal, xfree(), and xmalloc().

Referenced by fbsd_collect_thread_registers().

## ◆ fbsd_collect_thread_registers()

static char* fbsd_collect_thread_registers | ( | const struct regcache * | regcache,
|  | ptid_t | ptid,
|  | bfd * | obfd,
|  | char * | note_data,
|  | int * | note_size,
|  | enum gdb_signal | stop_signal
| ) |  |
| static

Definition at line 244 of file fbsd-tdep.c.

References fbsd_collect_regset_section_cb_data::abort_iteration, regcache::arch(), fbsd_collect_regset_section_cb(), gdbarch_iterate_over_regset_sections(), fbsd_collect_regset_section_cb_data::lwp, fbsd_collect_regset_section_cb_data::note_data, fbsd_collect_regset_section_cb_data::note_size, fbsd_collect_regset_section_cb_data::obfd, ptid_get_lwp(), fbsd_collect_regset_section_cb_data::regcache, and fbsd_collect_regset_section_cb_data::stop_signal.

Referenced by fbsd_corefile_thread().

## ◆ fbsd_core_pid_to_str()

static const char* fbsd_core_pid_to_str | ( | struct gdbarch * | gdbarch,
|  | ptid_t | ptid
| ) |  |
| static

Definition at line 78 of file fbsd-tdep.c.

References normal_pid_to_str(), ptid_get_lwp(), and xsnprintf().

Referenced by fbsd_init_abi().

## ◆ fbsd_core_thread_name()

static const char* fbsd_core_thread_name | ( | struct gdbarch * | gdbarch,
|  | struct thread_info * | thr
| ) |  |
| static

Definition at line 95 of file fbsd-tdep.c.

References thread_section_name::c_str(), core_bfd, thread_info::ptid, ptid_get_lwp(), and size.

Referenced by fbsd_init_abi().

## ◆ fbsd_core_xfer_siginfo()

static LONGEST fbsd_core_xfer_siginfo | ( | struct gdbarch * | gdbarch,
|  | gdb_byte * | readbuf,
|  | ULONGEST | offset,
|  | ULONGEST | len
| ) |  |
| static

Definition at line 141 of file fbsd-tdep.c.

References thread_section_name::c_str(), core_bfd, extract_signed_integer(), gdbarch_byte_order(), gdbarch_long_bit(), inferior_ptid, LWPINFO32_PL_SIGINFO, LWPINFO64_PL_SIGINFO, LWPINFO_OFFSET, LWPINFO_PL_FLAGS, offset, PL_FLAG_SI, SIZE32_SIGINFO_T, and SIZE64_SIGINFO_T.

Referenced by fbsd_init_abi().

## ◆ fbsd_corefile_thread()

static void fbsd_corefile_thread | ( | struct thread_info * | info,
|  | struct fbsd_corefile_thread_data * | args
| ) |  |
| static

Definition at line 279 of file fbsd-tdep.c.

References fbsd_collect_thread_registers(), fbsd_corefile_thread_data::gdbarch, get_thread_arch_regcache(), fbsd_corefile_thread_data::note_data, fbsd_corefile_thread_data::note_size, fbsd_corefile_thread_data::obfd, thread_info::ptid, regcache::regcache(), fbsd_corefile_thread_data::stop_signal, and target_fetch_registers().

Referenced by fbsd_make_corefile_notes().

## ◆ fbsd_get_siginfo_type()

static struct type* fbsd_get_siginfo_type | ( | struct gdbarch * | gdbarch | ) |
| static

Definition at line 408 of file fbsd-tdep.c.

References append_composite_type_field(), arch_composite_type(), arch_integer_type(), arch_type(), gdbarch_int_bit(), gdbarch_long_bit(), get_fbsd_gdbarch_data(), init_vector_type(), lookup_pointer_type(), fbsd_gdbarch_data::siginfo_type, TARGET_CHAR_BIT, type, TYPE_CODE_STRUCT, TYPE_CODE_TYPEDEF, TYPE_CODE_UNION, TYPE_LENGTH, TYPE_NAME, TYPE_TARGET_STUB, and TYPE_TARGET_TYPE.

Referenced by fbsd_init_abi().

## ◆ fbsd_get_syscall_number()

static LONGEST fbsd_get_syscall_number | ( | struct gdbarch * | gdbarch,
|  | ptid_t | ptid
| ) |  |
| static

Definition at line 500 of file fbsd-tdep.c.

References _, and internal_error().

Referenced by fbsd_init_abi().

## ◆ fbsd_init_abi()

void fbsd_init_abi | ( | struct gdbarch_info | info,
|  | struct gdbarch * | gdbarch
| ) |  |

Definition at line 516 of file fbsd-tdep.c.

References fbsd_core_pid_to_str(), fbsd_core_thread_name(), fbsd_core_xfer_siginfo(), fbsd_get_siginfo_type(), fbsd_get_syscall_number(), fbsd_make_corefile_notes(), fbsd_print_auxv_entry(), set_gdbarch_core_pid_to_str(), set_gdbarch_core_thread_name(), set_gdbarch_core_xfer_siginfo(), set_gdbarch_get_siginfo_type(), set_gdbarch_get_syscall_number(), set_gdbarch_make_corefile_notes(), set_gdbarch_print_auxv_entry(), and set_xml_syscall_file_name().

Referenced by aarch64_fbsd_init_abi(), amd64fbsd_init_abi(), arm_fbsd_init_abi(), i386fbsd4_init_abi(), mips_fbsd_init_abi(), ppcfbsd_init_abi(), and sparc64fbsd_init_abi().

## ◆ fbsd_make_corefile_notes()

static char* fbsd_make_corefile_notes | ( | struct gdbarch * | gdbarch,
|  | bfd * | obfd,
|  | int * | note_size
| ) |  |
| static

Definition at line 297 of file fbsd-tdep.c.

References ALL_NON_EXITED_THREADS, CATCH, END_CATCH, exception_print(), fbsd_corefile_thread(), find_signalled_thread(), gdb_assert, gdb_stderr, fbsd_corefile_thread_data::gdbarch, gdbarch_iterate_over_regset_sections_p(), get_exec_file(), get_inferior_args(), inferior_ptid, inferior_thread(), iterate_over_threads(), fbsd_corefile_thread_data::note_data, fbsd_corefile_thread_data::note_size, fbsd_corefile_thread_data::obfd, thread_info::ptid, ptid_get_pid(), RETURN_MASK_ERROR, thread_suspend_state::stop_signal, fbsd_corefile_thread_data::stop_signal, thread_info::suspend, TRY, and update_thread_list().

Referenced by fbsd_init_abi().

## ◆ fbsd_print_auxv_entry()

static void fbsd_print_auxv_entry | ( | struct gdbarch * | gdbarch,
|  | struct ui_file * | file,
|  | CORE_ADDR | type,
|  | CORE_ADDR | val
| ) |  |
| static

Definition at line 373 of file fbsd-tdep.c.

References _, AUXV_FORMAT_DEC, AUXV_FORMAT_HEX, AUXV_FORMAT_STR, default_print_auxv_entry(), fprint_auxv_entry(), name, and TAG.

Referenced by fbsd_init_abi().

## ◆ find_signalled_thread()

static int find_signalled_thread | ( | struct thread_info * | info,
|  | void * | data
| ) |  |
| static

Definition at line 184 of file fbsd-tdep.c.

References inferior_ptid, thread_info::ptid, ptid_get_pid(), thread_suspend_state::stop_signal, and thread_info::suspend.

Referenced by fbsd_make_corefile_notes().

## ◆ get_fbsd_gdbarch_data()

static struct fbsd_gdbarch_data* get_fbsd_gdbarch_data | ( | struct gdbarch * | gdbarch | ) |
| static

Definition at line 69 of file fbsd-tdep.c.

References fbsd_gdbarch_data_handle.

Referenced by fbsd_get_siginfo_type().

## ◆ init_fbsd_gdbarch_data()

static void* init_fbsd_gdbarch_data | ( | struct gdbarch * | gdbarch | ) |
| static

Definition at line 63 of file fbsd-tdep.c.

References GDBARCH_OBSTACK_ZALLOC.

Referenced by _initialize_fbsd_tdep().

## Variable Documentation

## ◆ fbsd_gdbarch_data_handle

struct gdbarch_data* fbsd_gdbarch_data_handle
| static

Definition at line 55 of file fbsd-tdep.c.

Referenced by _initialize_fbsd_tdep(), and get_fbsd_gdbarch_data().