Lines Matching defs:symbol
622 /// Compare a symbol name against another name, possibly demangling
646 /// Lookup a symbol using the SysV ELF hash table.
658 /// @param sym_name the symbol name to look for.
664 /// the symbol table to use.
667 /// to names from the symbol table.
713 GElf_Sym symbol;
723 ABG_ASSERT(gelf_getsym(sym_tab_data, symbol_index, &symbol));
726 symbol.st_name);
730 sym_type = stt_to_elf_symbol_type(GELF_ST_TYPE(symbol.st_info));
731 sym_binding = stb_to_elf_symbol_binding(GELF_ST_BIND(symbol.st_info));
733 stv_to_elf_symbol_visibility(GELF_ST_VISIBILITY(symbol.st_other));
734 sym_size = symbol.st_size;
746 symbol.st_shndx != SHN_UNDEF,
747 symbol.st_shndx == SHN_COMMON,
873 /// table) of the symbol table the gnu hash table is about.
923 /// Look into the symbol tables of the underlying elf file and find
924 /// the symbol we are being asked.
926 /// This function uses the GNU hash table for the symbol lookup.
935 /// @param sym_name the name of the symbol to look for.
939 /// @param sym_tab_index the index of the symbol table header to use
947 /// @return true if a symbol was actually found.
977 // Test if the symbol is *NOT* present in this ELF file.
987 GElf_Sym symbol;
1012 i, &symbol));
1015 symbol.st_name);
1019 // So we found a symbol (in the symbol table) that equals
1021 sym_type = stt_to_elf_symbol_type(GELF_ST_TYPE(symbol.st_info));
1022 sym_binding = stb_to_elf_symbol_binding(GELF_ST_BIND(symbol.st_info));
1024 stv_to_elf_symbol_visibility(GELF_ST_VISIBILITY(symbol.st_other));
1033 symbol.st_size,
1036 symbol.st_shndx != SHN_UNDEF,
1037 symbol.st_shndx == SHN_COMMON,
1052 /// Look into the symbol tables of the underlying elf file and find
1053 /// the symbol we are being asked.
1056 /// the sysv hash table) for the symbol lookup.
1069 /// symbol table index to use with this hash table.
1071 /// @param symbol_name the name of the symbol to look for.
1078 /// @return true iff the function found the symbol from the elf hash
1113 /// Lookup a symbol from the symbol table directly.
1120 /// @param sym_name the name of the symbol to look up.
1123 /// the symbol table section.
1125 /// @param demangle if true, demangle the names found in the symbol
1128 /// @param sym_name_found the actual name of the symbol found.
1130 /// @param sym_type the type of the symbol found.
1132 /// @param sym_binding the binding of the symbol found.
1134 /// @param sym_versions the versions of the symbol found.
1136 /// @return true iff the symbol was found.
1145 // TODO: read all of the symbol table, store it in memory in a data
1146 // structure that associates each symbol with its versions and in
1147 // which lookups of a given symbol is fast.
1201 /// Look into the symbol tables of the underlying elf file and see
1202 /// if we find a given symbol.
1206 /// @param symbol_name the name of the symbol to look for.
1208 /// @param demangle if true, try to demangle the symbol name found in
1209 /// the symbol table before comparing it to @p symbol_name.
1214 /// @param sym_type this is set to the type of the symbol found. This
1215 /// shall b a standard elf.h value for symbol types, that is SHT_OBJECT,
1220 /// @param sym_binding this is set to the binding of the symbol found.
1221 /// This is a standard elf.h value of the symbol binding kind, that
1224 /// @param symbol_versions the versions of the symbol @p symbol_name,
1227 /// @return true iff a symbol with the name @p symbol_name was found.
1266 /// Look into the symbol tables of the underlying elf file and see if
1267 /// we find a given public (global or weak) symbol of function type.
1273 /// @param symbol_name the function symbol to look for.
1278 /// @return true iff the symbol was found.
1894 /// linux kernel symbol tables when determining if a symbol is
1920 /// special linux kernel symbol tables when determining if a symbol
1985 /// special linux kernel symbol tables when determining if a symbol
2012 /// special linux kernel symbol tables when determining if a symbol
3829 /// which has a linkage name but no elf symbol yet.
3832 /// link to their underlying elf symbol. There are some DIEs like
4370 /// Test if a symbol belongs to a function of the current ABI
4375 /// @param fn the function symbol to consider.
4405 /// set, but no link to their actual underlying elf symbol. When
4407 /// against another one which has its underlying symbol properly set
4410 /// If the corpus contains a symbol with the same name as the
4412 /// function and its underlying symbol.
4438 // previously scheduled to be set a function symbol.
4440 // But if it appears that it now has a symbol already set,
4441 // then do not set a symbol to it again.
4445 // (mangled) name has already been set a symbol, then do not
4446 // set a symbol to this function either. Otherwise, there
4447 // will be two virtual member functions with the same symbol
4457 // The function_decl now has an associated (public) ELF symbol so
4466 << "' with symbol '"
4773 /// The section containing the symbol table from the current ELF
4777 /// symbol table that it found. Subsequent invocations just return
4778 /// the cached symbol table section.
4780 /// @return the symbol table section if found
4785 /// Lookup an elf symbol, referred to by its index, from the .symtab
4788 /// The resulting symbol returned is an instance of a GElf_Sym, from
4791 /// @param symbol_index the index of the symbol to look up.
4794 /// symbol iff the function returns TRUE, meaning the symbol was
4797 /// @return TRUE iff the symbol was found.
4815 /// a symbol that is exported, whatever that means. This is
4856 /// information (e.g, a symbol's address referred to by a DWARF
4900 /// absolute address, representing a function symbol. It then
4901 /// extracts the address of the .text section from the symbol
4906 /// address of a function symbol that was retrieved by looking at a
4911 /// st_value field of a function symbol from the ELF file.
4913 /// @param addr an adress for a function symbol that was retrieved
4935 // 2/ The ELF symbol addresses that we store in our lookup
4947 /// absolute address, representing a global variable symbol. It
4949 /// section from the symbol absolute address to get the relative
4953 /// address of a variable symbol that was retrieved by looking at a
4958 /// st_value field of a function symbol from the ELF file.
4960 /// @param addr an address for a global variable symbol that was
4979 // 2/ The ELF symbol addresses that we store in our lookup
5048 // value of that DW_AT_ranges represents the function (symbol)
12427 // but has no underlying symbol set.
12429 // The underlying elf symbol to set to this function can show up
12432 // its underlying elf symbol is simply not emitted in the DWARF.
12437 // set its underlying symbol.
12439 // Note that if the underying symbol is encountered later in the
12441 // updates the function to set its underlying symbol will
14388 // Check if a variable symbol with this name is exported by the elf
14389 // binary. If it is, then set the symbol of the variable, if it's
14410 // the name of the underlying symbol.
14426 /// Note that a non-member function which symbol is not exported is
14456 // A non-member non-static function which symbol is not exported is
14460 // symbol, by default, it's not suppressed. Unless we are asked to
14469 elf_symbol_sptr symbol =
14471 if (!symbol)
14473 if (!symbol->is_suppressed())
14476 // Since there is only one symbol in DWARF associated with an elf_symbol,
14477 // we can assume this is the main symbol then. Otherwise the main hinting
14479 ABG_ASSERT(symbol->is_main_symbol());
14480 if (symbol->has_aliases())
14481 for (elf_symbol_sptr a = symbol->get_next_alias();
14587 // symbol yet. Note that in the later case, a function IR without
14588 // any associated symbol will be dropped on the floor by
14630 // and exported symbol) and is not the specification of another
14640 elf_symbol_sptr symbol =
14642 if (!symbol)
14644 if (!symbol->is_suppressed())
14647 // Since there is only one symbol in DWARF associated with an elf_symbol,
14648 // we can assume this is the main symbol then. Otherwise the main hinting
14650 ABG_ASSERT(symbol->is_main_symbol());
14651 if (symbol->has_aliases())
14652 for (elf_symbol_sptr a = symbol->get_next_alias();
14838 /// Create a function symbol with a given name.
14840 /// @param sym_name the name of the symbol to create.
14842 /// @param env the environment to create the symbol in.
14844 /// @return the newly created symbol.
14851 /*symbol index=*/ 0,
14852 /*symbol size=*/ 0,
14854 /*symbol type=*/ elf_symbol::FUNC_TYPE,
14855 /*symbol binding=*/ elf_symbol::GLOBAL_BINDING,
14856 /*symbol is defined=*/ true,
14857 /*symbol is common=*/ false,
14858 /*symbol version=*/ ver,
14859 /*symbol visibility=*/elf_symbol::DEFAULT_VISIBILITY);
14936 // Set the symbol of the function. If the linkage name is not set
14937 // or is wrong, set it to the name of the underlying symbol.
14971 // linkage name *and* and has its underlying symbol correctly set.
14972 // It thus doesn't need any fixup related to elf symbol. So
14974 // names and no elf symbol that need to be fixed up.
15075 // .. and yet has no ELF symbol associated ...
15080 // have any ELF symbol associated and is not a virtual member
15783 // external. If the variable doesn't have any ELF symbol associated
15824 /// linux kernel symbol tables when determining if a symbol is
15874 /// linux kernel symbol tables when determining if a symbol is
15937 /// Look into the symbol tables of a given elf file and see if we find
15938 /// a given symbol.
15944 /// @param symbol_name the name of the symbol to look for.
15946 /// @param demangle if true, try to demangle the symbol name found in
15947 /// the symbol table.
15951 /// @return true iff the symbol was found among the publicly exported
15984 /// Look into the symbol tables of an elf file to see if a public
15996 /// @return true iff a function with symbol name @p symbol_name is