GDB (xrefs)

Classes | Functions | Variables
scm-symtab.c File Reference
`#include "defs.h"`
`#include "symtab.h"`
`#include "source.h"`
`#include "objfiles.h"`
`#include "block.h"`
`#include "guile-internal.h"`

Go to the source code of this file.

## Classes
struct | symtab_smob
struct | sal_smob

## Functions
static hashval_t | stscm_hash_symtab_smob (const void *p)
static int | stscm_eq_symtab_smob (const void *ap, const void *bp)
static htab_t | stscm_objfile_symtab_map (struct symtab *symtab)
static size_t | stscm_free_symtab_smob (SCM self)
static int | stscm_print_symtab_smob (SCM self, SCM port, scm_print_state *pstate)
static SCM | stscm_make_symtab_smob (void)
static int | stscm_is_symtab (SCM scm)
static SCM | gdbscm_symtab_p (SCM scm)
SCM | stscm_scm_from_symtab (struct symtab *symtab)
static SCM | stscm_get_symtab_arg_unsafe (SCM self, int arg_pos, const char *func_name)
static symtab_smob * | stscm_get_symtab_smob_arg_unsafe (SCM self, int arg_pos, const char *func_name)
static int | stscm_is_valid (symtab_smob *st_smob)
static symtab_smob * | stscm_get_valid_symtab_smob_arg_unsafe (SCM self, int arg_pos, const char *func_name)
static int | stscm_mark_symtab_invalid (void **slot, void *info)
static void | stscm_del_objfile_symtabs (struct objfile *objfile, void *datum)
static SCM | gdbscm_symtab_valid_p (SCM self)
static SCM | gdbscm_symtab_filename (SCM self)
static SCM | gdbscm_symtab_fullname (SCM self)
static SCM | gdbscm_symtab_objfile (SCM self)
static SCM | gdbscm_symtab_global_block (SCM self)
static SCM | gdbscm_symtab_static_block (SCM self)
static int | stscm_print_sal_smob (SCM self, SCM port, scm_print_state *pstate)
static SCM | stscm_make_sal_smob (void)
static int | stscm_is_sal (SCM scm)
static SCM | gdbscm_sal_p (SCM scm)
SCM | stscm_scm_from_sal (struct symtab_and_line sal)
static SCM | stscm_get_sal_arg (SCM self, int arg_pos, const char *func_name)
static sal_smob * | stscm_get_sal_smob_arg (SCM self, int arg_pos, const char *func_name)
static int | stscm_sal_is_valid (sal_smob *s_smob)
static sal_smob * | stscm_get_valid_sal_smob_arg (SCM self, int arg_pos, const char *func_name)
static SCM | gdbscm_sal_valid_p (SCM self)
static SCM | gdbscm_sal_pc (SCM self)
static SCM | gdbscm_sal_last (SCM self)
static SCM | gdbscm_sal_line (SCM self)
static SCM | gdbscm_sal_symtab (SCM self)
static SCM | gdbscm_find_pc_line (SCM pc_scm)
void | gdbscm_initialize_symtabs (void)

## Variables
static const char | symtab_smob_name [] = "gdb:symtab"
static const char | sal_smob_name [] = "gdb:sal"
static scm_t_bits | symtab_smob_tag
static scm_t_bits | sal_smob_tag
static const struct objfile_data * | stscm_objfile_data_key
static const scheme_function | symtab_functions []

## Function Documentation

## ◆ gdbscm_find_pc_line()

static SCM gdbscm_find_pc_line | ( | SCM | pc_scm | ) |
| static

Definition at line 588 of file scm-symtab.c.

References CATCH, END_CATCH, find_pc_line(), FUNC_NAME, GDBSCM_HANDLE_GDB_EXCEPTION, gdbscm_parse_function_args(), symtab_and_line::pc, RETURN_MASK_ALL, stscm_scm_from_sal(), and TRY.

## ◆ gdbscm_initialize_symtabs()

void gdbscm_initialize_symtabs | ( | void |  | ) |

Definition at line 680 of file scm-symtab.c.

References gdbscm_define_functions(), gdbscm_make_smob_type(), sal_smob_name, sal_smob_tag, stscm_del_objfile_symtabs(), stscm_free_symtab_smob(), stscm_objfile_data_key, stscm_print_sal_smob(), stscm_print_symtab_smob(), symtab_functions, symtab_smob_name, and symtab_smob_tag.

## ◆ gdbscm_sal_last()

static SCM gdbscm_sal_last | ( | SCM | self | ) |
| static

Definition at line 550 of file scm-symtab.c.

References symtab_and_line::end, FUNC_NAME, gdbscm_scm_from_ulongest(), sal_smob::sal, and stscm_get_valid_sal_smob_arg().

## ◆ gdbscm_sal_line()

static SCM gdbscm_sal_line | ( | SCM | self | ) |
| static

Definition at line 564 of file scm-symtab.c.

References FUNC_NAME, symtab_and_line::line, sal_smob::sal, and stscm_get_valid_sal_smob_arg().

## ◆ gdbscm_sal_p()

static SCM gdbscm_sal_p | ( | SCM | scm | ) |
| static

Definition at line 440 of file scm-symtab.c.

References stscm_is_sal().

## ◆ gdbscm_sal_pc()

static SCM gdbscm_sal_pc | ( | SCM | self | ) |
| static

Definition at line 538 of file scm-symtab.c.

References FUNC_NAME, gdbscm_scm_from_ulongest(), symtab_and_line::pc, sal_smob::sal, and stscm_get_valid_sal_smob_arg().

## ◆ gdbscm_sal_symtab()

static SCM gdbscm_sal_symtab | ( | SCM | self | ) |
| static

Definition at line 578 of file scm-symtab.c.

References FUNC_NAME, stscm_get_valid_sal_smob_arg(), and sal_smob::symtab_scm.

## ◆ gdbscm_sal_valid_p()

static SCM gdbscm_sal_valid_p | ( | SCM | self | ) |
| static

Definition at line 528 of file scm-symtab.c.

References FUNC_NAME, stscm_get_sal_smob_arg(), and stscm_sal_is_valid().

## ◆ gdbscm_symtab_filename()

static SCM gdbscm_symtab_filename | ( | SCM | self | ) |
| static

Definition at line 321 of file scm-symtab.c.

References FUNC_NAME, gdbscm_scm_from_c_string(), stscm_get_valid_symtab_smob_arg_unsafe(), symtab_smob::symtab, and symtab_to_filename_for_display().

## ◆ gdbscm_symtab_fullname()

static SCM gdbscm_symtab_fullname | ( | SCM | self | ) |
| static

Definition at line 333 of file scm-symtab.c.

References FUNC_NAME, gdbscm_scm_from_c_string(), stscm_get_valid_symtab_smob_arg_unsafe(), symtab_smob::symtab, and symtab_to_fullname().

## ◆ gdbscm_symtab_global_block()

static SCM gdbscm_symtab_global_block | ( | SCM | self | ) |
| static

Definition at line 358 of file scm-symtab.c.

References bkscm_scm_from_block(), BLOCKVECTOR_BLOCK, FUNC_NAME, GLOBAL_BLOCK, stscm_get_valid_symtab_smob_arg_unsafe(), symtab_smob::symtab, SYMTAB_BLOCKVECTOR, and SYMTAB_OBJFILE.

## ◆ gdbscm_symtab_objfile()

static SCM gdbscm_symtab_objfile | ( | SCM | self | ) |
| static

Definition at line 345 of file scm-symtab.c.

References FUNC_NAME, ofscm_scm_from_objfile(), stscm_get_valid_symtab_smob_arg_unsafe(), symtab_smob::symtab, and SYMTAB_OBJFILE.

## ◆ gdbscm_symtab_p()

static SCM gdbscm_symtab_p | ( | SCM | scm | ) |
| static

Definition at line 192 of file scm-symtab.c.

References stscm_is_symtab().

## ◆ gdbscm_symtab_static_block()

static SCM gdbscm_symtab_static_block | ( | SCM | self | ) |
| static

Definition at line 376 of file scm-symtab.c.

References bkscm_scm_from_block(), BLOCKVECTOR_BLOCK, FUNC_NAME, STATIC_BLOCK, stscm_get_valid_symtab_smob_arg_unsafe(), symtab_smob::symtab, SYMTAB_BLOCKVECTOR, and SYMTAB_OBJFILE.

## ◆ gdbscm_symtab_valid_p()

static SCM gdbscm_symtab_valid_p | ( | SCM | self | ) |
| static

Definition at line 310 of file scm-symtab.c.

References FUNC_NAME, stscm_get_symtab_smob_arg_unsafe(), and stscm_is_valid().

## ◆ stscm_del_objfile_symtabs()

static void stscm_del_objfile_symtabs | ( | struct objfile * | objfile,
|  | void * | datum
| ) |  |
| static

Definition at line 293 of file scm-symtab.c.

References stscm_mark_symtab_invalid().

Referenced by gdbscm_initialize_symtabs().

## ◆ stscm_eq_symtab_smob()

static int stscm_eq_symtab_smob | ( | const void * | ap,
|  | const void * | bp
| ) |  |
| static

Definition at line 97 of file scm-symtab.c.

References bp, and symtab_smob::symtab.

Referenced by stscm_objfile_symtab_map().

## ◆ stscm_free_symtab_smob()

static size_t stscm_free_symtab_smob | ( | SCM | self | ) |
| static

Definition at line 128 of file scm-symtab.c.

References symtab_smob::base, gdbscm_clear_eqable_gsmob_ptr_slot(), stscm_objfile_symtab_map(), and symtab_smob::symtab.

Referenced by gdbscm_initialize_symtabs().

## ◆ stscm_get_sal_arg()

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

Definition at line 469 of file scm-symtab.c.

References sal_smob_name, and stscm_is_sal().

Referenced by stscm_get_sal_smob_arg().

## ◆ stscm_get_sal_smob_arg()

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

Definition at line 481 of file scm-symtab.c.

References stscm_get_sal_arg().

Referenced by gdbscm_sal_valid_p(), and stscm_get_valid_sal_smob_arg().

## ◆ stscm_get_symtab_arg_unsafe()

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

Definition at line 227 of file scm-symtab.c.

References stscm_is_symtab(), and symtab_smob_name.

Referenced by stscm_get_symtab_smob_arg_unsafe().

## ◆ stscm_get_symtab_smob_arg_unsafe()

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

Definition at line 239 of file scm-symtab.c.

References stscm_get_symtab_arg_unsafe().

Referenced by gdbscm_symtab_valid_p(), and stscm_get_valid_symtab_smob_arg_unsafe().

## ◆ stscm_get_valid_sal_smob_arg()

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

Definition at line 509 of file scm-symtab.c.

References _, gdbscm_invalid_object_error(), stscm_get_sal_smob_arg(), and stscm_sal_is_valid().

Referenced by gdbscm_sal_last(), gdbscm_sal_line(), gdbscm_sal_pc(), and gdbscm_sal_symtab().

## ◆ stscm_get_valid_symtab_smob_arg_unsafe()

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

Definition at line 259 of file scm-symtab.c.

References _, gdbscm_invalid_object_error(), stscm_get_symtab_smob_arg_unsafe(), and stscm_is_valid().

Referenced by gdbscm_symtab_filename(), gdbscm_symtab_fullname(), gdbscm_symtab_global_block(), gdbscm_symtab_objfile(), and gdbscm_symtab_static_block().

## ◆ stscm_hash_symtab_smob()

static hashval_t stscm_hash_symtab_smob | ( | const void * | p | ) |
| static

Definition at line 87 of file scm-symtab.c.

References symtab_smob::symtab.

Referenced by stscm_objfile_symtab_map().

## ◆ stscm_is_sal()

static int stscm_is_sal | ( | SCM | scm | ) |
| static

Definition at line 432 of file scm-symtab.c.

References sal_smob_tag.

Referenced by gdbscm_sal_p(), and stscm_get_sal_arg().

## ◆ stscm_is_symtab()

static int stscm_is_symtab | ( | SCM | scm | ) |
| static

Definition at line 184 of file scm-symtab.c.

References symtab_smob_tag.

Referenced by gdbscm_symtab_p(), and stscm_get_symtab_arg_unsafe().

## ◆ stscm_is_valid()

static int stscm_is_valid | ( | symtab_smob * | st_smob | ) |
| static

Definition at line 250 of file scm-symtab.c.

References symtab_smob::symtab.

Referenced by gdbscm_symtab_valid_p(), and stscm_get_valid_symtab_smob_arg_unsafe().

## ◆ stscm_make_sal_smob()

static SCM stscm_make_sal_smob | ( | void |  | ) |
| static

Definition at line 415 of file scm-symtab.c.

References gdbscm_init_gsmob(), sal_smob::sal, sal_smob_name, sal_smob_tag, scm_new_smob(), and sal_smob::symtab_scm.

Referenced by stscm_scm_from_sal().

## ◆ stscm_make_symtab_smob()

static SCM stscm_make_symtab_smob | ( | void |  | ) |
| static

Definition at line 168 of file scm-symtab.c.

References gdbscm_init_eqable_gsmob(), scm_new_smob(), symtab_smob::symtab, symtab_smob_name, and symtab_smob_tag.

Referenced by stscm_scm_from_symtab().

## ◆ stscm_mark_symtab_invalid()

static int stscm_mark_symtab_invalid | ( | void ** | slot,
|  | void * | info
| ) |  |
| static

Definition at line 278 of file scm-symtab.c.

References symtab_smob::symtab.

Referenced by stscm_del_objfile_symtabs().

## ◆ stscm_objfile_symtab_map()

static htab_t stscm_objfile_symtab_map | ( | struct symtab * | symtab | ) |
| static

Definition at line 110 of file scm-symtab.c.

References gdbscm_create_eqable_gsmob_ptr_map(), stscm_eq_symtab_smob(), stscm_hash_symtab_smob(), stscm_objfile_data_key, and SYMTAB_OBJFILE.

Referenced by stscm_free_symtab_smob(), and stscm_scm_from_symtab().

## ◆ stscm_print_sal_smob()

static int stscm_print_sal_smob | ( | SCM | self,
|  | SCM | port,
|  | scm_print_state * | pstate
| ) |  |
| static

Definition at line 395 of file scm-symtab.c.

References gdbscm_printf(), symtab_and_line::line, sal_smob::sal, sal_smob::symtab_scm, and symtab_smob_name.

Referenced by gdbscm_initialize_symtabs().

## ◆ stscm_print_symtab_smob()

static int stscm_print_symtab_smob | ( | SCM | self,
|  | SCM | port,
|  | scm_print_state * | pstate
| ) |  |
| static

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

References gdbscm_printf(), symtab_smob::symtab, symtab_smob_name, and symtab_to_filename_for_display().

Referenced by gdbscm_initialize_symtabs().

## ◆ stscm_sal_is_valid()

static int stscm_sal_is_valid | ( | sal_smob * | s_smob | ) |
| static

Definition at line 492 of file scm-symtab.c.

References gdbscm_is_false, symtab_smob::symtab, and sal_smob::symtab_scm.

Referenced by gdbscm_sal_valid_p(), and stscm_get_valid_sal_smob_arg().

## ◆ stscm_scm_from_sal()

SCM stscm_scm_from_sal | ( | struct symtab_and_line | sal | ) |

Definition at line 448 of file scm-symtab.c.

References sal_smob::sal, stscm_make_sal_smob(), stscm_scm_from_symtab(), symtab_and_line::symtab, and sal_smob::symtab_scm.

Referenced by gdbscm_find_pc_line(), and gdbscm_frame_sal().

## ◆ stscm_scm_from_symtab()

SCM stscm_scm_from_symtab | ( | struct symtab * | symtab | ) |

Definition at line 200 of file scm-symtab.c.

References symtab_smob::base, gdbscm_fill_eqable_gsmob_ptr_slot(), gdbscm_find_eqable_gsmob_ptr_slot(), stscm_make_symtab_smob(), stscm_objfile_symtab_map(), and symtab_smob::symtab.

Referenced by gdbscm_symbol_symtab(), and stscm_scm_from_sal().

## Variable Documentation

## ◆ sal_smob_name

const char sal_smob_name[] = "gdb:sal"
| static

Definition at line 74 of file scm-symtab.c.

Referenced by gdbscm_initialize_symtabs(), stscm_get_sal_arg(), and stscm_make_sal_smob().

## ◆ sal_smob_tag

scm_t_bits sal_smob_tag
| static

Definition at line 78 of file scm-symtab.c.

Referenced by gdbscm_initialize_symtabs(), stscm_is_sal(), and stscm_make_sal_smob().

## ◆ stscm_objfile_data_key

const struct objfile_data* stscm_objfile_data_key
| static

Definition at line 80 of file scm-symtab.c.

Referenced by gdbscm_initialize_symtabs(), and stscm_objfile_symtab_map().

## ◆ symtab_functions

const scheme_function symtab_functions[]
| static

Definition at line 612 of file scm-symtab.c.

Referenced by gdbscm_initialize_symtabs().

## ◆ symtab_smob_name

const char symtab_smob_name[] = "gdb:symtab"
| static

Definition at line 72 of file scm-symtab.c.

Referenced by gdbscm_initialize_symtabs(), stscm_get_symtab_arg_unsafe(), stscm_make_symtab_smob(), stscm_print_sal_smob(), and stscm_print_symtab_smob().

## ◆ symtab_smob_tag

scm_t_bits symtab_smob_tag
| static

Definition at line 77 of file scm-symtab.c.

Referenced by gdbscm_initialize_symtabs(), stscm_is_symtab(), and stscm_make_symtab_smob().