Gcc 4.8 DWARF4 vs DWARF2
GCC 4.8 поддерживает DWARF4. Мне интересно, какая разница между DWARF4 и DWARF2 с точки зрения пользователя.
Давайте посмотрим на это с точки зрения GDB. Есть ли разница для пользователей при переключении на DWARF4?
Я нашел Dwarf Home Page, но насколько я вижу, в Интернете нет информации о различии от пользователя POV.
Можете ли вы указать мне эти различия?
Ответы
Ответ 1
Первая версия DWARF показала использование избыточного объема памяти, DWARF-2, заменила ее и добавила различные схемы кодирования для уменьшения размера данных, позже в версии 4 DWARF, которая предлагает улучшенное сжатие данных, лучшее описание оптимизированного кода, и поддержка новых языковых функций в С++.
Обычно выпуски заметок или анонсов суммируют эти различия (их было бы намного больше)
http://dwarfstd.org/Announcement.php
http://dwarfstd.org/PressRelease.php
Ответ 2
В Dwarf 4 standard перечислены основные улучшения, спецификация перечисляет их более подробно.
Нижняя строка для большинства пользователей, по-видимому, лучше поддерживает оптимизированный код, поддерживает больше языков (в основном в Dwarf 3) и поддерживает новые конструкции языка С++
Ответ 3
Я хотел бы добавить, что не все версии gdb могут корректно читать dwarf4. Мне часто приходится компилироваться с -gdwarf-2
, чтобы видеть все символы. Например, с gdb 7.2 я не могу прочитать все символы в смешанной сборке Fortran-C, если я использую dwarf4, а я могу с dwarf2.