Увеличивает ли параметр команды -g (или --debug) загруженный объем памяти?
Есть ли
-g
(или же
--debug
) параметр команды clang увеличивает объем памяти, занимаемой скомпилированным приложением? В частности, меняет ли он размер двоичного файла, загруженного во встроенную систему ARM?
Примечание: я знаю, что отладочная сборка добавляет таблицу символов и некоторую дополнительную отладочную информацию в ELF, но это должно использоваться отладчиком, работающим на хост-машине (скажем, ПК с Eclipse). Вопрос в том, меняет ли он размер загруженного изображения.
1 ответ
Нет
В
-g
опция только добавляет отладочную информацию в двоичный файл, в разделы, которые не загружаются в память. Фактический код и генерируемые данные не затрагиваются.
Попробуйте бежать
objdump -h
в обеих версиях двоичного файла ELF. Вы увидите некоторые разделы, отмеченные атрибутом
ALLOC
а другие нет. Только отмеченные
ALLOC
загружаются или выделяются памяти во время выполнения. Вы должны заметить, что эти разделы имеют одинаковый размер в обеих версиях; действительно, они должны иметь точно такое же содержимое, что вы можете проверить с помощью
objdump --full-contents
и
diff
если хочешь. Отличия только в разделах, которые не отмечены
ALLOC
; они не загружаются в память и не действуют во время выполнения.