sprintf(buffer, func->name);
strcpy(buffer, name);
char *elfGetAddressSymbol(u32 addr){  static char buffer[256];  CompileUnit *unit = elfGetCompileUnit(addr);  // found unit, need to find function  if(unit) {    Function *func = unit->functions;    while(func) {      if(addr >= func->lowPC && addr < func->highPC) {        int offset = addr - func->lowPC;        if(offset)          sprintf(buffer, "%s+%d", func->name, offset);        else          sprintf(buffer, func->name);        return buffer;      }      func = func->next;    }  }  if(elfSymbolsCount) {    for(int i = 0; i < elfSymbolsCount; i++) {      Symbol *s = &elfSymbols[i];      if((addr >= s->value)  && addr < (s->value+s->size)) {        int offset = addr-s->value;        if(offset)          sprintf(buffer, "%s+%d",s->name, addr-s->value);        else          strcpy(buffer, s->name);        return buffer;      } else if(addr == s->value) {        strcpy(buffer, s->name);        return buffer;      }    }  }    return "";}