2009-12-10 2 views
3

실행시 열거 형 값을 이름에 매핑 할 수 있습니까? (저는 GCC로 구축하고 있습니다.)C++에서 열거 형 값을 문자열로 매핑

GDB는이를 수행 할 수 있으며, 디버깅 데이터로는 이식성이없고 무언가를 기꺼이 사용할 수 있습니다.


편집 : 나는 원래 열거 선언을 수정이 필요하거나 매핑 기능의 모든 값을 복사 손으로하지 않는 솔루션을 찾고 있어요. 나는 이미 그 두 가지 방법을 알고 있습니다.

효과적으로; GDB가 런타임 enum 값을 포맷 할 때 어떤 기능을 수행하길 원하는 함수가 필요합니다.

+0

봅니다 여기 http://stackoverflow.com/questions/207976/how-to-easily-map 시작 -c-enums-to-strings 및 여기 http://stackoverflow.com/questions/201593/is-there-a-simple-script-to-convert-c-enum-to-string#201792 –

+0

재미있는 중지 무시 단어와 접미사 제목에있는 단어 중 하나를 제외하고 모두 첫 번째 링크와 일치하고 여전히 자동 검색에 나타나지 않았습니다. ... – BCS

+0

이고르 Oks : th 참조 된 질문/답변은 대체 enum 감속 스타일 또는 손으로 생성 된 함수를 중심으로 회전하는 것처럼 보입니다. 나는 이미 그 솔루션을 통해 작동하는 솔루션을 가지고있다. – BCS

답변

1

GCC 기호 정보를 활용하는 데 시간을 투자하지 않으려는 경우 gcc-xml은 열거 이름을 포함하여 재사용 가능한 XML 형식의 C++ 소스에 대한 정보를 제공합니다.

간단한 예 ...이 소스 :

enum E { 
    e1 = 1, 
    e2 = 42 
}; 

가된다 :

<GCC_XML> 
    <!-- ... --> 
    <Enumeration name="E"> 
    <EnumValue name="e1" init="1"/> 
    <EnumValue name="e2" init="42"/> 
    </Enumeration> 
    <!-- ... --> 
</GCC_XML> 
+0

XSLT에 재미를 더해서 내가 원하는 기능을 코드화 할 수 있어야합니다. 왝. – BCS

0

이 당신에게 도움이 될 수 있습니다 : 당신이 끈기가있는 경우

The "stabs" debug format

+0

그게 내가 찾는 도서관을 쓰는 녀석에게 유용 할거야. – BCS

+3

링크를 제공 할 때 링크 된 내용의 요약문 한 줄 이상을 제공하십시오. –

3

, 당신은, 열거 형의 소스 파일을 구문 분석 번역 기능을 생성하고 소스 코드에 추가하는 도구를 만들 수 있습니다. 더 많은 에너지를 사용하면 이것을 수행 할 Eclipse 및 Emacs와 같은 편집기 용 플러그인을 작성할 수 있습니다.

아마도 Perl 스크립트로 수행 할 수 있습니까?

+1

이전 작업에서 열거 형의 모든 반환 코드와 Perl 스크립트를 정의하여 오류가 발생했을 때 인쇄 할 수 있도록 문자열을 컴파일 할 수있는 파일을 만드는 데 상당히 철저한 시스템을 사용했습니다. 요즘에는 파이썬을 사용 하겠지만 Perl은 작업을 완료했습니다. –