Какова цель, чтобы содержать информацию о статических переменных в таблице символов?
Я пытаюсь понять .symtab
Тип setcion для перемещаемых объектных файлов. И я знаю, что он содержит информацию о статических переменных. Но почему?
Все, что нам нужно сделать для связывания перемещаемых объектных файлов с некоторыми другими, это переместить адрес этой статической переменной (и некоторых других, конечно, но это не имеет значения для статических переменных). Так что все, что нам нужно - это таблица перемещений, которая хранится в .rel.data
и содержит всю информацию для перемещения статической переменной, не так ли?
2 ответа
Но для отладки может быть полезно знать, где находятся переменные.
Не уверен в вашем компиляторе, но для компилятора IBM AIX по умолчанию не добавляются статические переменные в таблицу символов.
Тем не менее, для отладки, скажем, gdb весьма полезно знать, что содержат статические переменные и связанные с ними символы, поэтому было бы целесообразно, чтобы они там появлялись.