Skip to content

revng-project-artifact#

NAME#

revng project artifact - Produce an artifact.

SYNOPSIS#

revng project artifact ARTIFACT [OPTIONS] [OBJECTS] [-- PIPEBOX ARGS...]

DESCRIPTION#

This command is a subcommand of revng project.

Produces the artifact ARTIFACT from the project in the current directory.

Run without arguments to list all the available artifacts.

OBJECTS is a single comma-separated list of objects to produce. If omitted, all the available objects are produced. Each object can be given as:

  • a full location, e.g. /function/0x401000:Code_x86_64;
  • a bare key, e.g. 0x401000:Code_x86_64 (interpreted within the artifact's kind);
  • its name, e.g. Sum;
  • its automatic name, e.g. function_0x401000_Code_x86_64.

Use --list to see the available objects together with their names.

ARTIFACT is a subcommand: run revng project artifact --help to list the available artifacts. The documentation describes what an artifact is and the available artifacts.

The project must have been created with revng project init first, so that a revng.yml is present in the working directory.

OPTIONS#

--list : List the available objects for the artifact and then exit.

-o FILE : Path to write the computed artifact to. If not specified, the result is printed to standard output.

--format [auto|tar|yaml] : Select the output format. Defaults to auto, which emits a lone object raw (with no wrapping) and otherwise behaves like yaml. With yaml the artifact is emitted as a YAML dictionary object -> data, where data is text data if the artifact's MIME is textual or a Base64 encoding if it is binary. --tar emits a plain (uncompressed) tar without any transformation of the data.

--yaml : Shortcut for --format yaml.

--tar : Shortcut for --format tar.

--debug RUNNER_CONTEXT : Run the command in debug mode, recording each pipeline step under the given directory. See revng-common.

--help-full : Show the help including the hidden artifacts and per-pipe --*-configuration options, then exit.

This command supports the developer wrapper options and pipebox arguments.

EXAMPLES#

Produce the decompiled code, saving the result to decompiled.c.yml:

revng project artifact emit-c-as-single-file -o decompiled.c.yml

Disassemble a single function and print it to standard output, addressing it by key or by name:

revng project artifact disassemble 0x401000:Code_x86_64
revng project artifact disassemble Sum

SEE ALSO#

revng-project, revng-project-analyze, revng-project-init