%all.entities; ]> $Date: 2023-01-17 15:15:46 +0100 (Tue, 17 Jan 2023) $ VBoxManage debugvm VBoxManage-debugvm 1 VBoxManage-debugvm интроспекция и гостевая отладка &product-name; VBoxManage debugvm uuid|имя-ВМ dumpvmcore --filename=name VBoxManage debugvm uuid|имя-ВМ info элемент аргументы VBoxManage debugvm uuid|имя-ВМ injectnmi VBoxManage debugvm uuid|имя-ВМ log --release--debug настройки-группы VBoxManage debugvm uuid|имя-ВМ logdest --release--debug назначения VBoxManage debugvm uuid|имя-ВМ logflags --release--debug флаги VBoxManage debugvm uuid|имя-ВМ osdetect VBoxManage debugvm uuid|имя-ВМ osinfo VBoxManage debugvm uuid|имя-ВМ osdmesg --lines=строки VBoxManage debugvm uuid|имя-ВМ getregisters --cpu=id набор-регистров.имя-регистра VBoxManage debugvm uuid|имя-ВМ setregisters --cpu=id набор-регистров.имя-регистра=значение VBoxManage debugvm uuid|имя-ВМ show --human-readable--sh-export--sh-eval--cmd-set элемент-настроек VBoxManage debugvm uuid|имя-ВМ stack --cpu=id VBoxManage debugvm uuid|имя-ВМ statistics --reset --descriptions --pattern=шаблон VBoxManage debugvm uuid|имя-ВМ guestsample --filename=имя-файла --sample-interval-us=интервал --sample-time-us=время Описание Команды "debugvm" предназначены для экспертов, которые хотят разобраться в деталях исполнения виртуальной машины. Как и отладчик VM описанный в , эти команды полезны только если хорошо разбираетесь в архитектуре PC и знаете как отлаживать программное обеспечение. Общие параметры Все подкоманды debugvm выполняются в работающей виртуальной машине: uuid|имя-ВМ Или UUID или имя (чувствительно к регистру) ВМ. debugvm dumpvmcore Создает файл системного дампа указанной ВМ. Этот файл будет иметь стандартный формат ELF ядра (с пользовательскими секциями); Смотрите . Команда соответствует команде writecore отладчика. Имя выходного файла. debugvm info Отображает информацию относительно VMM, эмуляции устройств и назначенных драйверов. Команда соответствует команде info отладчика. элемент Имя элемента для отображения. Специальное имя показывает список всех доступных элементов и подсказок по необязательным аргументам. аргументы Необязательная строка аргументов для обработчика элемента. Большинство элементов не требуют дополнительных аргументов. Нераспознанные аргументы в основном игнорируются. debugvm injectnmi Внедряет немаскируемое прерывание (NMI) в гостевую систему. Это может быть полезно для определенных сценариев отладки. Что точно произойдет, зависит от гостевой операционной системы, однако NMI может вызвать крах всей гостевой ОС. Не используйте если не знаете что вы делаете. debugvm log Изменяет настройки группы для журналирования ВМ процесса в режимах отладки () или выпуска (). настройки-группы в основном строки в форме em.e.f.l, hm=~0 и -em.f. Поддерживаются базовые подстановочные знаки для сопоставления групп. Группа all - это псевдоним для всех групп. Пожалуйста, имейте ввиду, что настройки группы применяются как модификация текущих настроек. Эта команда соответствует команде log отладчика. debugvm logdest Изменяет настройки назначения для журналирования ВМ процесса в режимах отладки () или выпуска (). Более подробную информацию по формату назначения лучше посмотреть в src/VBox/Runtime/common/log/log.cpp. назначения - это одна или несколько мнемоник, которые могут предваряться "no" для их отключения. Некоторые из них берут значения после разделителей ":" или "=". Множественные мнемоники могут разделяться через пробел или задаваться как отдельные аргументы в командной строке. Список доступных назначений: Указывает файл журнала. Если файл журнала не указан, он будет сгенерирован на основе текущего времени UTC и имени процесса ВМ и помещен в текущую директорию процесса ВМ. Заметим, что данная команда не имеет силы если файл журнала уже открыт. Указывает директорию для файлов журналов. Заметим, что данная команда не имеет силы если файл журнала уже открыт. Ненулевые значения включают историю журналов. Значение показывает сколько хранить старых файлов журналов. Максимальный размер файла журнала перед сменой файла. По умолчанию бесконечно. Максимальный возраст (в секундах) файла журнала перед сменой файла. По умолчанию бесконечно. Записывать журнал только в буфер журнала до явного сброса на диск (например через assertion). Это быстро и сохраняет дисковое пространство. Записывать содержимое журнала в стандартный поток вывода. Записывать содержимое журнала в стандартный поток ошибок. Записывать содержимое журнала в отладчик, если поддерживается ОС хоста. Записывать содержимое журнала в COM порт. Применимо только для raw-режима и ring-0 журналирования. Пользовательское назначение, не имеющее значения для процессов ВМ. Эта команда соответствует команде logdest отладчика. debugvm logflags Изменяет флаги журналирования ВМ процесса в режимах отладки () или выпуска (). Пожалуйста, имейте ввиду, что изменения применяются к существующим и не подменяют их. флаги - это список мнемоник, опционально предваряемые "no", "!", "~" или "-" для смены значения на противоположное. Префикс "+" может использоваться для отмены предыдущего противоположного значения или как разделитель, хотя лучше использовать пробел или отдельные аргументы. Список мнемоник флагов с их противоположной формой, где применимо (звездочка показывает значение по умолчанию): Включает или выключает журналирование. Включает буферизацию вывода журнала перед записью в назначение. Открывать ли файл назначения со сквозной буферизацией или нет. Включает сброс выходного файла на диск после каждой записи в журнал. Предварять каждую строку журнала количеством блокировок текущего потока. Предварять каждую строку журнала ID текущего ЦПУ. Предварять каждую строку журнала ID текущего процесса. Предварять каждую строку журнала числовыми значениями флагов соответствующих записи в журанал. Предварять каждую строку журнала мнемониками флагов соответствующих записи в журанал. Предварять каждую строку журнала номером группы соответствующей записи в журанал. Предварять каждую строку журнала именем группы соответствующей записи в журанал. Предварять каждую строку журнала ID текущего потока. Предварять каждую строку журнала именем текущего потока. Предварять каждую строку журнала текущим временем UTC. Предварять каждую строку журнала текущим монотонным временем, прошедшим с момента старта программы. Предварять каждую строку журнала текущим монотонным временем в милисекундах, прошедшим с момента старта программы. Предварять каждую строку журнала текущим монотонным временем в наносекундах. Предварять каждую строку журнала текущим временем ЦПУ (TSC). Выбирает как отображать префиксы ts и tsc: как время относительно предыдущей строки журнала или как абсолютное время. Выбирает как форматировать префиксы ts и tsc: как шестнадцатиричные значения или как десятичные. Пользовательский префикс записи журнала. По умолчанию не имеет значения для ВМ процессов. Выводить используя окончания строк в стиле DOS (CRLF) или UNIX (LF). Перезаписывать файл назначения или добавлять строки в конец файла. Эта команда соответствует команде logflags отладчика. debugvm osdetect Заставляет отладчик VMM (заново) определить гостевую операционную систему (ОС). Команда сначала загружает все плагины отладчика. Эта команда соответствует команде detect отладчика. debugvm osinfo Отображает информацию о гостевой операционной системе (ОС), ранее определенной отладчиком VMM. debugvm osdmesg Отображает журнал ядра гостевой ОС, если она определена и поддерживается. Количество отображаемых строк. Счет ведется с конца журнала. По умолчанию бесконечно. debugvm getregisters Получает значения регистров гостевых ЦПУ и эмулируемых устройств. набор-регистров.имя-регистра Один или несколько регистров, где каждый указывается в следующих формах: набор-регистров.имя-регистра.под-поле набор-регистров.имя-регистра имя-регистра-цпу.под-поле имя-регистра-цпу all Форма all показывает все регистры (без под-полей). Имена регистров не чувствительно к регистру. Выбирает набор регистров ЦПУ при указании только регистра ЦПУ (3-я и 4-я формы). По умолчанию 0. debugvm setregisters Изменяет значения регистров гостевой ОС и эмулируемых устройств. набор-регистров.имя-регистра=значение Присвоение значений одному или нескольким регистрами, где каждый указывается в следующих формах: набор-регистров.имя-регистра.под-поле=значение набор-регистров.имя-регистра=значение имя-регистра-цпу.под-поле=значение имя-регистра-цпу=значение Форматр значений должен быть в том же стиле, в каком отображаются по команде getregisters, за исключением того, что могут быть указаны восмеричные и десятичные значения вместо шестнадцатиричных. Выбирает набор регистров ЦПУ при указании только регистра ЦПУ (3-я и 4-я формы). По умолчанию 0. debugvm show Отображает настройки журнала для ВМ. Выбирает человеко-читаемый вывод. Выбирает формат вывода в стиле bourne shell команды export. Выбирает формат вывода в стиле аргументов bourne shell команды eval. Выбирает формат вывода в стиле команды DOS SET. settings-item Указывает что отображать. Один или несколько из следующих: logdbg-settings - настройки журнала в режиме отладки. logrel-settings - настройки журнала в режиме выпуска. log-settings - псевдоним для настроек журнала в режимах и отладки и выпуска. debugvm stack Разматывает стеки гостевого ЦПУ в меру наших возможностей. Рекомендуется сначала запустить команду osdetect чтобы получить символы и возможно информацию для раскрутки стека. Выбирает один гостевой ЦПУ, у которого надо отобразить стек. По умолчанию все ЦПУ. debugvm statistics Отображает или сбрасывает статистики VMM. Получает значения регистров для гостевых ЦПУ и эмулируемых устройств. Шаблоны с подстановочными знаками в стиле DOS/NT для выбранных статистик. Множественные шаблоны указываются через символ '|' (канал) в качестве разделителя. Выбрать сброс вместо режима отображения. debugvm guestsample Создает отчет с выборками о гостевой активности. Получает имя файла куда сбрасывать отчет. Имя файла куда сбрасывать отчет с выборками. Интервал в микросекундах между гостевыми выборками. Количество микросекунд, в течение которых берется выборка.