GCC ARM 크로스 컴파일러 (arm-none-eabi-*
)를 사용하고 있으며 독점 디버거를 사용하고 있습니다. 디버거는 선택한 소스 행에 대한 결과 어셈블리를 강조 표시 할 수 있습니다. nm 및 objdump를 사용하면 이진 파일에 두 개 이상의 .debug_*
섹션이 있음을 알 수 있습니다. 디버거가이 섹션에 포함 된 정보를 사용하여 소스 행을 디스 어셈블리에 매핑한다는 결론을 내릴 수 있습니다 (반대의 경우도 마찬가지 임). 하지만 어떻게하고 싶습니다. 이 섹션에 포함 된 정보, 정보의 관련성 및 정보를 이해하는 방법에 대해 알고 싶습니다. 간단히 말해, 디버거 (또는 적어도 이러한 매핑을 표시 할 수있는 도구 : 소스를 디스 어셈블리로, 다시 소스 행당 디스 어셈블리 행 수)를 작성하는 경우 섹션을 읽고 사용하는 방법은 무엇입니까? . 제로 컴파일 최적화를 가정합니다.GCC 디버그 정보
아마도이 섹션의 형식을 설명하는 문서가 있습니까?
[DWARF] (http://en.wikipedia.org/wiki/DWARF)? – Offirmo