2013-03-11 2 views
4

C 매크로 (매크로의 중첩 매크로)를 광범위하게 사용하는 응용 프로그램을 디버깅하려고합니다. "선언되지 않은 식별자 사용"오류를 제공합니다.LLDB 디버거 - C 매크로를 평가하는 방법?

LLDB 디버거를 올바르게 인식하고 평가할 수있는 방법이 있습니까? 매크로를 직접 분해하고 전체 표현식을 작성할 수는 있지만 매우 지루하고 오류가 발생하기 쉽습니다.

답변

1

불행히도 이것은 컴파일러에서 매크로에 대한 디버그 정보를 얻지 못하기 때문에 발생하지 않습니다. 선 처리기가 수행 한 후에 매크로가 사라지기 때문에 컴파일러에서 소스 코드를 기계 코드로 변환하기 전에 의미가 있습니다.

+0

그래, 매크로 정보는 clang의 디버그 정보에 나타나지 않습니다. (이미 큰) 디버그 정보에 더 많은 데이터를 추가합니다. 나는 gcc의 일부 버전이 DWARF에서 방출되고 있다고 생각한다. lldb가 프로그램에서 돌아갈 때, 매크로와'#defined'는 전혀 사용할 수 없습니다. –

관련 문제