跳至主要内容

探索源代码的结构

您可以使用 AST 查看器显示 CodeQL 数据库的抽象语法树。

关于抽象语法树

程序的抽象语法树 (AST) 表示程序的语法结构。AST 上的节点表示语句和表达式等元素。CodeQL 数据库通过数据库模式对这些程序元素及其之间的关系进行编码。有关数据库模式的更多信息,请参阅 CodeQL 文档中的CodeQL 词汇表

Visual Studio Code 的 CodeQL 包含一个 AST 查看器。该查看器包含一个图形可视化视图,允许您探索 CodeQL 数据库中文件的 AST。这有助于您了解哪些 CodeQL 类对应于源文件的哪些部分。

查看源文件的抽象语法树

注意

如果您在工作区中没有合适的查询(通常为printAST.ql),则以下步骤中的**CodeQL:查看 AST**命令将不起作用。要解决此问题,您可以从main分支更新您的github/codeql存储库副本。如果您这样做,查询缓存可能会被丢弃,因此您的下一次查询运行可能会更慢。

  1. 在扩展程序中打开“数据库”视图,然后右键单击要浏览的数据库。单击**将数据库源添加到工作区**。

  2. 在文件资源管理器中导航到 CodeQL 数据库的源文件。

  3. 从 VS Code 命令面板运行**CodeQL:查看 AST**。这会在活动文件上运行 CodeQL 查询(通常称为printAST.ql),可能需要几秒钟。查询完成后,AST 查看器将显示源文件的结构。

  4. 要查看源文件的嵌套结构,请单击箭头并展开节点。

您可以单击 AST 查看器中的节点以跳转到源代码中的该节点。相反,如果您单击源代码的一部分,则 AST 查看器将显示相应的节点。