2012-12-09 45 views
5

Tôi có một con trỏ trỏ đến một cuộc gọi hàm mà nguyên mẫu được khai báo bên trong một tệp tiêu đề được bao gồm. Tôi muốn lấy vị trí cho khai báo như vậy, nhưng như có thể thấy trong đầu ra gdb dưới đây, sau khi nhận được kiểu cho cuộc gọi hàm, việc lấy con trỏ cho kiểu khai báo là không thành công, làm thế nào để có được nó đúng?Với libclang, làm thế nào để có được con trỏ cho kiểu khai báo của một con trỏ tại cuộc gọi hàm?

(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 

Dưới đây là tất cả các mã nguồn có liên quan:

Trả lời

3

bah, xấu của tôi, tôi có nên có đã sử dụng clang_getCursorReferenced thay thế ... không có vị trí nào cho việc khai báo loại chức năng! Tôi phải tìm bản khai báo hàm.

Fixed Code

Các vấn đề liên quan