static SCM gdbscm_symbol_addr_class (SCM self) { symbol_smob *s_smob = syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME); const struct symbol *symbol = s_smob->symbol; return scm_from_int (SYMBOL_CLASS (symbol)); }
static SCM gdbscm_symbol_argument_p (SCM self) { symbol_smob *s_smob = syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME); const struct symbol *symbol = s_smob->symbol; return scm_from_bool (SYMBOL_IS_ARGUMENT (symbol)); }
static SCM gdbscm_symbol_symtab (SCM self) { symbol_smob *s_smob = syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME); const struct symbol *symbol = s_smob->symbol; return stscm_scm_from_symtab (SYMBOL_SYMTAB (symbol)); }
static SCM gdbscm_symbol_print_name (SCM self) { symbol_smob *s_smob = syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME); const struct symbol *symbol = s_smob->symbol; return gdbscm_scm_from_c_string (SYMBOL_PRINT_NAME (symbol)); }
struct symbol * syscm_get_valid_symbol_arg_unsafe (SCM self, int arg_pos, const char *func_name) { symbol_smob *s_smob = syscm_get_valid_symbol_smob_arg_unsafe (self, arg_pos, func_name); return s_smob->symbol; }
static SCM gdbscm_symbol_symtab (SCM self) { symbol_smob *s_smob = syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME); const struct symbol *symbol = s_smob->symbol; if (!SYMBOL_OBJFILE_OWNED (symbol)) return SCM_BOOL_F; return stscm_scm_from_symtab (symbol_symtab (symbol)); }
static SCM gdbscm_symbol_function_p (SCM self) { symbol_smob *s_smob = syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME); const struct symbol *symbol = s_smob->symbol; enum address_class class; class = SYMBOL_CLASS (symbol); return scm_from_bool (class == LOC_BLOCK); }
static SCM gdbscm_symbol_type (SCM self) { symbol_smob *s_smob = syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME); const struct symbol *symbol = s_smob->symbol; if (SYMBOL_TYPE (symbol) == NULL) return SCM_BOOL_F; return tyscm_scm_from_type (SYMBOL_TYPE (symbol)); }
static SCM gdbscm_symbol_constant_p (SCM self) { symbol_smob *s_smob = syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME); const struct symbol *symbol = s_smob->symbol; enum address_class theclass; theclass = SYMBOL_CLASS (symbol); return scm_from_bool (theclass == LOC_CONST || theclass == LOC_CONST_BYTES); }
static SCM gdbscm_symbol_needs_frame_p (SCM self) { symbol_smob *s_smob = syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME); struct symbol *symbol = s_smob->symbol; volatile struct gdb_exception except; int result = 0; TRY_CATCH (except, RETURN_MASK_ALL) { result = symbol_read_needs_frame (symbol); }
static SCM gdbscm_symbol_variable_p (SCM self) { symbol_smob *s_smob = syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME); const struct symbol *symbol = s_smob->symbol; enum address_class class; class = SYMBOL_CLASS (symbol); return scm_from_bool (!SYMBOL_IS_ARGUMENT (symbol) && (class == LOC_LOCAL || class == LOC_REGISTER || class == LOC_STATIC || class == LOC_COMPUTED || class == LOC_OPTIMIZED_OUT)); }
static SCM gdbscm_symbol_needs_frame_p (SCM self) { symbol_smob *s_smob = syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME); struct symbol *symbol = s_smob->symbol; int result = 0; TRY { result = symbol_read_needs_frame (symbol); } CATCH (except, RETURN_MASK_ALL) { GDBSCM_HANDLE_GDB_EXCEPTION (except); }