Lines Matching full:info
533 binary back-end and anywhere else where no private info
746 Fill in the basic info about symbol that nm needs.
747 Additional info may be added by the back-ends after
932 struct stab_find_info *info;
967 info = (struct stab_find_info *) *pinfo;
968 if (info != NULL)
970 if (info->stabsec == NULL || info->strsec == NULL)
976 stabsize = (info->stabsec->rawsize
977 ? info->stabsec->rawsize
978 : info->stabsec->size);
979 strsize = (info->strsec->rawsize
980 ? info->strsec->rawsize
981 : info->strsec->size);
989 bfd_size_type amt = sizeof *info;
991 info = (struct stab_find_info *) bfd_zalloc (abfd, amt);
992 if (info == NULL)
999 info->stabsec = bfd_get_section_by_name (abfd, ".stab");
1000 info->strsec = bfd_get_section_by_name (abfd, ".stabstr");
1002 if (info->stabsec == NULL || info->strsec == NULL)
1005 info->stabsec = bfd_get_section_by_name (abfd, "$GDB_SYMBOLS$");
1006 info->strsec = bfd_get_section_by_name (abfd, "$GDB_STRINGS$");
1008 if (info->stabsec == NULL || info->strsec == NULL)
1011 can return quickly in the info != NULL case above. */
1012 *pinfo = info;
1017 stabsize = (info->stabsec->rawsize
1018 ? info->stabsec->rawsize
1019 : info->stabsec->size);
1021 strsize = (info->strsec->rawsize
1022 ? info->strsec->rawsize
1023 : info->strsec->size);
1025 info->stabs = (bfd_byte *) bfd_alloc (abfd, stabsize);
1026 info->strs = (bfd_byte *) bfd_alloc (abfd, strsize);
1027 if (info->stabs == NULL || info->strs == NULL)
1030 if (! bfd_get_section_contents (abfd, info->stabsec, info->stabs,
1032 || ! bfd_get_section_contents (abfd, info->strsec, info->strs,
1040 reloc_size = bfd_get_reloc_upper_bound (abfd, info->stabsec);
1046 reloc_count = bfd_canonicalize_reloc (abfd, info->stabsec, reloc_vector,
1084 val = bfd_get_32 (abfd, info->stabs + r->address);
1088 bfd_put_32 (abfd, (bfd_vma) val, info->stabs + r->address);
1101 info->indextablesize = 0;
1103 for (stab = info->stabs; stab < info->stabs + stabsize; stab += STABSIZE)
1109 ++info->indextablesize;
1119 if (stab + STABSIZE + TYPEOFF < info->stabs + stabsize
1128 ++info->indextablesize;
1133 ++info->indextablesize;
1135 if (info->indextablesize == 0)
1137 ++info->indextablesize;
1139 amt = info->indextablesize;
1141 info->indextable = (struct indexentry *) bfd_alloc (abfd, amt);
1142 if (info->indextable == NULL)
1150 for (i = 0, stab = info->stabs, nul_str = str = info->strs;
1151 i < info->indextablesize && stab < info->stabs + stabsize;
1158 if ((bfd_size_type) ((info->strs + strsize) - str) < stroff)
1174 info->indextable[i].val = bfd_get_32 (abfd, nul_fun + VALOFF);
1175 info->indextable[i].stab = nul_fun;
1176 info->indextable[i].str = nul_str;
1177 info->indextable[i].directory_name = directory_name;
1178 info->indextable[i].file_name = file_name;
1179 info->indextable[i].function_name = NULL;
1194 if (stab + STABSIZE + TYPEOFF < info->stabs + stabsize
1219 info->indextable[i].val = bfd_get_32 (abfd, stab + VALOFF);
1220 info->indextable[i].stab = stab;
1221 info->indextable[i].str = str;
1222 info->indextable[i].directory_name = directory_name;
1223 info->indextable[i].file_name = file_name;
1224 info->indextable[i].function_name = function_name;
1232 info->indextable[i].val = bfd_get_32 (abfd, nul_fun + VALOFF);
1233 info->indextable[i].stab = nul_fun;
1234 info->indextable[i].str = nul_str;
1235 info->indextable[i].directory_name = directory_name;
1236 info->indextable[i].file_name = file_name;
1237 info->indextable[i].function_name = NULL;
1241 info->indextable[i].val = (bfd_vma) -1;
1242 info->indextable[i].stab = info->stabs + stabsize;
1243 info->indextable[i].str = str;
1244 info->indextable[i].directory_name = NULL;
1245 info->indextable[i].file_name = NULL;
1246 info->indextable[i].function_name = NULL;
1249 info->indextablesize = i;
1250 qsort (info->indextable, (size_t) i, sizeof (struct indexentry),
1253 *pinfo = info;
1261 if (info->cached_indexentry != NULL
1262 && offset >= info->cached_offset
1263 && offset < (info->cached_indexentry + 1)->val)
1265 stab = info->cached_stab;
1266 indexentry = info->cached_indexentry;
1267 file_name = info->cached_file_name;
1280 high = info->indextablesize - 1;
1284 if (offset >= info->indextable[mid].val
1285 && offset < info->indextable[mid + 1].val)
1287 indexentry = &info->indextable[mid];
1291 if (info->indextable[mid].val > offset)
1345 info->cached_stab = stab;
1346 info->cached_offset = val;
1347 info->cached_file_name = file_name;
1348 info->cached_indexentry = indexentry;
1378 if (info->filename == NULL
1379 || filename_ncmp (info->filename, directory_name, dirlen) != 0
1380 || filename_cmp (info->filename + dirlen, file_name) != 0)
1384 /* Don't free info->filename here. objdump and other
1388 info->filename = (char *) bfd_alloc (abfd, dirlen + len);
1389 if (info->filename == NULL)
1391 memcpy (info->filename, directory_name, dirlen);
1392 memcpy (info->filename + dirlen, file_name, len);
1395 *pfilename = info->filename;