# команда trace-command базы данных

\[Сантехника] Выполните одну команду в рамках трассировки сборки.

> \[!NOTE]
> Это содержимое описывает последний выпуск данных CodeQL CLI. Дополнительные сведения об этом выпуске см. в статье <https://github.com/github/codeql-cli-binaries/releases>.
>
> Чтобы просмотреть сведения о параметрах, доступных для этой команды в предыдущем выпуске, выполните команду с <span style="white-space: nowrap;">`--help`</span> параметром в терминале.

## Synopsis

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

## Description

```
          \[Сантехника] Выполните одну команду в рамках трассировки сборки.
```

При этом выполняется отдельная командная строка под трассировщиком, поэтому может выполняться некоторое извлечение, но не завершает полученную базу данных CodeQL.

## Options

### Основные параметры

#### `<database>`

```
          \[Обязательный] Путь к базе данных CodeQL в стадии разработки. Это должно быть подготовлено для извлечения с помощью [инициализации](/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-init) базы данных codeql.

          `--db-cluster` Если этот параметр задан, это не сама база данных, а каталог, _содержащий_ базы данных, и все эти базы данных будут обрабатываться вместе.
```

#### `<command>...`

Выполняемая команда Это может состоять из одного или нескольких аргументов, которые используются для создания процесса. Перед перечислением аргументов команды рекомендуется передать аргумент --, чтобы избежать путаницы между аргументами и нашими аргументами.

Ожидается, что команда завершится с кодом состояния 0. Любой другой код выхода интерпретируется как сбой.

Команда может быть опущена при `--index-traceless-dbs` указании.

#### `-j, --threads=<num>`

Попросите средства извлечения использовать это множество потоков. Этот параметр передается в средство извлечения в качестве предложения. Если задана переменная среды CODEQL\_THREADS, значение переменной среды имеет приоритет над этим параметром.

Вы можете передать 0 для использования одного потока на ядро на компьютере или -*N, чтобы оставить *неиспользуемые* ядра N* (за исключением того, что по-прежнему используется хотя бы один поток).

#### `-M, --ram=<MB>`

Попросите средство извлечения использовать эту большую память. Этот параметр передается в средство извлечения в качестве предложения. Если задана переменная среды ОЗУ CODEQL\_, значение переменной среды имеет приоритет над этим параметром.

#### `--[no-]db-cluster`

Указывает, что каталог, указанный в командной строке, не является самой базой данных, а каталогом, *который содержит* одну или несколько баз данных в стадии создания. Эти базы данных будут обрабатываться вместе.

#### `--no-tracing`

```
          \[Дополнительно] Не отслеживайте указанную команду, вместо этого используйте ее для создания всех необходимых данных напрямую.
```

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

```
          \[Дополнительно] Путь к файлу конфигурации трассировки. Его можно использовать для изменения поведения трассировщика сборки. Его можно использовать для выбора процессов компилятора, которые выполняются в рамках команды сборки, и активировать выполнение других средств. Средства извлечения предоставляют файлы конфигурации трассировщика по умолчанию, которые должны работать в большинстве случаев.
```

#### `--[no-]index-traceless-dbs`

Помимо указанной команды запустите основной скрипт для извлекателей, которые не зависят от трассировки процесса сборки. Если вы создаете базы данных для нескольких языков, `--db-cluster`этот параметр должен быть предоставлен ровно одному вызову команды trace-database codeql.

#### `--[no-]use-build-mode`

Определите, что нужно выполнить на основе режима сборки базы данных. Этот параметр нельзя использовать в сочетании с `--index-traceless-dbs`.

#### `--working-dir=<dir>`

```
          \[Дополнительно] Каталог, в котором должна выполняться указанная команда. Если этот аргумент не указан, команда выполняется в значении, переданном `--source-root`[в создание](/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-create) базы данных codeql, если она существует. Если аргумент не `--source-root` указан, команда выполняется в текущем рабочем каталоге.
```

#### `--no-run-unnecessary-builds`

```
          \[Дополнительно] Выполните только указанные команды сборки, если в базе данных в процессе сборки используется средство извлечения, зависящее от трассировки процесса сборки.
```

Если этот параметр не задан, команда будет выполнена даже в том случае, если CodeQL не нужен, предположим, что вам нужны побочные эффекты по другим причинам.

### Параметры управления поведением средства извлечения

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

Задайте параметры для средств извлечения CodeQL.
`extractor-option-name` должен иметь имя средства извлечения\_формы name.group1.group2.option\_или имя group1.group2.option\_. Если `extractor_option_name` начинается с имени средства извлечения, указанный метод извлечения должен объявить имя option group1.group2.option\_. В противном случае любой средство извлечения, объявляющее имя option group1.group2.option\_, будет иметь набор параметров.
`value` может быть любой строкой, которая не содержит новую строку.

Этот параметр командной строки можно использовать многократно для задания нескольких параметров извлечения. Если вы предоставляете несколько значений для одного и того же параметра извлечения, поведение зависит от типа, который ожидает параметр средства извлечения. Строковые параметры будут использовать последнее указанное значение. Параметры массива будут использовать все предоставленные значения в порядке. Параметры средства извлечения, указанные с помощью этого параметра командной строки, обрабатываются после использования `--extractor-options-file`параметров средства извлечения.

При передаче [в базу данных codeql инициализации](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-init) или `codeql database begin-tracing`параметры будут применяться только к среде косвенной трассировки. Если рабочий процесс также вызывает команду трассировки базы данных codeql, то при желании также необходимо передать параметры.

Дополнительные <https://codeql.github.com/docs/codeql-cli/extractor-options> сведения о параметрах средства извлечения CodeQL, включая перечисление параметров, объявленных каждым извлекателем.

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

Укажите файлы пакета параметров извлечения. Файл пакета параметров извлечения — это JSON-файл (расширение) или YAML-файл (расширение `.json``.yaml` или`.yml`), который задает параметры средства извлечения. Файл должен иметь ключ карты верхнего уровня "extractor" и, под ним, имена средств извлечения в качестве ключей карты второго уровня. Дополнительные уровни карт представляют вложенные группы средств извлечения, а параметры строки и массива — это записи сопоставления со значениями строк и массивов.

Файлы пакета параметров извлечения считываются в указанном порядке.
Если разные файлы пакета параметров извлечения указывают один и тот же параметр извлечения, поведение зависит от типа, который ожидает параметр средства извлечения. Строковые параметры будут использовать последнее указанное значение. Параметры массива будут использовать все предоставленные значения в порядке. Параметры средства извлечения, указанные с помощью этого параметра командной строки, обрабатываются перед использованием `--extractor-option`параметров средства извлечения.

При передаче [в базу данных codeql инициализации](/ru/code-security/reference/code-scanning/codeql/codeql-cli-manual/database-init) или `codeql database begin-tracing`параметры будут применяться только к среде косвенной трассировки. Если рабочий процесс также вызывает команду трассировки базы данных codeql, то при желании также необходимо передать параметры.

Дополнительные <https://codeql.github.com/docs/codeql-cli/extractor-options> сведения о параметрах средства извлечения CodeQL, включая перечисление параметров, объявленных каждым извлекателем.

### Распространенные параметры

#### `-h, --help`

Отображение этого текста справки.

#### `-J=<opt>`

```
          \[Дополнительно] Укажите параметр JVM, выполняя команду.
```

(Убедитесь, что параметры, содержащие пробелы, не будут обрабатываться правильно.)

#### `-v, --verbose`

Постепенно увеличьте число отображаемых сообщений о ходе выполнения.

#### `-q, --quiet`

Постепенно уменьшайте количество отображаемых сообщений о ходе выполнения.

#### `--verbosity=<level>`

```
          \[Дополнительно] Явным образом задайте уровень детализации на одну из ошибок, предупреждений, хода выполнения, хода выполнения+, хода выполнения++, хода выполнения+++. Переопределяет `-v` и `-q`.
```

#### `--logdir=<dir>`

```
          \[Дополнительно] Запись подробных журналов в один или несколько файлов в указанном каталоге с созданными именами, включающими метки времени и имя выполняющегося подкоманда.
```

(Чтобы записать файл журнала с именем, над которым у вас есть полный контроль, вместо этого предоставьте `--log-to-stderr` и перенаправите stderr по мере необходимости.)

#### `--common-caches=<dir>`

```
          \[Дополнительно] Управляет расположением кэшированных данных на диске, которые будут сохраняться между несколькими запусками интерфейса командной строки, такими как скачанные пакеты QL и скомпилированные планы запросов. Если этот параметр не задан явным образом, по умолчанию используется каталог с именем `.codeql` в домашнем каталоге пользователя; он будет создан, если он еще не существует.
```

Доступно с момента `v2.15.2`.