【问题标题】:With libclang, how to get cursor for declaration type of a cursor at function call?使用libclang,如何在函数调用时获取游标声明类型的游标?
【发布时间】:2012-11-27 05:00:59
【问题描述】:

我有一个光标指向一个函数调用,该函数调用的原型在包含的头文件中声明。我想获取此类声明的位置,但是从下面的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

这里是所有相关的源代码:

【问题讨论】:

    标签: llvm clang libclang


    【解决方案1】:

    呸,我的错,我应该改用clang_getCursorReferenced... 函数类型的声明没有位置!我必须寻找函数声明。

    Fixed Code

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 2013-12-27
      • 2014-06-18
      • 2014-03-06
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多