2012-12-09 3 views
5

프로토 타입이 포함 된 헤더 파일 내에서 선언 된 함수 호출을 가리키는 커서가 있습니다. 그런 선언을위한 위치를 얻고 싶지만, gdb 출력에서 ​​볼 수 있듯이, 함수 호출을위한 타입을 얻은 후에, 선언 타입에 대한 커서를 얻는 것이 실패했다. 여기 libclang에서 함수 호출시 커서의 선언 유형에 커서를 가져 오는 방법은 무엇입니까?

(gdb) n 
66  CXType mickey_type = clang_getCursorType(mickey_cursor); 
(gdb) n 
67  CXCursor mickey_decl_cursor = clang_getTypeDeclaration(mickey_type); 
(gdb) n 
68  CXSourceLocation mickey_decl_location = clang_getCursorLocation(mickey_decl_cursor); 
(gdb) p mickey_type 
$1 = { 
    kind = CXType_FunctionProto, 
    data = {0x102826cb0, 0x100a03d90} 
} 
(gdb) print mickey_decl_cursor 
$2 = { 
    kind = CXCursor_NoDeclFound, 
    xdata = 0, 
    data = {0x0, 0x0, 0x0} 
} 
(gdb) q 

는 모든 관련 소스 코드입니다 :

답변

3

바하, 내 나쁜, 내가해야 대신 clang_getCursorReferenced을 사용했습니다 ... 함수 유형의 선언을위한 위치가 없습니다! 나는 함수 선언을 찾아야 만한다.

Fixed Code