1

Я использую VS 2010.Запуск тестов буста под отладчиком

мне нужно запустить .exe, который состоит из BOOST_AUTO_TEST_SUITE с, чтобы проверить мою библиотеку под отладчиком, потому что я получаю нарушение прав доступа памяти и утечки памяти. У меня нет основной функции, просто exe (ну и файлы .cpp).

Как запустить этот exe под отладчиком?

UPDATE

Если у вас есть решение с несколькими проектами в нем, и вы должны запустить 1 проект, который содержит модульные тесты, например, в пошаговом режиме, вам нужно:

  1. щелкните правой кнопкой мыши по этому проекту в Solution explorer
  2. мыши "Set as StartUp project"
  3. поставить некоторые точки останова

Personaly Я не знал, что мне нужно настроить мой проект как стартап.

ответ

0

Есть ряд вещей, которые вы можете попытаться отлаживать набор тестов, и это порядок, я хотел бы предложить вам подойти к этому:

  • Установите переменную BOOST_TEST_CATCH_SYSTEM_ERRORS среды, чтобы получить более трассировки стека для отказа.

  • Установить контрольные точки на начальной и конечной скобках (всех) теста (ов), так как гораздо более вероятно, что ваша проблема имеет какое-то отношение к тестам, а не к настройке структуры и тестов.

  • Открыть boost/test/impl/unit_test_main.ipp включить файл в Visual Studio и установить точку останова в методе unit_test_main. Вы будете проходить через монитор выполнения теста, но это редко дает больше понимания, чем просто смотреть на тесты сами.

  • Это редко требуется, но вы также можете явно начать с самого первого основного с помощью Debug + Windows + Breakpoints + New, Function. Есть четыре основных метода, которые могут быть вызваны на Windows, перед началом CRT: mainCRTStartup, wmainCRTStartup, WinMainCRTStartup, wWinMainCRTStartup.

  • Утечки памяти, убедитесь, что вы используете переключатель --detect-memory-leak с идентификаторами распределения заказа:

 
    The Execution Monitor provides a limited ability to detect memory leaks 
    during program execution, and to break program execution on specific 
    memory allocation order number (1 - first allocation of memory in program, 
    2 - second and so on). 

Кроме того, проверьте, как run individual tests by name, он обычно делает отладку легче, если вы можете выделить только дефектный подмножество тестов.

0

UPDATE

Если у вас есть решение с несколькими проектами в нем, и вы должны запустить 1 проект, который содержит модульные тесты, например, в пошаговом режиме, вам нужно:

  1. право нажмите на этот проект в Solution explorer
  2. мыши "Set as StartUp project"
  3. поставить некоторые точки излома

Personaly Я не знал, что мне нужно настроить мой проект как стартап.