struct agent_expr;
struct program_space;
struct language_defn;
+struct probe;
/* Some of the structures in this file are space critical.
The space-critical structures are:
union
{
- /* The fact that this is a long not a LONGEST mainly limits the
- range of a LOC_CONST. Since LOC_CONST_BYTES exists, I'm not
- sure that is a big deal. */
- long ivalue;
+ LONGEST ivalue;
struct block *block;
/* struct call_site entries for this compilation unit or NULL. */
htab_t call_site_htab;
+
+ /* If non-NULL, then this points to a NULL-terminated vector of
+ included symbol tables. When searching the static or global
+ block of this symbol table, the corresponding block of all
+ included symbol tables will also be searched. Note that this
+ list must be flattened -- the symbol reader is responsible for
+ ensuring that this vector contains the transitive closure of all
+ included symbol tables. */
+
+ struct symtab **includes;
+
+ /* If this is an included symbol table, this points to one includer
+ of the table. This user is considered the canonical symbol table
+ containing this one. An included symbol table may itself be
+ included by another. */
+
+ struct symtab *user;
};
#define BLOCKVECTOR(symtab) (symtab)->blockvector
CORE_ADDR end;
int explicit_pc;
int explicit_line;
+
+ /* The probe associated with this symtab_and_line. */
+ struct probe *probe;
};
extern void init_sal (struct symtab_and_line *sal);