STL C++ 0x 컨테이너 (toolchain은 GCC 4.7.0)로 일부 C++ 파서를 디버깅합니다.인스턴스화 체인 인쇄
STL 리 바인딩 코드는 거의 이해할 수 없기 때문에 std::vector<T>::reference
과 같은 typedef에 대한 인스턴스화의 전체 체인을 인쇄해야합니다. 물론 T&
으로 끝나기도하지만 __gnu_cxx
및 다른 내부에서 적어도 7 개의 다른 템플릿을 통과하기 전에 해결됩니다.
그래서 템플릿 오류의 경우 인쇄되는 것과 같은 것을 기대하지만, 의 경우 모든 클래스는 컴파일러에 의해 인스턴스화됩니다. 가능합니까? GCC 플러그인, 아마도 ...
UPD : 필요한 모든 템플릿을 수동으로 인스턴스화했습니다. 일부 디버그 printf 문을 GCC 코드 자체에 삽입하는 것을 제외하고는 자동으로이를 수행하는 좋은 방법이없는 것 같습니다.
당신은 STLFilt을 시도해 봤어 :? 원래 템플릿 인스턴스 생성 관련 오류 (그리고 '개념'이전에는 - 아직 표준에 포함되지는 않았지만) 작업을 돕기 위해 개발되었지만, 그럴 가치가 있습니다. 액티브 개발이 잠시 중단 된 이후로 C++ 11 특정 변경 사항이 있다고 생각하지 않습니다. 그렇지 않으면, 당신은 자신의 템플릿 컴파일러를 작성해야합니다. –
dirkgently
소스에서 GCC를 빌드 했습니까? 디버깅 덤프 옵션을 많이 생각한 것 같고 모든 템플릿 인스턴스화에 대한 상태 메시지를 얻을 수 있습니다. 드라이버를 우회하는 것이 포함될 수도 있습니다. – Potatoswatter