2016-08-03 2 views
1

Есть ли способ выполнить скрипт каждый раз, когда программа останавливается? мне нужно сделать что-то вроде этого:Trace32 Выполнять скрипт при остановке программы

Var.Set \myvar=list[Id] 

где список и Id являются переменными из программы.

Однако, когда идентификатор изменяется \myvar, он не изменяется, он остается со значением, которое соответствует старому идентификатору.

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

ответ

1

Для запуска скрипта каждый раз, когда программа останавливается, используйте команду ON или GLOBALON. ON подходит, когда есть еще активный скрипт PRACTICE, контролирующий ваш тестовый пример. GLOBALON подходит, если вам нужна реакция на событие, пока вы не отключите его снова.

Общий синтаксис:

ON|GLOBALON <event> <action> 

где «событие» может быть PBREAK для «программы-брейк» и «действие» может быть «DO <script.cmm>», чтобы выполнить индивидуальный скрипт на событие ,

Собираем все вместе, вы получите:

GLOBALON PBREAK DO syncmyvar.cmm 

где скрипт syncmyvar.cmm содержит вашу команду Var.Set \myvar=list[Id]

Чтобы отключить обработчик событий на использовании разрыва программы

GLOBALON PBREAK inherit 

Если я правильно понимаю ваш пример использования, вы должны выполнить команду Var.Set \myvar=list[Id] каждый раз Id меняется. В этом случае я бы предпочел использовать точку останова записи с действием команды. Например. как это:

Var.Break.Set Id /Write /CMD "Var.Set \myvar=list[Id]" /RESUME 

Однако это дает совершенно другое поведение: С этой точки останова, ваше приложение получает остановлена ​​в ближайшее время для каждого доступа для записи Id и \ MyVar всегда синхронизирован с Id, в то время как с GLOBALON PBREAK DO syncmyvar.cmm переменной \ MYVAR получает только обновление, когда приложение полностью останавливается.