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.