2013-03-24 2 views
12

GCC 4.8은 DWARF4를 지원합니다. DWARF4와 DWARF2의 차이점은 사용자 관점에서 무엇인지 궁금합니다.GCC 4.8 DWARF4 대 DWARF2

GDB 관점에서 보겠습니다. DWARF4로 전환 할 때 사용자에게 어떤 차이가 있습니까?

나는 Dwarf Home 페이지를 찾았지만, 내가 알 수있는 한 사용자 POV와는 다른 웹 정보는 어디에도 없습니다.

그 차이점을 가르쳐 주시겠습니까?

+0

V3 및 V4에서 해결 된 문제 목록이 도움이 될 수 있습니다. C++ 11의 내용이 포함되어있는 것 같습니다. – PlasmaHH

+1

GCC의 이전 버전은 DWARF4도 지원합니다. 유일한 차이점은 4.8의 기본값입니다. 나는 GCC 4.7에서 -gdwarf-4 컴파일러 플래그를 사용하여 DWARF4를 언젠가 사용하고 있습니다. – Cromulent

+0

@Cromulent 당신은 내 실수 야,하지만 나는 그 질문이 여전히 유효하다고 생각한다. +1 당신을 위해 :) – CyberGuy

답변

3

페이지의 Dwarf 4 standard 페이지에 주요 개선 사항이 나열되어 있으며, 사양에서 이에 대해 자세히 설명합니다.

대부분의 사용자에 대한 결론이 더 최적화 된 코드에 대한 지원, (대부분 드워프 3) 더 많은 언어에 대한 지원, 새로운 C에 대한 지원 될 것으로 보인다 ++ 언어는 DWARF의 첫 번째 버전은 과도하게 사용하는 입증

+0

그건 정확히 내가 그 문서에서 발견, 지금은 거기에 어떤 실질적인 예제 또는 사용자의 관점에서 그것을 설명하는 모든 소스가 궁금 해서요. "사용자가 DWARF2에서 DWARF4로 전환 할 때 무엇이 ​​변경되는지 확인할 수있는 방법" – CyberGuy

+2

@CyberGuy'DWARF2'에서'DWARF4'로 전환하면 디버그 바이너리가 훨씬 작아집니다. 바로 사용자가 볼 수있는 첫 번째 변경 사항입니다. –

5

구축 DWARF 버전 4에서 향상된 데이터 압축, 최적화 된 코드에 대한 설명 및 C++의 새로운 언어 기능 지원을 제공하는 DWARF 버전 4에서 데이터 크기를 줄이기 위해 다양한 인코딩 스키마를 추가했습니다.

보통의 릴리스 또는 anouncement가 이러한 차이를 요약 (더 많은있을 것입니다)

http://dwarfstd.org/Announcement.php

http://dwarfstd.org/PressRelease.php

1

내가 GDB의 모든 버전이 제대로 dwarf4 읽을 수 추가하고 싶습니다 . 나는 종종 모든 기호를 볼 수 있도록 -gdwarf-2으로 컴파일하는 것을 찾는다. 예를 들어 gdb 7.2에서는 dwarf4를 사용하면 혼합 된 Fortran-C 빌드의 모든 심볼을 읽을 수없고 dwarf2를 사용할 수는 있습니다.