Lines Matching defs:nlist
2107 // add externally visible symbols, in case the nlist record has
2220 struct nlist_64 nlist;
2223 nlist.n_strx = nlist_data.GetU32_unchecked(&nlist_data_offset);
2224 nlist.n_type = nlist_data.GetU8_unchecked(&nlist_data_offset);
2225 nlist.n_sect = nlist_data.GetU8_unchecked(&nlist_data_offset);
2226 nlist.n_desc = nlist_data.GetU16_unchecked(&nlist_data_offset);
2227 nlist.n_value = nlist_data.GetAddress_unchecked(&nlist_data_offset);
2228 return nlist;
2256 // We add symbols to the table in the order of most information (nlist
2377 bit_width_32 ? sizeof(struct nlist) : sizeof(struct nlist_64);
2455 // process the nlist records.
2701 // available in the normal nlist data. However, there *are* duplicate
2703 // LOCAL symbols in the normal nlist data. To handle this situation
2706 // flag that tells the normal nlist parser to ignore all LOCAL symbols.
2788 // parsing all the nlist entries.
2819 // The normal nlist code cannot correctly size the Symbols
2838 struct nlist_64 nlist = *nlist_maybe;
2841 const char *symbol_name = string_table + nlist.n_strx;
2850 nlist_index, nlist.n_strx,
2862 bool is_debug = ((nlist.n_type & N_STAB) != 0);
2872 switch (nlist.n_type) {
2918 if (nlist.n_value != 0)
2920 nlist.n_sect, nlist.n_value);
2935 nlist.n_sect, nlist.n_value);
2938 std::make_pair(nlist.n_value, sym_idx));
2952 ->SetByteSize(nlist.n_value);
2966 std::make_pair(nlist.n_value, sym_idx));
2967 symbol_section = section_info.GetSection(nlist.n_sect,
2968 nlist.n_value);
2977 symbol_section = section_info.GetSection(nlist.n_sect,
2978 nlist.n_value);
3011 symbol_section = section_info.GetSection(nlist.n_sect,
3012 nlist.n_value);
3176 symbol_section = section_info.GetSection(nlist.n_sect,
3177 nlist.n_value);
3187 symbol_section = section_info.GetSection(nlist.n_sect,
3188 nlist.n_value);
3199 symbol_section = section_info.GetSection(nlist.n_sect,
3200 nlist.n_value);
3228 symbol_section = section_info.GetSection(nlist.n_sect,
3229 nlist.n_value);
3258 // uint8_t n_pext = N_PEXT & nlist.n_type;
3259 uint8_t n_type = N_TYPE & nlist.n_type;
3260 sym[sym_idx].SetExternal((N_EXT & nlist.n_type) != 0);
3265 strtab_data.PeekCStr(nlist.n_value);
3284 undefined_name_to_desc[undefined_name] = nlist.n_desc;
3296 symbol_section = section_info.GetSection(nlist.n_sect,
3297 nlist.n_value);
3305 if (TEXT_eh_frame_sectID == nlist.n_sect) {
3484 uint64_t symbol_value = nlist.n_value;
3514 addr_t symbol_lookup_file_addr = nlist.n_value;
3578 N_FUN_addr_to_sym_idx.equal_range(nlist.n_value);
3594 sym[pos->second].SetFlags(nlist.n_type << 16 |
3595 nlist.n_desc);
3596 if (resolver_addresses.find(nlist.n_value) !=
3607 if (resolver_addresses.find(nlist.n_value) !=
3621 nlist.n_value);
3637 sym[pos->second].SetFlags(nlist.n_type << 16 |
3638 nlist.n_desc);
3675 sym[GSYM_sym_idx].SetFlags(nlist.n_type << 16 |
3676 nlist.n_desc);
3693 sym[sym_idx].SetFlags(nlist.n_type << 16 | nlist.n_desc);
3753 auto ParseSymbolLambda = [&](struct nlist_64 &nlist, uint32_t nlist_idx,
3755 const bool is_debug = ((nlist.n_type & N_STAB) != 0);
3763 symbol_name = strtab_data.PeekCStr(nlist.n_strx);
3771 nlist_idx, nlist.n_strx, module_sp->GetFileSpec().GetPath()));
3777 const addr_t str_addr = strtab_addr + nlist.n_strx;
3796 switch (nlist.n_type) {
3834 if (nlist.n_value != 0)
3836 section_info.GetSection(nlist.n_sect, nlist.n_value);
3851 section_info.GetSection(nlist.n_sect, nlist.n_value);
3854 std::make_pair(nlist.n_value, sym_idx));
3866 ->SetByteSize(nlist.n_value);
3879 std::make_pair(nlist.n_value, sym_idx));
3880 symbol_section = section_info.GetSection(nlist.n_sect, nlist.n_value);
3889 symbol_section = section_info.GetSection(nlist.n_sect, nlist.n_value);
3920 symbol_section = section_info.GetSection(nlist.n_sect, nlist.n_value);
4071 symbol_section = section_info.GetSection(nlist.n_sect, nlist.n_value);
4080 symbol_section = section_info.GetSection(nlist.n_sect, nlist.n_value);
4090 symbol_section = section_info.GetSection(nlist.n_sect, nlist.n_value);
4116 symbol_section = section_info.GetSection(nlist.n_sect, nlist.n_value);
4143 uint8_t n_type = N_TYPE & nlist.n_type;
4144 sym[sym_idx].SetExternal((N_EXT & nlist.n_type) != 0);
4148 const char *reexport_name_cstr = strtab_data.PeekCStr(nlist.n_value);
4166 undefined_name_to_desc[undefined_name] = nlist.n_desc;
4179 symbol_section = section_info.GetSection(nlist.n_sect, nlist.n_value);
4187 if (TEXT_eh_frame_sectID == nlist.n_sect) {
4343 uint64_t symbol_value = nlist.n_value;
4373 addr_t symbol_lookup_file_addr = nlist.n_value;
4425 range = N_FUN_addr_to_sym_idx.equal_range(nlist.n_value);
4437 sym[pos->second].SetFlags(nlist.n_type << 16 | nlist.n_desc);
4438 if (resolver_addresses.find(nlist.n_value) !=
4446 if (resolver_addresses.find(nlist.n_value) !=
4460 range = N_STSYM_addr_to_sym_idx.equal_range(nlist.n_value);
4472 sym[pos->second].SetFlags(nlist.n_type << 16 | nlist.n_desc);
4498 sym[GSYM_sym_idx].SetFlags(nlist.n_type << 16 | nlist.n_desc);
4515 sym[sym_idx].SetFlags(nlist.n_type << 16 | nlist.n_desc);
4516 if (nlist.n_desc & N_WEAK_REF)
4534 if (auto nlist =
4536 nlists.push_back(*nlist);
4546 for (auto &nlist : nlists) {
4547 if (!ParseSymbolLambda(nlist, nlist_idx++, DebugSymbols))
4553 for (auto &nlist : nlists) {
4554 if (!ParseSymbolLambda(nlist, nlist_idx++, NonDebugSymbols))
4725 // We have a remapping from the original nlist index to a
4729 // We need to lookup a symbol using the original nlist symbol
4788 // a N_INDR nlist entry for this already