Skip to main content

database trace-command

[Plomberie] ExĂ©cute une seule commande dans le cadre d’une build tracĂ©e.

Qui peut utiliser cette fonctionnalité ?

CodeQL est disponible pour les types de rĂ©fĂ©rentiels suivants :

Remarque

Ce contenu dĂ©crit la version la plus rĂ©cente de CodeQL CLI. Pour plus d’informations sur cette version, consultez https://github.com/github/codeql-cli-binaries/releases.

Pour voir les dĂ©tails des options disponibles pour cette commande dans une version antĂ©rieure, exĂ©cutez la commande avec l’option --help dans votre terminal.

Synopsis

Shell
codeql database trace-command [--threads=<num>] [--ram=<MB>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database> <command>...

Description

[Plomberie] ExĂ©cute une seule commande dans le cadre d’une build tracĂ©e.

Cette commande exécute une seule ligne de commande donnée sous un traceur, donc effectue éventuellement une extraction, mais ne finalise pas la base de données CodeQL résultante.

Options

Options principales

<database>

[Obligatoire] Chemin de la base de donnĂ©es CodeQL en cours de construction. Doit avoir Ă©tĂ© prĂ©parĂ© pour l’extraction avec codeql database init.

Si l’option --db-cluster est donnĂ©e, il ne s’agit pas de la base de donnĂ©es elle-mĂȘme, mais d’un rĂ©pertoire qui contient des bases de donnĂ©es, et toutes ces bases de donnĂ©es sont traitĂ©es ensemble.

<command>...

Commande Ă  exĂ©cuter. Peut se composer d’un ou plusieurs arguments qui sont utilisĂ©s pour crĂ©er le processus. Il est recommandĂ© de passer l’argument « -- Â» avant de lister les arguments de la commande afin d’éviter toute confusion entre ses arguments et les nĂŽtres.

La commande doit quitter avec un code d’état de 0. Tout autre code de sortie est interprĂ©tĂ© comme un Ă©chec.

La commande peut ĂȘtre omise quand --index-traceless-dbs est fourni.

-j, --threads=<num>

Demande Ă  l’extracteur d’utiliser le nombre de threads spĂ©cifiĂ©. Cette option est passĂ©e Ă  l’extracteur en tant que suggestion. Si la variable d’environnement CODEQL_THREADS est dĂ©finie, la valeur de la variable d’environnement est prioritaire sur cette option.

Vous pouvez passer 0 pour utiliser un thread par cƓur sur la machine ou -N pour laisser N cƓurs inutilisĂ©s (sauf si au moins un thread est toujours utilisĂ©).

-M, --ram=<MB>

Demande Ă  l’extracteur d’utiliser la quantitĂ© de mĂ©moire spĂ©cifiĂ©e. Cette option est passĂ©e Ă  l’extracteur en tant que suggestion. Si la variable d’environnement CODEQL_RAM est dĂ©finie, la valeur de la variable d’environnement est prioritaire sur cette option.

--[no-]db-cluster

Indique que le rĂ©pertoire donnĂ© sur la ligne de commande n’est pas la base de donnĂ©es elle-mĂȘme, mais un rĂ©pertoire qui contient une ou plusieurs bases de donnĂ©es en cours de construction. Ces bases de donnĂ©es sont traitĂ©es ensemble.

--no-tracing

[AvancĂ©] Ne trace pas la commande spĂ©cifiĂ©e, mais l’utilise pour produire directement toutes les donnĂ©es nĂ©cessaires.

--extra-tracing-config=<tracing-config.lua>

[AvancĂ©] Chemin du fichier de configuration d’un traceur. Il peut ĂȘtre utilisĂ© pour modifier le comportement du traceur de build. Il peut ĂȘtre utilisĂ© pour sĂ©lectionner les processus du compilateur qui s’exĂ©cutent dans le cadre de la commande de build et dĂ©clencher l’exĂ©cution d’autres outils. Les extracteurs fournissent des fichiers de configuration de traceur par dĂ©faut qui devraient fonctionner dans la plupart des cas.

--[no-]index-traceless-dbs

En plus de la commande spĂ©cifiĂ©e, exĂ©cutez le script principal pour les extracteurs qui ne dĂ©pendent pas du traçage d’un processus de build. Si vous construisez des bases de donnĂ©es pour plusieurs langages avec --db-cluster, cette option doit ĂȘtre fournie Ă  exactement un appel de codeql database trace-command.

--[no-]use-build-mode

DĂ©terminez ce qu’il faut exĂ©cuter en fonction du mode de gĂ©nĂ©ration de la base de donnĂ©es. Cette option ne peut pas ĂȘtre utilisĂ©e avec --index-traceless-dbs.

--working-dir=<dir>

[AvancĂ©] RĂ©pertoire dans lequel la commande spĂ©cifiĂ©e doit ĂȘtre exĂ©cutĂ©e. Si cet argument n’est pas fourni, la commande est exĂ©cutĂ©e dans la valeur de --source-root passĂ©e Ă  codeql database create, le cas Ă©chĂ©ant. Si aucun argument --source-root n’est fourni, la commande est exĂ©cutĂ©e dans le rĂ©pertoire de travail actif.

--no-run-unnecessary-builds

[AvancĂ©] ExĂ©cute la ou les commandes de build spĂ©cifiĂ©es seulement si une base de donnĂ©es en cours de construction utilise un extracteur qui dĂ©pend du traçage d’un processus de build. Si cette option n’est pas donnĂ©e, la commande est exĂ©cutĂ©e mĂȘme si CodeQL n’en a pas besoin, en supposant que vous ayez besoin de ses effets secondaires pour d’autres raisons.

Options pour contrĂŽler le comportement des extracteurs

-O, --extractor-option=<extractor-option-name=value>

DĂ©finit les options pour les extracteurs CodeQL. extractor-option-name doit ĂȘtre de la forme extracteur_nom.groupe1.groupe2.option_nom ou groupe1.groupe2.option_nom. Si extractor_option_name commence par un nom d’extracteur, l’extracteur indiquĂ© doit dĂ©clarer l’option groupe1.groupe2.option_nom. Sinon, tout extracteur qui dĂ©clare l’option groupe1.groupe2.option_nom aura l’option dĂ©finie. value peut ĂȘtre n’importe quelle chaĂźne qui ne contient pas de nouvelle ligne.

Vous pouvez utiliser cette option de ligne de commande Ă  plusieurs reprises pour dĂ©finir plusieurs options d’extracteur. Si vous fournissez plusieurs valeurs pour la mĂȘme option d’extracteur, le comportement dĂ©pend du type attendu par l’option d’extracteur. Les options de chaĂźne utilisent la derniĂšre valeur fournie. Les options de tableau utilisent toutes les valeurs fournies, dans l’ordre. Les options d’extracteur spĂ©cifiĂ©es Ă  l’aide de cette option de ligne de commande sont traitĂ©es aprĂšs les options d’extracteur fournies via --extractor-options-file.

Lorsqu’elles sont passĂ©es Ă  codeql database init ou codeql database begin-tracing, les options sont appliquĂ©es uniquement Ă  l’environnement de traçage indirect. Si votre workflow effectue Ă©galement des appels Ă  codeql database trace-command, les options doivent Ă©galement y ĂȘtre passĂ©es si vous le souhaitez.

Consultez https://codeql.github.com/docs/codeql-cli/extractor-options pour plus d’informations sur les options d’extracteur CodeQL, notamment sur la façon de lister les options dĂ©clarĂ©es par chaque extracteur.

--extractor-options-file=<extractor-options-bundle-file>

SpĂ©cifie les fichiers de bundle d’options d’extracteur. Un fichier bundle d’options d’extracteur est un fichier JSON (extension .json) ou un fichier YAML (extension .yaml ou .yml) qui dĂ©finit les options de l’extracteur. Le fichier doit avoir la clĂ© de mappage de niveau supĂ©rieur « extractor Â» et, dessous, les noms d’extracteur en tant que clĂ©s de mappage de deuxiĂšme niveau. Les autres niveaux de mappage reprĂ©sentent les groupes d’extracteurs imbriquĂ©s, et les options de chaĂźne et de tableau sont des entrĂ©es de mappage avec des valeurs de chaĂźne et de tableau.

Les fichiers de bundle d’options d’extracteur sont lus dans l’ordre dans lequel ils sont spĂ©cifiĂ©s. Si des fichiers de bundle d’options d’extracteur diffĂ©rents spĂ©cifient la mĂȘme option d’extracteur, le comportement dĂ©pend du type attendu par l’option d’extracteur. Les options de chaĂźne utilisent la derniĂšre valeur fournie. Les options de tableau utilisent toutes les valeurs fournies, dans l’ordre. Les options d’extracteur spĂ©cifiĂ©es Ă  l’aide de cette option de ligne de commande sont traitĂ©es avant les options d’extracteur fournies via --extractor-option.

Lorsqu’elles sont passĂ©es Ă  codeql database init ou codeql database begin-tracing, les options sont appliquĂ©es uniquement Ă  l’environnement de traçage indirect. Si votre workflow effectue Ă©galement des appels Ă  codeql database trace-command, les options doivent Ă©galement y ĂȘtre passĂ©es si vous le souhaitez.

Consultez https://codeql.github.com/docs/codeql-cli/extractor-options pour plus d’informations sur les options d’extracteur CodeQL, notamment sur la façon de lister les options dĂ©clarĂ©es par chaque extracteur.

Options courantes

-h, --help

Affiche ce texte d’aide.

-J=<opt>

[AvancĂ©] Donne une option Ă  l’environnement JVM exĂ©cutant la commande.

(Attention, les options contenant des espaces ne sont pas gérées correctement.)

-v, --verbose

Augmente de façon incrémentielle le nombre de messages de progression affichés.

-q, --quiet

Diminue de façon incrémentielle le nombre de messages de progression affichés.

--verbosity=<level>

[Avancé] Définit explicitement le niveau de détail sur errors, warnings, progress, progress+, progress++ ou progress+++. Remplace -v et -q.

--logdir=<dir>

[AvancĂ©] Écrit des journaux dĂ©taillĂ©s dans un ou plusieurs fichiers du rĂ©pertoire donnĂ©, avec des noms gĂ©nĂ©rĂ©s qui incluent des horodatages et le nom de la sous-commande en cours d’exĂ©cution.

(Pour écrire un fichier journal avec un nom sur lequel vous avez un contrÎle total, donnez plutÎt --log-to-stderr et redirigez stderr comme vous le souhaitez.)

--common-caches=<dir>

[AvancĂ©] ContrĂŽle l’emplacement des donnĂ©es en cache sur le disque qui persisteront entre plusieurs exĂ©cutions de l’interface CLI, telles que les packs QL tĂ©lĂ©chargĂ©s et les plans de requĂȘte compilĂ©s. S’il n’est pas dĂ©fini explicitement, il s’agit par dĂ©faut d’un rĂ©pertoire nommĂ© .codeql dans le rĂ©pertoire de base de l’utilisateur. S’il n’existe pas dĂ©jĂ , il est créé.

Disponible depuis v2.15.2.