Можно ли настроить Visual Studio 2005 на игнорирование утверждений в определенной области кода при отладке? - PullRequest
5 голосов
/ 20 ноября 2008

Вот сценарий. Я отлаживаю свое собственное приложение (C / C ++), которое использует какую-то библиотеку, разработанную другой командой в компании. Утверждение не выполняется, когда мой код генерирует некоторый крайний случай. Это боль, потому что утверждение не сформулировано правильно, поэтому библиотечная функция работает нормально, но я получаю все эти прерывания, где мне просто нужно продолжить (много, как в цикле), чтобы я мог добраться до того, что мне действительно интересно Я должен использовать отладочную версию библиотеки при отладке по другим причинам. Другая команда не исправит это до следующего выпуска (эй, он работает на нашей машине).

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

Ответы [ 4 ]

3 голосов
/ 20 ноября 2008

Если код сам по себе вызывает точки останова (__debugbreak или int 3), вы не можете использовать условные точки останова, так как точки останова вообще не известны Visual Studio. Однако вы можете отключить любые такие точки останова, которые вас не интересуют, изменив код из отладчика. Вероятно, не то, что вы хотите, потому что вам нужно повторять это в каждом сеансе отладки, однако все же может быть лучше, чем ничего. Для получения дополнительной информации прочитайте Как отключить программную точку останова / подтвердить? .

2 голосов
/ 12 мая 2009

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

Пример 2 в следующей ссылке, кажется, то, что вы хотите сделать:

http://msdn.microsoft.com/en-us/library/ms681409(VS.85).aspx

2 голосов
/ 20 ноября 2008

Нет хорошего способа автоматически игнорировать сбои ASSERT () в библиотеке отладки. Если это то, что вам нужно использовать, вам просто нужно убедить другую команду, что это нужно исправить сейчас, или если у вас есть источник для этой библиотеки, вы можете исправить или удалить утверждения самостоятельно, просто чтобы получить вашу работу сделано тем временем.

0 голосов
/ 20 ноября 2008

Вы можете использовать условные контрольные точки. Некоторые ссылки:

http://support.microsoft.com/kb/308469
http://dotnettipoftheday.org/tips/conditional_breakpoint.aspx

...