1
0
mirror of synced 2025-12-20 10:28:40 -05:00
Files
docs/content/code-security/codeql-cli/codeql-cli-manual/query-decompile.md
2023-06-12 08:11:20 -07:00

100 lines
2.2 KiB
Markdown

---
title: query decompile
versions:
fpt: '*'
ghae: '*'
ghec: '*'
ghes: '*'
topics:
- Advanced Security
- Code scanning
- CodeQL
type: reference
product: '{% data reusables.gated-features.codeql %}'
autogenerated: codeql-cli
intro: |-
[Plumbing] Read an intermediate representation of a compiled query
from a .qlo file.
redirect_from:
- /code-security/codeql-cli/manual/query-decompile
---
<!-- Content after this section is automatically generated -->
{% data reusables.codeql-cli.man-pages-version-note %}
## Synopsis
```shell copy
codeql query decompile [--output=<file>] <options>... -- <file>
```
## Description
\[Plumbing] Read an intermediate representation of a compiled query
from a .qlo file.
The code will be written to standard output, unless the `--output`
option is specified.
## Primary options
#### `<file>`
\[Mandatory] QLO file to read from.
#### `-o, --output=<file>`
The file to write the desired output to.
#### `--kind=<kind>`
The kind of the intermediate representation to read. The options are:
`dil`: A Datalog intermediate representation.
`ra`: A relational algebra intermediate representation. This is used by
the query evaluation phase.
`bytecode`: Show the raw (uncompressed) bytecode from the .qlo file.
Mostly useful for debugging the compiler/evaluator.
The default is `dil` if the query was compiled with
`--include-dil-in-qlo` and `ra` otherwise
### Common options
#### `-h, --help`
Show this help text.
#### `-J=<opt>`
\[Advanced] Give option to the JVM running the command.
(Beware that options containing spaces will not be handled correctly.)
#### `-v, --verbose`
Incrementally increase the number of progress messages printed.
#### `-q, --quiet`
Incrementally decrease the number of progress messages printed.
#### `--verbosity=<level>`
\[Advanced] Explicitly set the verbosity level to one of errors,
warnings, progress, progress+, progress++, progress+++. Overrides `-v`
and `-q`.
#### `--logdir=<dir>`
\[Advanced] Write detailed logs to one or more files in the given
directory, with generated names that include timestamps and the name of
the running subcommand.
(To write a log file with a name you have full control over, instead
give `--log-to-stderr` and redirect stderr as desired.)