Skip to main content

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

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

Кто может использовать эту функцию?

CodeQL доступен для следующих типов репозитория:

Примечание.

Это содержимое описывает последний выпуск данных CodeQL CLI. Дополнительные сведения об этом выпуске см. в статье https://github.com/github/codeql-cli-binaries/releases.

Чтобы просмотреть сведения о параметрах, доступных для этой команды в предыдущем выпуске, выполните команду с --help параметром в терминале.

Краткие сведения

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

Description

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

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

Параметры

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

<database>

[Обязательный] Путь к базе данных CodeQL в стадии разработки. Это должно быть подготовлено для извлечения с помощью инициализации базы данных 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 в создание базы данных 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 инициализации или 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 инициализации или 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.