4 extern DEBUGFILE cdbDebugFile;
6 DEBUGFILE *debugFile = &cdbDebugFile;
8 void outputDebugStackSymbols(void)
10 if(getenv("SDCC_DEBUG_VAR_STORAGE"))
12 dumpSymInfo("XStack", xstack);
13 dumpSymInfo("IStack", istack);
16 if(options.debug && debugFile)
20 for (sym = setFirstItem (xstack->syms); sym; sym = setNextItem (xstack->syms))
21 debugFile->writeSymbol(sym);
23 for (sym = setFirstItem (istack->syms); sym; sym = setNextItem (istack->syms))
24 debugFile->writeSymbol(sym);
30 void outputDebugSymbols(void)
32 if(getenv("SDCC_DEBUG_VAR_STORAGE"))
34 dumpSymInfo("Code", code);
35 dumpSymInfo("Data", data);
36 dumpSymInfo("XData", xdata);
37 dumpSymInfo("XIData", xidata);
38 dumpSymInfo("XInit", xinit);
39 dumpSymInfo("IData", idata);
40 dumpSymInfo("Bit", bit);
41 dumpSymInfo("Statics", statsg);
42 dumpSymInfo("SFR", sfr);
43 dumpSymInfo("SFRBits", sfrbit);
44 dumpSymInfo("Reg", reg);
45 dumpSymInfo("Generic", generic);
46 dumpSymInfo("Overlay", overlay);
47 dumpSymInfo("EEProm", eeprom);
48 dumpSymInfo("Home", home);
51 if(options.debug && debugFile)
55 for (sym = setFirstItem (data->syms); sym; sym = setNextItem (data->syms))
56 debugFile->writeSymbol(sym);
58 for (sym = setFirstItem (idata->syms); sym; sym = setNextItem (idata->syms))
59 debugFile->writeSymbol(sym);
61 for (sym = setFirstItem (bit->syms); sym; sym = setNextItem (bit->syms))
62 debugFile->writeSymbol(sym);
64 for (sym = setFirstItem (xdata->syms); sym; sym = setNextItem (xdata->syms))
65 debugFile->writeSymbol(sym);
68 for (sym = setFirstItem (xidata->syms); sym; sym = setNextItem (xidata->syms))
69 debugFile->writeSymbol(sym);
72 for (sym = setFirstItem (sfr->syms); sym; sym = setNextItem (sfr->syms))
73 debugFile->writeSymbol(sym);
75 for (sym = setFirstItem (sfrbit->syms); sym; sym = setNextItem (sfrbit->syms))
76 debugFile->writeSymbol(sym);
78 for (sym = setFirstItem (home->syms); sym; sym = setNextItem (home->syms))
79 debugFile->writeSymbol(sym);
81 for (sym = setFirstItem (code->syms); sym; sym = setNextItem (code->syms))
82 debugFile->writeSymbol(sym);
84 for (sym = setFirstItem (statsg->syms); sym; sym = setNextItem (statsg->syms))
85 debugFile->writeSymbol(sym);
88 for (sym = setFirstItem (xinit->syms); sym; sym = setNextItem (xinit->syms))
89 debugFile->writeSymbol(sym);
97 void dumpSymInfo(char *pcName, memmap *memItem)
101 printf("--------------------------------------------\n");
102 printf(" %s\n", pcName);
104 for(sym = setFirstItem(memItem->syms);
105 sym; sym = setNextItem(memItem->syms))
107 printf(" %s, isReqv:%d, reqv:0x%p, onStack:%d, Stack:%d, nRegs:%d, [",
108 sym->rname, sym->isreqv, sym->reqv, sym->onStack, sym->stack, sym->nRegs);
113 symbol *TempSym = OP_SYMBOL (sym->reqv);
115 for (i = 0; i < 4; i++)
117 printf("%s,", port->getRegName(TempSym->regs[i]));