$linuxjunkies
>

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.

Related terms