2012-10-23 4 views
0

GCC 4.7.2를 사용하고 있습니다. 내 코드는 템플릿, STL 및 boost 사용법에 대해 다소 무겁습니다. 컴파일 할 때 일부 클래스 또는 함수에서 파생되거나 일부 부스트/STL 기능을 사용하는 오류가 발생하면 클래스/함수에 대한 끔찍한 끔찍한 반환 형식 및/또는 함수 인수를 나타내는 오류 메시지가 표시됩니다.GCC 에러 메시지를위한 멋진 프린트

내 질문 : 오류 메시지에 표시된 반환 형식이 일치하도록

부스트/STL 형을 포함한 GCC 경고/오류 일의 prettyprint 유형 I 코드에 입력 한 것과, 거기에 , 또는 적어도, 더 이해할 수있게 되었습니까? 나는 간단히 this question을 통해 미끄러 져 가지고

하지만, 그 ... 오히려 GCC보다 GDB에 대해 나는 또한 this pretty printer in Haskell 건너 한

이지만, 그것은 단지 대부분 (빼앗아, 구조를하지 추가 할 것) 불필요한 세부 사항 ...

다른 제안 사항이 있습니까?

+0

시도해 볼 수 있습니다 stlfilt - http://c2.com/cgi/wiki?StlFilt – mark

답변

2

David Abrahms의 'C++ Template Metaprogramming'& Alesky Gurtovoy에서 설명한대로 STLfilt을 시도해 볼 수 있습니다.

이 책에는 템플릿 메시지 진단에 대한 장이 포함되어 있습니다. 단순화 된 출력을 얻기 위해 STLFilt /showback:N을 사용하여 컴파일러 역 추적 자료를 제거 할 것을 제안합니다.

+0

Neat! 그래도 STL 전용 인 것처럼 보이므로, 표준 디스플레이보다 확실히 좋습니다. –

2

나는 similar question에게 물었습니다. 누군가 gccfilter을 제안했습니다. g ++의 출력을 다시 포맷하고 색상을 지정하고 단축하고 전체 경로 이름을 숨기는 Perl 스크립트입니다.

실제로이 제안은이 질문에 대한 답변으로 불필요한 세부 사항을 숨기고 STL 및 부스트 유형 모두를 예쁜 인쇄 할 수 있습니다. So : 나는 이것을 대답으로 여기에서 남겨 둘 것이다.

내가 볼 수있는 유일한 단점은 스크립트 내에서 g ++을 호출해야한다는 것입니다 (즉, 파이핑은 그 시점에서 가능하지 않습니다). 나는 그것이 쉽게 고쳐 졌다고 생각한다. 그리고 어쨌든 그것은 비교적 사소한 문제 다.

+0

재미있는 소리 나는 그것을 보아 줄 것이다, 건배 – mark

+0

스크립트가 사용하고있는 패키지 중 하나는 더 이상 존재하지 않는다 ..이 웹 페이지에 주어진 해당 링크는 유효하지 않다. – user8385554