Как использовать Microsoft Application Verifier

Я использую C ++ и сегодня во время демонстрации обнаружил, что у меня повреждена куча (но только в важных случаях !!). Я нашел несколько сообщений здесь на SO и решил загрузить Application Verifier и Инструмент отладки. Я использую Visual Studio 2010.

Итак, теперь у меня осталось установить инструмент отладки, в котором я получаю папку под названием Windows Kits. В папке у меня есть приложение WinDbg, в котором я пытался открыть свое приложение и запустить его. Это сработало, оштрафовано, но я не смог получить никакой информации о повреждении моей кучи. Затем я установил верификатор, который оставил мне только файл заголовка и файл .dll, с которыми я не знаю, что делать.

Итак, не мог бы кто-нибудь рассказать мне, как использовать этот инструмент, чтобы мне больше не приходилось терпеть такие неловкие моменты, как этот? Я искал на форумах, и, поскольку я даже не знаю, как открыть верификатор, я действительно потерялся, когда прочитал инструкции, как его использовать (с 2009 года)


person chikuba    schedule 20.04.2012    source источник
comment
Вот вам очень подробный ответ на ваш вопрос! blogs.technet.microsoft.com / askperf / 22.05.2009 /   -  person Z80    schedule 27.03.2018
comment
Ссылка @Rigel недействительна   -  person    schedule 15.06.2019
comment
На случай, если другие люди столкнутся с моей проблемой - обязательно запустите appverif.exe с правами администратора. (Щелкните правой кнопкой мыши Запуск от имени администратора). Если вы не запускаете appverif.exe в условиях администратора, он не позволит вам добавить приложение для тестирования. Это позволит вам только просматривать предыдущие журналы.   -  person Hinchy    schedule 06.01.2021


Ответы (2)


App Verifier установит AppVerif.EXE исполняемый файл. Запустите его и попросите проверить ваше приложение. Затем запустите приложение в отладчике (WinDBG или IDE).

person MSalters    schedule 20.04.2012
comment
где? в папке верификатора приложения под программой и файлами я не видел исполняемых файлов - person chikuba; 21.04.2012
comment
он был расположен в system32 и не знал, как его искать, когда я не знал его имени - person chikuba; 23.04.2012
comment
Последний шаг: повторно запустите App Verifier и выберите пункт меню View- ›Logs; отчеты приложений будут перечислены вместе с датой, количеством обнаруженных ошибок и предупреждений. Чтобы увидеть результаты, есть кнопка «Просмотр», но в моей системе ничего не делает. Я сохраняю как файлы xml и читаю вывод с помощью обычного средства просмотра текста. - person Zac; 27.02.2013
comment
Обязательно ли запускать приложение в режиме отладки? technet.microsoft.com/en-us/library/bb457063.aspx говорит просто запустить приложение. - person Deadlock; 23.09.2015
comment
Appverifier сообщает, что для получения наилучших результатов приложение должно работать в режиме отладки. - person Deadlock; 23.09.2015
comment
Извините, но ваш ответ отстой. Ваши 25 слов на самом деле не объясняют, что делать. - person Z80; 27.03.2018
comment
@Sahara: MSalters получил мой голос, потому что в моем случае AppVerifier нашел проблему без моих усилий. Я запустил c: \ windows \ system32 \ AppVerif.exe, добавил свое приложение в левое окно через Файл ›Добавить приложение, выбрал Основы в правом окне, нажал« Сохранить и выйти », а затем запустил свое приложение в Visual Studio. в режиме отладки. Он мгновенно определил, где мой код добавлял 7-й элемент в конец 6-элементного массива. Это все, что мне нужно было сделать, чтобы AppVerifier мог делать свое дело. - person Moshe Rubin; 22.05.2018
comment
@MosheRubin - Спасибо. Это полезно. Я не понимал, что мне нужно запускать программу «извне». Я хотел запустить его из AppVerifier! - person Z80; 31.05.2018
comment
Что, если приложение работает как служба SYSTYEM? Работает ли верификатор приложения, если я запускаю службу как обычно, а затем присоединяю отладчик к процессу? Должен ли я использовать вместо этого vsjitdebugger.exe (своевременный отладчик)? - person Bemipefe; 16.04.2021

Рассмотрите возможность использования приложения Verifier вместе с отладчиком Visual Studio.

  1. Запустите Visual Studio и скомпилируйте приложение.
  2. Запустите утилиту проверки приложений.
  3. File => Add Application
  4. Выберите соответствующий Tests (например, кучи, исключения и т. Д.)
  5. Используйте Visual Studio Debug для запуска вашего приложения.

Когда происходит что-то плохое ... ваш отладчик останавливается. Это должно дать вам довольно хорошее представление об источнике проблемы.

Кроме того, может помочь загрузить недостающие символы перед запуском теста. В Visual Studio 2017 это можно сделать следующим образом:

  1. Debug
  2. Options and Settings
  3. Debugging
  4. Symbols
  5. Load all symbols

Удачи!

ПРИМЕЧАНИЕ. Когда вы закончите, обязательно отключите проверки AppVerfier, которые вы включили ... в противном случае вы можете испытать некоторые неожиданные побочные эффекты через 6 месяцев, когда вы забыли о AppVerifier.

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА

person Pressacco    schedule 25.01.2019
comment
Используя VS 2019 и запустив приложение в отладчике, я вижу единственное, что процесс завершился с кодом X - без перерыва, только завершенное состояние. Даже когда я включаю все галочки в окне настроек исключений и отключаю только свой код. - person springy76; 19.11.2019
comment
appVerif.exe не присутствовал при установке Windows 10 19h1 по умолчанию. Я нашел @ C: \ Windows \ System32 \ appverif.exe на моем хост-компьютере разработчика с несколькими наборами инструментов. Возможно, он поставлялся с инструментами отладчика Microsoft ADK или WDK. - person Kevin; 27.01.2020
comment
@kevinf, как упоминалось выше в разделе Ссылки, вам необходимо загрузить приложение. - person Pressacco; 27.01.2020
comment
ДАННАЯ ВЕРСИЯ ВЕРИФЕРА ПРИЛОЖЕНИЯ УСТАРЕЛА И ПРЕДСТАВЛЯЕТСЯ КАК ЕСТЬ ДЛЯ ОПЕРАЦИОННЫХ СИСТЕМ СТАРШЕ, ЧЕМ WINDOWS 7. Новые выпуски распространяются в Windows SDK - developer.microsoft.com/windows/downloads/windows-10-sdk. Для предыдущих версий Windows заархивированные выпуски SDK доступны по адресу developer.microsoft.com/windows/ Загрузки / sdk-archive. - person Kevin; 28.01.2020