“Size” is a command-line tool that is part of the GNU Binutils suite of software. Its purpose is to display information about the sizes of sections inside binary files. This can be useful for developers and system administrators who need to understand how the different parts of a binary file are organized and how much space they take up.
When a program is compiled, the compiler generates object files that contain the executable code, data, and other resources that make up the program. These object files are then linked together to create a single binary file that can be executed on the target system. The binary file is typically divided into sections, such as the text section (which contains the executable code) and the data section (which contains initialized and uninitialized data).
“Size” allows users to view the sizes of these sections, as well as other information about the binary file. The output of the “size” command typically includes the total size of the file, as well as the sizes of each section and the percentage of the file that each section occupies. This information can be used to identify areas of a program that may be consuming excessive amounts of memory or to optimize the layout of a program’s sections to improve performance.
If you encounter the below error while running the command size:
size: command not found
you may try installing the below package as per your choice of distribution:
Distribution | Command |
---|---|
Debian | apt-get install binutils |
Ubuntu | apt-get install binutils |
Alpine | apk add binutils |
Arch Linux | pacman -S binutils |
Kali Linux | apt-get install binutils |
CentOS | yum install binutils |
Fedora | dnf install binutils |
OS X | brew install binutils |
Raspbian | apt-get install binutils |
size Command Examples
1. Display the size of sections in a given object or executable file:
# size path/to/file
2. Display the size of sections in a given object or executable file in [o]ctal:
# size -o|--radix=8 path/to/file
3. Display the size of sections in a given object or executable file in [d]ecimal:
# size -d|--radix=10 path/to/file
4. Display the size of sections in a given object or executable file in he[x]adecimal:
# size -x|--radix=16 path/to/file
Summary
In addition to displaying section sizes, “size” can also be used to display other information about a binary file, such as the symbol table and the relocation information. This can be useful for debugging and troubleshooting purposes, as it allows users to understand how the program is structured and how it interacts with other components of the system.
Overall, “size” is a powerful and flexible tool that can provide valuable insights into the structure and organization of binary files. Its ability to display section sizes, symbol tables, and other information makes it a valuable tool for developers and system administrators who need to understand how programs are built and executed.