91 return htab_hash_pointer (st_smob->
symtab);
132 if (st_smob->
symtab != NULL)
157 scm_puts (
">", port);
159 scm_remember_upto_here_1 (
self);
210 st_smob_for_lookup.
symtab = symtab;
213 return (*slot)->containing_scm;
252 return st_smob->
symtab != NULL;
260 const char *func_name)
404 scm_puts (
">", port);
406 scm_remember_upto_here_1 (
self);
422 memset (&s_smob->
sal, 0, sizeof (s_smob->
sal));
458 s_smob = (
sal_smob *) SCM_SMOB_DATA (s_scm);
471 SCM_ASSERT_TYPE (
stscm_is_sal (
self),
self, arg_pos, func_name,
502 return st_smob->
symtab != NULL;
570 return scm_from_int (sal->
line);
619 Return #t if the object is a <gdb:symtab> object." },
623 Return #t if the symtab still exists in GDB.\n\
624 Symtabs are deleted when the corresponding objfile is freed." },
628 Return the symtab's source file name." },
632 Return the symtab's full source file name." },
636 Return the symtab's objfile." },
640 Return the symtab's global block." },
644 Return the symtab's static block." },
648 Return #t if the object is a <gdb:sal> (symtab-and-line) object." },
652 Return #t if the symtab for the sal still exists in GDB.\n\
653 Symtabs are deleted when the corresponding objfile is freed." },
657 Return the sal's symtab." },
661 Return the sal's line number, or #f if there is none." },
665 Return the sal's address." },
669 Return the last address specified by the sal, or #f if there is none." },
673 Return the sal corresponding to the address, or #f if there isn't one.\n\
675 Arguments: address" },
static int stscm_eq_symtab_smob(const void *ap, const void *bp)
const char * symtab_to_filename_for_display(struct symtab *symtab)
static hashval_t stscm_hash_symtab_smob(const void *p)
static SCM scm_new_smob(scm_t_bits tc, scm_t_bits data)
static int stscm_sal_is_valid(sal_smob *s_smob)
static void stscm_del_objfile_symtabs(struct objfile *objfile, void *datum)
static int stscm_is_valid(symtab_smob *st_smob)
void gdbscm_define_functions(const scheme_function *, int is_public)
static scm_t_bits symtab_smob_tag
SCM gdbscm_scm_from_ulongest(ULONGEST l)
static const char sal_smob_name[]
void init_sal(struct symtab_and_line *sal)
static htab_t stscm_objfile_symtab_map(struct symtab *symtab)
static int stscm_is_sal(SCM scm)
static int stscm_mark_symtab_invalid(void **slot, void *info)
static SCM gdbscm_sal_last(SCM self)
static SCM gdbscm_symtab_p(SCM scm)
scm_t_bits gdbscm_make_smob_type(const char *name, size_t size)
#define BLOCKVECTOR_BLOCK(blocklist, n)
static SCM stscm_get_sal_arg(SCM self, int arg_pos, const char *func_name)
SCM stscm_scm_from_symtab(struct symtab *symtab)
const char * symtab_to_fullname(struct symtab *s)
#define SYMTAB_BLOCKVECTOR(symtab)
static SCM gdbscm_symtab_static_block(SCM self)
void gdbscm_init_gsmob(gdb_smob *base)
SCM stscm_scm_from_sal(struct symtab_and_line sal)
static const struct objfile_data * stscm_objfile_data_key
#define CATCH(EXCEPTION, MASK)
static SCM stscm_make_symtab_smob(void)
SCM bkscm_scm_from_block(const struct block *block, struct objfile *objfile)
void gdbscm_initialize_symtabs(void)
static struct parser_state * pstate
struct symtab_and_line find_pc_line(CORE_ADDR pc, int notcurrent)
SCM gdbscm_scm_from_c_string(const char *string)
#define SYMTAB_OBJFILE(symtab)
#define gdbscm_is_false(scm)
static SCM gdbscm_symtab_valid_p(SCM self)
static int stscm_print_sal_smob(SCM self, SCM port, scm_print_state *pstate)
static SCM gdbscm_symtab_objfile(SCM self)
static SCM gdbscm_sal_valid_p(SCM self)
static SCM gdbscm_sal_line(SCM self)
void gdbscm_clear_eqable_gsmob_ptr_slot(htab_t htab, eqable_gdb_smob *base)
static const char symtab_smob_name[]
void gdbscm_printf(SCM port, const char *format,...) ATTRIBUTE_PRINTF(2
htab_t gdbscm_create_eqable_gsmob_ptr_map(htab_hash hash_fn, htab_eq eq_fn)
void gdbscm_init_eqable_gsmob(eqable_gdb_smob *base, SCM containing_scm)
static SCM gdbscm_sal_p(SCM scm)
static symtab_smob * stscm_get_symtab_smob_arg_unsafe(SCM self, int arg_pos, const char *func_name)
void gdbscm_invalid_object_error(const char *subr, int arg_pos, SCM bad_value, const char *error) ATTRIBUTE_NORETURN
static SCM gdbscm_symtab_filename(SCM self)
static int stscm_is_symtab(SCM scm)
static symtab_smob * stscm_get_valid_symtab_smob_arg_unsafe(SCM self, int arg_pos, const char *func_name)
static SCM gdbscm_find_pc_line(SCM pc_scm)
eqable_gdb_smob ** gdbscm_find_eqable_gsmob_ptr_slot(htab_t htab, eqable_gdb_smob *base)
static sal_smob * stscm_get_sal_smob_arg(SCM self, int arg_pos, const char *func_name)
static SCM stscm_make_sal_smob(void)
static sal_smob * stscm_get_valid_sal_smob_arg(SCM self, int arg_pos, const char *func_name)
static SCM gdbscm_sal_symtab(SCM self)
void gdbscm_parse_function_args(const char *function_name, int beginning_arg_pos, const SCM *keywords, const char *format,...)
struct symtab_and_line sal
void gdbscm_fill_eqable_gsmob_ptr_slot(eqable_gdb_smob **slot, eqable_gdb_smob *base)
static SCM gdbscm_symtab_global_block(SCM self)
unsigned long long ULONGEST
#define GDBSCM_HANDLE_GDB_EXCEPTION(exception)
static scm_t_bits sal_smob_tag
static SCM gdbscm_symtab_fullname(SCM self)
SCM ofscm_scm_from_objfile(struct objfile *objfile)
static SCM gdbscm_sal_pc(SCM self)
static SCM stscm_get_symtab_arg_unsafe(SCM self, int arg_pos, const char *func_name)
static int stscm_print_symtab_smob(SCM self, SCM port, scm_print_state *pstate)
static size_t stscm_free_symtab_smob(SCM self)