2016-06-04 12 views
0

나중에 해당 유형을 다시 작성자로 사용하기 위해 호출 표현식에서 인수 유형을 가져 오려고합니다. 나는이 프로그램을 실행할 때cant가 callExpr 인수의 유형을 얻지 못했습니다.

const clang::Expr *const *FuncArgs = CallExpress.getArgs(); 

std::string QTString = FuncArgs[0]->getType().getBaseTypeIdentifier()->getName().str(); 

, 그것은 컴파일과 잘 연결하지만 난 그것을 실행할 때 다음 나는 segmentaion 오류를 얻을 : 여기에 내가 무슨입니다. getName으로 전화하면이 세분화 오류가 발생합니다. 내 질문이 먼저 무엇입니까? 그리고 만약 내가이 문제에 관해서 말한다면. callExpr의 인수에서 QT를 얻는 다른 방법이 있습니까?

+0

'getBaseTypeIdentifier'는'nullptr'을 반환 할 가능성이 높습니다. 이는 segfault로 연결됩니다. – AlexDenisov

+0

다시 확인했습니다. getName도 괜찮습니다. 문제는 "str"을 호출하여 StringRef를 문자열로 변환 할 때 시작됩니다. – bloodstalker

답변

0

나는 결국 대답을 발견했다. getType을 호출 한 다음 getAsString으로 전화하여 원래 질문의 문자가 이미 FuncArgs 인 경우 문자열을 입력하십시오.