Примечание.
Это содержимое описывает последний выпуск данных CodeQL CLI. Дополнительные сведения об этом выпуске см. в статье https://github.com/github/codeql-cli-binaries/releases.
Чтобы просмотреть сведения о параметрах, доступных для этой команды в предыдущем выпуске, выполните команду с --help
параметром в терминале.
Краткие сведения
codeql database trace-command [--threads=<num>] [--ram=<MB>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database> <command>...
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
.