1

我对 CLang 和 Libtooling 比较陌生。我想在终端上显示源代码中的一行。我在RecursiveASTVisitor中有一个 *VisitFunctionDecl(FunctionDecl func)。对于每个函数,我得到SourceRange并从中得到SourceLocation。但我不明白如何显示。我有事要做

4

1 回答 1

0

您需要 FullSourceLoc:

    FullSourceLoc functionDeclFullLocation = Context->getFullLoc(func.getLocStart());
    if (functionDeclFullLocation.isValid())
        llvm::outs() << "Found FunctionDecl at "
        << functionDeclFullLocation.getManager().getFilename(functionDeclFullLocation) << ":"
        << functionDeclFullLocation.getSpellingLineNumber() << ":"
        << functionDeclFullLocation.getSpellingColumnNumber() << "\n";
于 2018-07-05T18:25:26.990 回答