From: Douglas Gregor Date: Fri, 10 Dec 2010 01:45:00 +0000 (+0000) Subject: Extend libclang debugging output for clang_getCursor() to show the definition we... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0aefbd8d6a82fe8f70ec92871ea42fa5240a960f;p=clang Extend libclang debugging output for clang_getCursor() to show the definition we found git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121451 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp index d85e801d38..a74a7a9895 100644 --- a/tools/libclang/CIndex.cpp +++ b/tools/libclang/CIndex.cpp @@ -3130,6 +3130,24 @@ CXCursor clang_getCursor(CXTranslationUnit TU, CXSourceLocation Loc) { clang_disposeString(ResultFileName); clang_disposeString(KindSpelling); clang_disposeString(USR); + + CXCursor Definition = clang_getCursorDefinition(Result); + if (!clang_equalCursors(Definition, clang_getNullCursor())) { + CXSourceLocation DefinitionLoc = clang_getCursorLocation(Definition); + CXString DefinitionKindSpelling + = clang_getCursorKindSpelling(Definition.kind); + CXFile DefinitionFile; + unsigned DefinitionLine, DefinitionColumn; + clang_getInstantiationLocation(DefinitionLoc, &DefinitionFile, + &DefinitionLine, &DefinitionColumn, 0); + CXString DefinitionFileName = clang_getFileName(DefinitionFile); + fprintf(stderr, " -> %s(%s:%d:%d)\n", + clang_getCString(DefinitionKindSpelling), + clang_getCString(DefinitionFileName), + DefinitionLine, DefinitionColumn); + clang_disposeString(DefinitionFileName); + clang_disposeString(DefinitionKindSpelling); + } } return Result;