Ho un cursore che punta a una chiamata di funzione per la quale il prototipo è dichiarato all'interno di un file di intestazione incluso. Voglio ottenere la posizione per tale dichiarazione, ma come si può vedere nell'output gdb qui sotto, dopo aver ottenuto il tipo per la chiamata della funzione, ottenere il cursore per il tipo di dichiarazione non riesce, come farlo correttamente?Con libclang, come ottenere il cursore per il tipo di dichiarazione di un cursore alla chiamata di funzione?
(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
Ecco tutto il codice sorgente relativo: