Skip to main content

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>

[詳細設定] 詳細レベルを、errors、warnings、progress、progress+、progress++、progress+++ のいずれかに明示的に設定します。 -v-q がオーバーライドされます。

--logdir=<dir>

[詳細設定] タイムスタンプと実行中のサブコマンドの名前を含む生成された名前を使用して、指定されたディレクトリ内の 1 つまたは複数のファイルに詳細なログを書き込みます

(完全に制御できる名前でログ ファイルを書き込むには、代わりに --log-to-stderr を指定し、必要に応じて stderr をリダイレクトします)。

--common-caches=<dir>

[[詳細設定] ダウンロードした QL パックやコンパイル済みクエリ プランなど、CLI の複数の実行間に保持される、ディスク上でキャッシュされたデータの場所を制御します。 明示的に設定されない場合、デフォルトではユーザーのホーム ディレクトリに名前が付けられた .codeql ディレクトリになります。まだ存在しない場合は作成されます。

v2.15.2 以降で使用できます。