Поделиться через


gh (Go с обработкой исключений)

Команда gh помечает исключение данного потока как обработанное и позволяет потоку перезапустить выполнение по инструкции, вызвавшей исключение.

Синтаксис пользовательского режима

[~Thread] gh[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 

Синтаксис режима ядра

gh[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 

Параметры

Нить
(Только в пользовательском режиме) Указывает поток для выполнения. Этот поток должен быть остановлен исключением. Сведения о синтаксисе см. в разделе "Синтаксис потока".

a
Вызывает любую точку останова, созданную этой командой, в точку останова процессора (например, созданную ba), а не точку останова программного обеспечения (например, созданную с помощью bp и bm). Если BreakAddress не указан, точка останова не создается, а флаг не действует.

StartAddress
Указывает адрес, с которого должен начинаться выполнение. Если это не указано, отладчик передает выполнение адресу, в котором произошло исключение. Дополнительные сведения о синтаксисе см. в разделе "Синтаксис диапазона адресов" и "Адрес".

BreakAddress
Задает адрес точки останова. Если указан параметр BreakAddress , он должен указать адрес инструкции (т. е. адрес должен содержать первый байт инструкции). В любом порядке можно указать до десяти адресов останова. Если не удается разрешить BreakAddress , он сохраняется как неразрешенная точка останова. Дополнительные сведения о синтаксисе см. в разделе "Синтаксис диапазона адресов" и "Адрес".

BreakCommands
Указывает одну или несколько команд, которые будут автоматически выполняться при нажатии точки останова, указанной в BreakAddress . Параметр BreakCommands должен предшествовать точке с запятой. Если задано несколько значений BreakAddress , к ним применяется BreakCommands .

Обратите внимание, что параметр BreakCommands доступен только при внедрении этой команды в строку команды, используемой другой командой, например в другой команде точки останова или в пределах другого параметра или события. В командной строке точка с запятой завершит команду gh, и все дополнительные команды, перечисленные после того, как точка с запятой будет выполнена сразу после выполнения команды gh.

Среда

Позиция Description
Режимы режим пользователя, режим ядра
Целевые объекты только динамическая отладка
Платформы all

Дополнительная информация

Другие методы выдачи этой команды и общие сведения о связанных командах см. в разделе "Управление целевым объектом".

Замечания

Если для задания точки останова используется параметр BreakAddress , эта новая точка останова будет активирована только текущим потоком. Другие потоки, выполняющие код в этом расположении, не будут остановлены.

Если задан поток , команда gh выполняется с указанным потоком unfrozen и всеми остальными замороженными. Например, если указана команда ~123gh, ~#gh или ~*gh , указанные потоки неfrozen и все остальные заморожены.