2014-07-15 5 views
2

디버깅 정보 (gcc -g)를 사용하여 프로그램을 빌드하면 gdb이 함수 내부의 로컬 변수 주소를 알 수 있습니다. 따라서 디버깅 기호에는이를 계산할 수있는 충분한 정보 (예 : ebp의 오프셋)가 있어야하며 gdb은 디버그 기호를 읽는 데 libbfd을 사용하므로이 또한 가능해야합니다.디버깅 기호에서 스택 오프셋 가져 오기

그러나 libbdf의 설명서에는 아무런 문제가없는 것으로 보입니다. 수이 정보를 libbfd 줄 수 있습니까?

답변

2

libbfd은 파일을 열고 섹션의 내용에 액세스 할 수 있지만이 내용을 해석하는 것은 libbfd이 아니라 응용 프로그램이 수행해야하는 작업입니다.

일반적으로 디버깅 정보는 DWARF을 사용하여 인코딩됩니다.

interpreting DWARF에 대한 라이브러리가 있지만 gdb에는 parsing DWARF의 코드가 포함되어 있습니다.

+0

'libdwarf'가 잘 작동했습니다. 감사! – 0xFE