diff --git a/kernel/fstdata.cc b/kernel/fstdata.cc index 1bf43bfdd..41b22d1c5 100644 --- a/kernel/fstdata.cc +++ b/kernel/fstdata.cc @@ -144,6 +144,8 @@ void FstData::extractVarNames() log_error("Error parsing memory address in : %s\n", clean_name.c_str()); } memory_to_handle[var.scope+"."+mem_cell][mem_addr] = var.id; + name_to_handle[stringf("%s.%s[%d]",var.scope.c_str(),mem_cell.c_str(),mem_addr)] = h->u.var.handle; + continue; } pos = clean_name.find_last_of("["); if (pos != std::string::npos) { @@ -156,6 +158,8 @@ void FstData::extractVarNames() log_error("Error parsing memory address in : %s\n", clean_name.c_str()); } memory_to_handle[var.scope+"."+mem_cell][mem_addr] = var.id; + name_to_handle[stringf("%s.%s[%d]",var.scope.c_str(),mem_cell.c_str(),mem_addr)] = h->u.var.handle; + continue; } name_to_handle[var.scope+"."+clean_name] = h->u.var.handle; break;