101 gdb_assert (htab !=
nullptr);
119 return htab_hash_pointer (st_smob->
symtab);
160 if (st_smob->
symtab != NULL)
185 scm_puts (
">", port);
187 scm_remember_upto_here_1 (self);
241 return (*slot)->containing_scm;
280 return st_smob->
symtab != NULL;
288 const char *func_name)
400 scm_puts (
">", port);
402 scm_remember_upto_here_1 (self);
454 s_smob = (
sal_smob *) SCM_SMOB_DATA (s_scm);
467 SCM_ASSERT_TYPE (
stscm_is_sal (self), self, arg_pos, func_name,
498 return st_smob->
symtab != NULL;
566 return scm_from_int (sal->
line);
594 CORE_ADDR
pc = (CORE_ADDR) pc_ull;
598 catch (
const gdb_exception &except)
613Return #t if the object is a <gdb:symtab> object." },
617Return #t if the symtab still exists in GDB.\n\
618Symtabs are deleted when the corresponding objfile is freed." },
622Return the symtab's source file name." },
626Return the symtab's full source file name." },
630Return the symtab's objfile." },
632 {
"symtab-global-block", 1, 0, 0,
635Return the symtab's global block." },
637 {
"symtab-static-block", 1, 0, 0,
640Return the symtab's static block." },
644Return #t if the object is a <gdb:sal> (symtab-and-line) object." },
648Return #t if the symtab for the sal still exists in GDB.\n\
649Symtabs are deleted when the corresponding objfile is freed." },
653Return the sal's symtab." },
657Return the sal's line number, or #f if there is none." },
661Return the sal's address." },
665Return the last address specified by the sal, or #f if there is none." },
669Return the sal corresponding to the address, or #f if there isn't one.\n\
671 Arguments: address" },
static struct parser_state * pstate
void set(unsigned key, void *datum)
void gdbscm_init_eqable_gsmob(eqable_gdb_smob *base, SCM containing_scm)
void gdbscm_parse_function_args(const char *function_name, int beginning_arg_pos, const SCM *keywords, const char *format,...)
gdbscm_gdb_exception unpack(const gdb_exception &exc)
htab_t gdbscm_create_eqable_gsmob_ptr_map(htab_hash hash_fn, htab_eq eq_fn)
void gdbscm_init_gsmob(gdb_smob *base)
void gdbscm_invalid_object_error(const char *subr, int arg_pos, SCM bad_value, const char *error) ATTRIBUTE_NORETURN
SCM ofscm_scm_from_objfile(struct objfile *objfile)
SCM bkscm_scm_from_block(const struct block *block, struct objfile *objfile)
void gdbscm_clear_eqable_gsmob_ptr_slot(htab_t htab, eqable_gdb_smob *base)
#define gdbscm_is_false(scm)
SCM gdbscm_scm_from_ulongest(ULONGEST l)
void gdbscm_printf(SCM port, const char *format,...) ATTRIBUTE_PRINTF(2
static SCM scm_new_smob(scm_t_bits tc, scm_t_bits data)
void gdbscm_define_functions(const scheme_function *, int is_public)
eqable_gdb_smob ** gdbscm_find_eqable_gsmob_ptr_slot(htab_t htab, eqable_gdb_smob *base)
#define GDBSCM_HANDLE_GDB_EXCEPTION(exception)
void gdbscm_fill_eqable_gsmob_ptr_slot(eqable_gdb_smob **slot, eqable_gdb_smob *base)
scm_t_bits gdbscm_make_smob_type(const char *name, size_t size)
static scm_t_subr as_a_scm_t_subr(SCM(*func)(void))
SCM gdbscm_scm_from_c_string(const char *string)
static symtab_smob * stscm_get_valid_symtab_smob_arg_unsafe(SCM self, int arg_pos, const char *func_name)
void gdbscm_initialize_symtabs(void)
static SCM gdbscm_sal_line(SCM self)
static const char sal_smob_name[]
static int stscm_eq_symtab_smob(const void *ap, const void *bp)
static SCM gdbscm_symtab_valid_p(SCM self)
static SCM gdbscm_symtab_global_block(SCM self)
static int stscm_print_symtab_smob(SCM self, SCM port, scm_print_state *pstate)
static sal_smob * stscm_get_valid_sal_smob_arg(SCM self, int arg_pos, const char *func_name)
static SCM gdbscm_sal_p(SCM scm)
static SCM gdbscm_sal_last(SCM self)
static SCM gdbscm_sal_pc(SCM self)
static int stscm_sal_is_valid(sal_smob *s_smob)
static const scheme_function symtab_functions[]
static const registry< objfile >::key< htab, stscm_deleter > stscm_objfile_data_key
SCM stscm_scm_from_sal(struct symtab_and_line sal)
static hashval_t stscm_hash_symtab_smob(const void *p)
static scm_t_bits sal_smob_tag
static symtab_smob * stscm_get_symtab_smob_arg_unsafe(SCM self, int arg_pos, const char *func_name)
static SCM stscm_make_sal_smob(void)
static size_t stscm_free_symtab_smob(SCM self)
static SCM gdbscm_symtab_static_block(SCM self)
static SCM stscm_get_sal_arg(SCM self, int arg_pos, const char *func_name)
static SCM stscm_get_symtab_arg_unsafe(SCM self, int arg_pos, const char *func_name)
static int stscm_is_sal(SCM scm)
static SCM gdbscm_find_pc_line(SCM pc_scm)
static SCM gdbscm_sal_valid_p(SCM self)
static htab_t stscm_objfile_symtab_map(struct symtab *symtab)
static int stscm_print_sal_smob(SCM self, SCM port, scm_print_state *pstate)
static SCM gdbscm_sal_symtab(SCM self)
static int stscm_is_valid(symtab_smob *st_smob)
static SCM gdbscm_symtab_filename(SCM self)
static const char symtab_smob_name[]
static int stscm_is_symtab(SCM scm)
SCM stscm_scm_from_symtab(struct symtab *symtab)
static scm_t_bits symtab_smob_tag
static SCM gdbscm_symtab_fullname(SCM self)
static sal_smob * stscm_get_sal_smob_arg(SCM self, int arg_pos, const char *func_name)
static SCM gdbscm_symtab_p(SCM scm)
static SCM gdbscm_symtab_objfile(SCM self)
static SCM stscm_make_symtab_smob(void)
const char * symtab_to_fullname(struct symtab *s)
const char * symtab_to_filename_for_display(struct symtab *symtab)
struct block * static_block()
struct block * global_block()
struct blockvector * blockvector()
struct objfile * objfile() const
struct symtab_and_line sal
static int stscm_mark_symtab_invalid(void **slot, void *info)
void operator()(htab_t htab)
struct compunit_symtab * compunit() const
struct symtab_and_line find_pc_line(CORE_ADDR pc, int notcurrent)