GDB (xrefs)

Functions | Variables
scm-gsmob.c File Reference
`#include "defs.h"`
`#include "hashtab.h"`
`#include "objfiles.h"`
`#include "guile-internal.h"`

Go to the source code of this file.

## Functions
static hashval_t | hash_scm_t_bits (const void *item)
static int | eq_scm_t_bits (const void *item_lhs, const void *item_rhs)
static void | register_gsmob (scm_t_bits gsmob_code)
static int | gdbscm_is_gsmob (SCM scm)
scm_t_bits | gdbscm_make_smob_type (const char *name, size_t size)
void | gdbscm_init_gsmob (gdb_smob *base)
void | gdbscm_init_chained_gsmob (chained_gdb_smob *base)
void | gdbscm_init_eqable_gsmob (eqable_gdb_smob *base, SCM containing_scm)
static SCM | gsscm_get_gsmob_arg_unsafe (SCM self, int arg_pos, const char *func_name)
static SCM | gdbscm_gsmob_kind (SCM self)
void | gdbscm_add_objfile_ref (struct objfile *objfile, const struct objfile_data *data_key, chained_gdb_smob *g_smob)
void | gdbscm_remove_objfile_ref (struct objfile *objfile, const struct objfile_data *data_key, chained_gdb_smob *g_smob)
htab_t | gdbscm_create_eqable_gsmob_ptr_map (htab_hash hash_fn, htab_eq eq_fn)
eqable_gdb_smob ** | gdbscm_find_eqable_gsmob_ptr_slot (htab_t htab, eqable_gdb_smob *base)
void | gdbscm_fill_eqable_gsmob_ptr_slot (eqable_gdb_smob **slot, eqable_gdb_smob *base)
void | gdbscm_clear_eqable_gsmob_ptr_slot (htab_t htab, eqable_gdb_smob *base)
void | gdbscm_initialize_smobs (void)

## Variables
static htab_t | registered_gsmobs
static const scheme_function | gsmob_functions []

## Function Documentation

## ◆ eq_scm_t_bits()

static int eq_scm_t_bits | ( | const void * | item_lhs,
|  | const void * | item_rhs
| ) |  |
| static

Definition at line 67 of file scm-gsmob.c.

Referenced by gdbscm_initialize_smobs().

## ◆ gdbscm_add_objfile_ref()

void gdbscm_add_objfile_ref | ( | struct objfile * | objfile,
|  | const struct objfile_data * | data_key,
|  | chained_gdb_smob * | g_smob
| ) |  |

Definition at line 189 of file scm-gsmob.c.

References _chained_gdb_smob::next, and _chained_gdb_smob::prev.

## ◆ gdbscm_clear_eqable_gsmob_ptr_slot()

void gdbscm_clear_eqable_gsmob_ptr_slot | ( | htab_t | htab,
|  | eqable_gdb_smob * | base
| ) |  |

Definition at line 263 of file scm-gsmob.c.

References frame_info::base, and gdb_assert.

Referenced by bkscm_free_block_smob(), frscm_free_frame_smob(), stscm_free_symtab_smob(), syscm_free_symbol_smob(), and tyscm_free_type_smob().

## ◆ gdbscm_create_eqable_gsmob_ptr_map()

htab_t gdbscm_create_eqable_gsmob_ptr_map | ( | htab_hash | hash_fn,
|  | htab_eq | eq_fn
| ) |  |

Definition at line 225 of file scm-gsmob.c.

References xcalloc(), and xfree().

Referenced by bkscm_objfile_block_map(), frscm_inferior_frame_map(), gdbscm_initialize_types(), stscm_objfile_symtab_map(), syscm_get_symbol_map(), syscm_init_arch_symbols(), and tyscm_type_map().

## ◆ gdbscm_fill_eqable_gsmob_ptr_slot()

void gdbscm_fill_eqable_gsmob_ptr_slot | ( | eqable_gdb_smob ** | slot,
|  | eqable_gdb_smob * | base
| ) |  |

Definition at line 249 of file scm-gsmob.c.

References frame_info::base.

Referenced by bkscm_scm_from_block(), stscm_scm_from_symtab(), syscm_scm_from_symbol(), tyscm_copy_type_recursive(), and tyscm_scm_from_type().

## ◆ gdbscm_find_eqable_gsmob_ptr_slot()

eqable_gdb_smob** gdbscm_find_eqable_gsmob_ptr_slot | ( | htab_t | htab,
|  | eqable_gdb_smob * | base
| ) |  |

Definition at line 238 of file scm-gsmob.c.

References frame_info::base.

Referenced by bkscm_scm_from_block(), frscm_scm_from_frame(), stscm_scm_from_symtab(), syscm_scm_from_symbol(), tyscm_copy_type_recursive(), and tyscm_scm_from_type().

## ◆ gdbscm_gsmob_kind()

static SCM gdbscm_gsmob_kind | ( | SCM | self | ) |
| static

Definition at line 162 of file scm-gsmob.c.

References FUNC_NAME, gsscm_get_gsmob_arg_unsafe(), name, xfree(), and xstrprintf().

## ◆ gdbscm_init_chained_gsmob()

void gdbscm_init_chained_gsmob | ( | chained_gdb_smob * | base | ) |

Definition at line 123 of file scm-gsmob.c.

References frame_info::base, and gdbscm_init_gsmob().

## ◆ gdbscm_init_eqable_gsmob()

void gdbscm_init_eqable_gsmob | ( | eqable_gdb_smob * | base,
|  | SCM | containing_scm
| ) |  |

Definition at line 135 of file scm-gsmob.c.

References frame_info::base, and gdbscm_init_gsmob().

Referenced by bkscm_make_block_smob(), frscm_make_frame_smob(), stscm_make_symtab_smob(), syscm_make_symbol_smob(), and tyscm_make_type_smob().

## ◆ gdbscm_init_gsmob()

void gdbscm_init_gsmob | ( | gdb_smob * | base | ) |

Definition at line 113 of file scm-gsmob.c.

References frame_info::base.

Referenced by arscm_make_arch_smob(), bkscm_make_block_syms_progress_smob(), bpscm_make_breakpoint_smob(), cmdscm_make_command_smob(), gdbscm_init_chained_gsmob(), gdbscm_init_eqable_gsmob(), gdbscm_make_exception(), gdbscm_make_pretty_printer(), gdbscm_make_pretty_printer_worker(), itscm_make_iterator_smob(), lsscm_make_lazy_string_smob(), ofscm_make_objfile_smob(), pascm_make_param_smob(), psscm_make_pspace_smob(), stscm_make_sal_smob(), tyscm_make_field_smob(), and vlscm_make_value_smob().

## ◆ gdbscm_initialize_smobs()

void gdbscm_initialize_smobs | ( | void |  | ) |

Definition at line 286 of file scm-gsmob.c.

References eq_scm_t_bits(), gdbscm_define_functions(), gsmob_functions, hash_scm_t_bits(), registered_gsmobs, xcalloc(), and xfree().

## ◆ gdbscm_is_gsmob()

static int gdbscm_is_gsmob | ( | SCM | scm | ) |
| static

Definition at line 88 of file scm-gsmob.c.

References registered_gsmobs.

Referenced by gsscm_get_gsmob_arg_unsafe().

## ◆ gdbscm_make_smob_type()

scm_t_bits gdbscm_make_smob_type | ( | const char * | name,
|  | size_t | size
| ) |  |

Definition at line 102 of file scm-gsmob.c.

References name, register_gsmob(), scm_make_smob_type, and size.

Referenced by gdbscm_initialize_arches(), gdbscm_initialize_blocks(), gdbscm_initialize_breakpoints(), gdbscm_initialize_commands(), gdbscm_initialize_exceptions(), gdbscm_initialize_frames(), gdbscm_initialize_iterators(), gdbscm_initialize_lazy_strings(), gdbscm_initialize_objfiles(), gdbscm_initialize_parameters(), gdbscm_initialize_pretty_printers(), gdbscm_initialize_pspaces(), gdbscm_initialize_symbols(), gdbscm_initialize_symtabs(), gdbscm_initialize_types(), and gdbscm_initialize_values().

## ◆ gdbscm_remove_objfile_ref()

void gdbscm_remove_objfile_ref | ( | struct objfile * | objfile,
|  | const struct objfile_data * | data_key,
|  | chained_gdb_smob * | g_smob
| ) |  |

Definition at line 209 of file scm-gsmob.c.

References _chained_gdb_smob::next, and _chained_gdb_smob::prev.

## ◆ gsscm_get_gsmob_arg_unsafe()

static SCM gsscm_get_gsmob_arg_unsafe | ( | SCM | self,
|  | int | arg_pos,
|  | const char * | func_name
| ) |  |
| static

Definition at line 148 of file scm-gsmob.c.

References _, and gdbscm_is_gsmob().

Referenced by gdbscm_gsmob_kind().

## ◆ hash_scm_t_bits()

static hashval_t hash_scm_t_bits | ( | const void * | item | ) |
| static

Definition at line 57 of file scm-gsmob.c.

Referenced by gdbscm_initialize_smobs().

## ◆ register_gsmob()

static void register_gsmob | ( | scm_t_bits | gsmob_code | ) |
| static

Definition at line 76 of file scm-gsmob.c.

References gdb_assert, and registered_gsmobs.

Referenced by gdbscm_make_smob_type().

## Variable Documentation

## ◆ gsmob_functions

const scheme_function gsmob_functions[]
| static

Initial value:
=
{
{ "gdb-object-kind", 1, 0, 0, as_a_scm_t_subr (gdbscm_gsmob_kind),
"\
Return the kind of the GDB object, e.g., <gdb:breakpoint>, as a symbol." },
END_FUNCTIONS
}
as_a_scm_t_subr
static scm_t_subr as_a_scm_t_subr(SCM(*func)(void))
Definition: guile-internal.h:66
END_FUNCTIONS
#define END_FUNCTIONS
Definition: guile-internal.h:103
gdbscm_gsmob_kind
static SCM gdbscm_gsmob_kind(SCM self)
Definition: scm-gsmob.c:162

Definition at line 273 of file scm-gsmob.c.

Referenced by gdbscm_initialize_smobs().

## ◆ registered_gsmobs

htab_t registered_gsmobs
| static

Definition at line 52 of file scm-gsmob.c.

Referenced by gdbscm_initialize_smobs(), gdbscm_is_gsmob(), and register_gsmob().