5

インクルードされたヘッダーファイル内でプロトタイプが宣言されている関数呼び出しを指すカーソルがあります。そのような宣言の場所を取得したいのですが、以下のgdb出力に示されているように、関数呼び出しの型を取得した後、宣言型のカーソルを取得できません。正しく取得するにはどうすればよいですか。

(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

関連するすべてのソースコードは次のとおりです。

4

1 に答える 1

3

ああ、私の悪い、clang_getCursorReferenced代わりに使用する必要がありました...関数の型を宣言する場所がありません!関数宣言を探す必要があります。

固定コード

于 2012-12-09T21:25:38.733 に答える