String Table Section
String table sections hold null-terminated character sequences, commonly called strings. The object file uses these strings to represent symbol and section names. You reference a string as an index into the string table section.
The first byte, which is index zero, holds a null character. Likewise, a string table's last byte holds a null character, ensuring null termination for all strings. A string whose index is zero specifies either no name or a null name, depending on the context.
An empty string table section is permitted. The section header's
sh_size
member contains zero. Nonzero indexes are invalid for an
empty string table.
A section header's sh_name
member holds an index into the
section header string table section. The section header string table is designated by the
e_shstrndx
member of the ELF header. The
following figure shows a string table with 25
bytes and the strings
associated with various indexes.
ELF String Table
The following table shows the strings of the string table that are shown in the preceding figure.
Table 14-20 ELF String Table Indexes
Index | String |
---|---|
|
None |
|
|
|
|
|
|
|
|
|
null string |
As the example shows, a string table index can refer to any byte in the section. A string can appear more than once. References to substrings can exist. A single string can be referenced multiple times. Unreferenced strings also are allowed.