2013-03-04 2 views
2

누구든지 GCC에서 생성 된 디버그 정보를 조작하는 방법을 알고 있습니다. 특히, 디버그 정보에서 지역 변수 "A"의 크기를 찾고 있는데, 거기에서 파생시킬 수 있습니까?디버그 정보 조작

로컬 변수가 표시되지 않습니다.

섹션 .debug_info 및 기타 관련 디버그 섹션에서 objdump에 의해 생성 된 데이터를 조작하는 방법에 대한 온라인 정보가 많지 않았습니다. objdump는 어셈블리 바이너리와 어떻게 관련이 있는지 모르는 어셈블리 코드를 보여줍니다.

이 주제에 대한 자세한 내용은 링크를 참조하십시오. 디버그 정보를 얻는 방법을 알고 있지만 거기에있는 데이터를 이해하지 못합니다.

+0

GCC는 여러 가지 디버깅 형식을 출력 할 수 있으므로 DWARF 디버깅 형식은 잘 설명되어 있습니다. – harold

답변

3

objdump -W 또는 readelf -w 파일에서 DWARF 디버깅 정보를 표시합니다 (있는 경우). 처음에는 출력물이 다소 무서운 것처럼 보일 수 있지만 필요로하는 정보는 거기에 있습니다. 목록에 익숙하지 않은 용어가 있는지 DWARF spec에서 확인하는 것이 도움이 될 수 있습니다.

프로그래밍 방식으로 추출해야하는 경우 Libdwarf을 확인하십시오.

관련 문제