ELF symbol
also: symbol table entry, symbol record
A named reference in an ELF binary that identifies a function, variable, or other object in memory. Symbols are used by the linker and loader to resolve references between code modules.
An ELF symbol is a record in an ELF (Executable and Linkable Format) binary that maps a human-readable name to a memory address or offset. Each symbol has metadata including its name, address, size, binding (local, global, or weak), and visibility.
Symbols serve two main purposes: during linking, the linker uses symbols to connect function calls and variable references across object files; during runtime, the dynamic loader uses symbols to resolve dependencies between shared libraries.
You can inspect symbols in a binary using nm or readelf. For example, nm /bin/ls displays all symbols in the ls command, showing whether each is defined locally or imported from a library like libc.
Symbols can be exported (visible to other binaries) or hidden (internal only). The strip command removes symbol information to reduce file size, but this makes debugging impossible.