Sections with
sh_type == SHT_STRTAB
are called string tables.They hold a null separated array of strings.
Such sections are used by other sections when string names are to be used. The using section says:
- which string table they are using
- what is the index on the target string table where the string starts
So for example, we could have a string table containing:
Data: \0 a b c \0 d e f \0
Index: 0 1 2 3 4 5 6 7 8
The first byte must be a 0. TODO rationale?
And if another section wants to use the string
d e f
, they have to point to index 5
of this section (letter d
).Notable string table sections:
.shstrtab
.strtab