} *headerhash[HEADER_HASHSZ];
} StabTypeTab;
+static const Bool stabs_debug = True;
static UInt header_hash(Char *filename, UInt instance)
{
*/
static SymType *structRef(StabTypeTab *tab, SymType *def, Bool isstruct, Char *name)
{
- static const Bool debug = False;
+ static const Bool debug = False || stabs_debug;
struct structlist *sl;
SymType *ty;
static Int warnlen = 0;
/* Add a structural defintion for a struct/union reference */
static SymType *structDef(StabTypeTab *tab, SymType *def, Bool isstruct, Char *name)
{
- static const Bool debug = False;
+ static const Bool debug = False || stabs_debug;
SymType *ref = structRef(tab, NULL, isstruct, name);
if (debug)
/* add a new index for a file */
static void addFileAlias(StabTypeTab *tab, Char *filename, UInt instance, Int idx)
{
- static const Bool debug = False;
+ static const Bool debug = False || stabs_debug;
struct header *hp;
for(hp = tab->headerhash[header_hash(filename, instance)]; hp != NULL; hp = hp->next) {
static void addHeader(StabTypeTab *tab, Char *filename, UInt instance, Int idx)
{
- static const Bool debug = False;
+ static const Bool debug = False || stabs_debug;
struct header *hp, **bucket;
if (debug)
static void stab_resolve(SymType *st, void *data)
{
- static const Bool debug = False;
+ static const Bool debug = False || stabs_debug;
Char *str = (Char *)data;
vg_assert(!VG_(st_isresolved)(st));
introduced anywhere, so we need to scan it all to pick them up. */
static SymType *stabtype_parser(SegInfo *si, SymType *def, Char **pp)
{
- static const Bool debug = False;
+ static const Bool debug = False || stabs_debug;
Char *p = *pp;
Char t;
SymType *type;
/* parse a symbol reference: NAME ':' DESC TYPE */
static Bool initSym(SegInfo *si, Sym *sym, stab_types kind, Char **namep, Int val)
{
- static const Bool debug = False;
+ static const Bool debug = False || stabs_debug;
Char *name = *namep;
Char *ty;
Int len;
if (isStruct && isTypedef) isStruct = False;
sym->type = stabtype_parser(si, NULL, &ty);
base = VG_(st_basetype)(sym->type, False);
-
if (isStruct && (VG_(st_isstruct)(base) || VG_(st_isunion)(base))) {
Char *sname = VG_(addStr)(si, name, len);
structDef(si->stab_typetab, base, VG_(st_isstruct)(base), sname);
definitions helps a lot. */
static Scope *addSymsToScope(Scope *sc, struct symlist *list, Int nsyms, Scope *outer)
{
- static const Bool debug = False;
+ static const Bool debug = False || stabs_debug;
Int j;
struct symlist *n;
Int base;
UChar* stabC, Int stab_sz,
UChar* stabstr, Int stabstr_sz )
{
- static const Bool debug = False;
+ static const Bool debug = False || stabs_debug;
Int i;
Int n_stab_entries;
struct nlist* stab = (struct nlist*)stabC;
/* handle continued string stabs */
{
- static const Bool contdebug = False;
+ static const Bool contdebug = False || stabs_debug;
Int buflen = 0;
Int idx = 0;
Char *buf = NULL;