跳至主要内容

query decompile

[底层实现] 从 .qlo 文件读取已编译查询的中间表示。

谁可以使用此功能?

CodeQL 可用于以下类型的代码库

本文内容

此内容描述了 CodeQL CLI 的最新版本。有关此版本的更多信息,请参阅 https://github.com/github/codeql-cli-binaries/releases

要查看早期版本中此命令可用选项的详细信息,请在终端中使用 --help 选项运行该命令。

概要

Shell
codeql query decompile [--output=<file>] <options>... -- <file>

描述

[底层实现] 从 .qlo 文件读取已编译查询的中间表示。

除非指定了--output选项,否则代码将写入标准输出。

选项

主要选项

<file>

[必填] 要从中读取的 QLO 文件。

-o, --output=<file>

要将所需输出写入的文件。

--kind=<kind>

要读取的中间表示的类型。选项包括:

dil:Datalog 中间表示。

ra:关系代数中间表示。查询评估阶段使用此表示。

bytecode:显示来自 .qlo 文件的原始(未压缩)字节码。主要用于调试编译器/评估器。

如果查询使用--include-dil-in-qlo编译,则默认为dil;否则为ra

常用选项

-h, --help

显示此帮助文本。

-J=<opt>

[高级] 向运行命令的 JVM 提供选项。

(注意,包含空格的选项将无法正确处理。)

-v, --verbose

逐步增加打印的进度消息数量。

-q, --quiet

逐步减少打印的进度消息数量。

--verbosity=<level>

[高级] 将详细程度显式设置为错误、警告、进度、进度+、进度++、进度+++ 之一。覆盖-v-q

--logdir=<dir>

[高级] 将详细日志写入给定目录中的一个或多个文件中,生成的名称包括时间戳和正在运行的子命令的名称。

(要写入名称完全受您控制的日志文件,请改为使用--log-to-stderr并根据需要重定向 stderr。)

--common-caches=<dir>

[高级] 控制磁盘上缓存数据的存储位置,这些数据将在 CLI 的多次运行之间持久存在,例如下载的 QL 包和已编译的查询计划。如果未显式设置,则默认为用户主目录中名为.codeql的目录;如果该目录不存在,则会创建它。

v2.15.2版本起可用。