gpt4 book ai didi

llvm - 使用libclang,如何在函数调用时获取游标声明类型的游标?

转载 作者:行者123 更新时间:2023-12-04 20:48:10 25 4
gpt4 key购买 nike

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

这是所有相关的源代码:
  • lab.cpp
  • mickey.cpp
  • minnie.h
  • minnie.cpp
  • 最佳答案

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

    Fixed Code

    关于llvm - 使用libclang,如何在函数调用时获取游标声明类型的游标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13789814/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com