X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=debugger%2Fmcs51%2Fsymtab.c;h=6d12e577917c745c4f436218e2e5060975cb7574;hb=13a625c70d50182aa136b970e419a7a7e50f282c;hp=b35e2d150a36e33d578132a22e620958f686c4bb;hpb=256bce22d6b6abdc49735eef9b87f4685ca20bcc;p=fw%2Fsdcc diff --git a/debugger/mcs51/symtab.c b/debugger/mcs51/symtab.c index b35e2d15..6d12e577 100644 --- a/debugger/mcs51/symtab.c +++ b/debugger/mcs51/symtab.c @@ -734,14 +734,28 @@ static void lnkCSrc (char *s) line--; /* one line can have more than one address : (for loops !)*/ - if (line < mod->ncLines && line > 0 && + if (line < mod->ncLines && line > 0 /*&& ( !mod->cLines[line]->addr || - mod->cLines[line]->level > level )) { - mod->cLines[line]->addr = addr; - mod->cLines[line]->block = block; - mod->cLines[line]->level = level; - Dprintf(D_symtab, ("symtab: ccc %s(%d:0x%x) %s",mod->c_name, - line+1,addr,mod->cLines[line]->src)); + mod->cLines[line]->level > level )*/ ) + { + if ( mod->cLines[line]->addr ) + { + /* save double line information for exepoints */ + exePoint *ep ; + ep = Safe_calloc(1,sizeof(exePoint)); + ep->addr = mod->cLines[line]->addr ; + ep->line = line; + ep->block= mod->cLines[line]->block; + ep->level= mod->cLines[line]->level; + addSet(&mod->cfpoints,ep); + Dprintf(D_symtab, ("symtab: exe %s(%d:0x%x) %s",mod->c_name, + line+1,addr,mod->cLines[line]->src)); + } + mod->cLines[line]->addr = addr; + mod->cLines[line]->block = block; + mod->cLines[line]->level = level; + Dprintf(D_symtab, ("symtab: ccc %s(%d:0x%x) %s",mod->c_name, + line+1,addr,mod->cLines[line]->src)); } return;