пятница, 11 июля 2008 г.

VAsset

в VMware Workstation 6.5, которая сейчас в статусе второй беты, будут некоторые новые фичи.

Одна из них - VAssert.
Это - набор API, позволяющий более интересно использовать функцию Record&Replay.
Вот тут - Introducing VAssert - приводиться пример использования VAssert для обнаружения buffer-overflow для Apache.

По результату консультации с программистами, у меня сложилось следующее видение этой технологии:
Один из инструментов отладки - функция Assert. Цитирую:

"Assert - это функция которая проверяет некоторое булевое выражение. Если оно false, то генерирует исключение EAssertionFailed."
Ну вот представь, что при отладке программы ты закладываешься на определенные условия, считая, что они всегда выполняются... проверку этого выполнения ты можешь заложить в этот Assert. Где-то в коде пишешь Assert(некое условие). Если ты отлаживаешь программу, то при невыполнении условия, программа прерывается и ты получаешь сообщение мол "в такой то точке возникло исключение EAssertionFailed". Когда же ты уже всё отладил и собираешь релизную версию, реагирование на assert можно просто отключить, дабы не пугать заказчика "


Так вот, VAssert(Virtual Assertions) - то же самое, но отрабатывающее не в отладчике, а во время штатной работы кода, но(!) только в режиме Replay. Так как в этом режиме исполняются уже записанные ранее инструкции, все происходит быстрее.
Особенно функция может быть интересна для отладки многопоточных приложений - ибо в естественных условиях несколько потоков инструкций приложения всегда разные, даже если приложение повторяет одни и те же действия; а с помощью VMware Record&Replay можем повторять однажды записанные потоки столько раз, сколько потребуется, и точно в том же виде, в каком они исполнялись в первый раз.

За более подробной информацией - Introducing VAssert.



0 коммент.:

Отправить комментарий