C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 21 - Макросы остановки по условию (VERIFY,ASSERT) / Отладка / Visual C++

Шаг 21 - Макросы остановки по условию (VERIFY,ASSERT)

В MFC есть два макроса, которыми можно пользоваться, кстати, и без MFC. Эти макросы проверяют условия выражения и останавливают программу. Для их использования нужен только afx.h. Эти два макроса практически одно и тоже.

#define VERIFY(f) 	ASSERT(f)

А сам ASSERT использует AfxDebugBreak():

#define ASSERT(f) \
	do \
	{ \
	if (!(f) && AfxAssertFailedLine(THIS_FILE, __LINE__)) \
		AfxDebugBreak(); \
	} while (0) \

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

void test()
{
	int y;
	y=234;
	for (int x=0;x<10000;x++)
	{
		strs ss;
		ss.i = 10;
		ss.j = 5;
		y=y+y;
		ASSERT(x!=10);
	}
}

Пока x не станет равной 10 ничего не будет происходить. А вот когда 10, то произойдет прерывания программы, но информационное окно будет уже другое.

21_1.gif (8008 b)

Оно нам предлагает уже три варианта, прервать программу, повторить и пропустить. Если нажать повтор (Retry), то мы попадем как раз в отладку.

21_2.gif (4323 b)

Все нормально, мы остановились на 10.


| |
Автор Каев Артем.
[AD]