Перейти до вмісту

DWARF

Матеріал з Вікіпедії — вільної енциклопедії.

DWARF — поширений формат даних налагодження. Спочатку DWARF був розроблений разом із Executable and Linkable Format (ELF), хоча він не залежить від форматів об'єктних файлів.[1] Назва є історично-фентезійним доповненням до «ELF», яке не мало офіційного значення, хоча згодом для назви було запропоновано бекронім «Debugging With Arbitrary Record Formats» («Налагодження з довільними форматами записів»).[1]

DWARF виник разом із компілятором C та налагоджувачем sdb у UNIX System V Release 4 (SVR4).[1] Інформація для налагодження, така як інформація у форматі DWARF, генерується, коли використовується параметр компілятора -g.[2]

Історія

[ред. | ред. код]

Перша версія DWARF використовувала надмірний обсяг пам'яті, тому несумісний наступник, DWARF-2, замінив її та додав різні схеми кодування для зменшення розміру даних. DWARF не одразу отримав загальне визнання; наприклад, коли Sun Microsystems прийняла ELF у рамках переходу на Solaris, вона вирішила продовжити використовувати stabs у вбудовуванні, відомому як «stabs-in-elf». Linux наслідував цей підхід, і DWARF-2 не став типовим форматом до кінця 1990-х років.

Робоча група DWARF при Free Standards Group випустила версію 3 DWARF у січні 2006 року,[3] додавши, серед іншого, підтримку просторів імен C++, даних allocatable у Fortran 90 та додаткових методів оптимізації компілятора.

Комітет DWARF опублікував версію 4 DWARF, яка пропонує «покращене стиснення даних, кращий опис оптимізованого коду та підтримку нових мовних можливостей у C++», у 2010 році.[4]

Версію 5 формату DWARF було опубліковано в лютому 2017 року.[5][6] Вона «містить удосконалення в багатьох областях: краще стиснення даних, відокремлення даних налагодження від виконуваних файлів, покращений опис макросів і вихідних файлів, швидший пошук символів, покращене налагодження оптимізованого коду, а також численні покращення функціональності та продуктивності».

Інструменти

[ред. | ред. код]

Libdwarf — це бібліотека, яка надає доступ до інформації для налагодження DWARF у виконуваних та об'єктних файлах.[7]

elfutils містить інструменти для роботи із секціями ELF, наприклад для об'єднання інформації для налагодження у файл або її виділення в окремий файл.

Примітки

[ред. | ред. код]
  1. 1 2 3 Michael J. Eager (Квітень 2012). Introduction to the DWARF Debugging Format (PDF). Процитовано 8 січня 2015.
  2. ↑ Debugging Options (Using the GNU Compiler Collection (GCC)). gcc.gnu.org.
  3. ↑ DWARF Version 3 Standard Released (Пресреліз). Free Standards Group. 4 січня 2006. Архів оригіналу за 25 липня 2011. Процитовано 25 червня 2007.
  4. ↑ DWARF Version 4 Released. The DWARF committee. 16 червня 2010. Архів оригіналу за 30 липня 2020. Процитовано 24 червня 2010.
  5. ↑ DWARF Version 5 Standard Released. The DWARF committee. 15 лютого 2017. Процитовано 7 серпня 2017.
  6. ↑ DWARF 5 Standard. The DWARF committee. 15 лютого 2017. Процитовано 7 серпня 2017.
  7. ↑ libdwarf: A Consumer Library Interface to DWARF. www.prevanders.net. Процитовано 6 грудня 2023.

Посилання

[ред. | ред. код]