Как тест приложение Delphi с Верификатором Приложения 4.0?

Я загружаю Верификатор Приложения 4.0 для тестирования моего Приложения на проверку, если мог иметь проблемы на Vista/7.

Я работаю от отладчика Delphi 2010 и останавливаюсь в представлении CPU. Очевидно, я ничего не понимаю об ассемблере!.

Так, я пытаюсь работать непосредственно от Windows Explorer, и Приложение умирает.

(На самом деле я не понимаю хорошо, что точно сделает Верификатор Приложения: Я ожидаю некоторое дружественное сообщение).

Это - то, что я получаю:

7C81A3E2 C3               ret 
7C81A3E3 90               nop 
7C81A3E4 8BFF             mov edi,edi
ntdll.DbgUserBreakPoint:
7C81A3E6 CC               int 3
7C81A3E7 C3               ret 
7C81A3E8 8BFF             mov edi,edi
7C81A3EA 8B442404         mov eax,[esp+$04]
7C81A3EE CC               int 3
7C81A3EF C20400           ret $0004
ntdll.NtCurrentTeb:
7C81A3F2 64A118000000     mov eax, fs:[$00000018]
7C81A3F8 C3               ret 
ntdll.RtlInitString:
7C81A3F9 57               push edi

Загрузка:

:7c81a3e2 ntdll.DbgBreakPoint + 0x1
:10003b68 ; C:\WINDOWS\system32\vrfcore.dll
:00396a9d ; C:\WINDOWS\system32\vfbasics.dll
:00397316 ; C:\WINDOWS\system32\vfbasics.dll
:7c84bcdb ; ntdll.dll
:7c8316f8 ; ntdll.dll
:7c83154f ; ntdll.dll
:7c82855e ntdll.KiUserExceptionDispatcher + 0xe
:0040aa00 GetUILanguages + $80
:0040b298 GetResourceModuleName + $124
:0040afde LoadResourceModule + $7A
:0040a134 DelayLoadResourceModule + $2C
:00406c40 @StartExe + $44
:77e6f23b ; C:\WINDOWS\system32\KERNEL32.dll
5
задан ulrichb 31 March 2010 в 15:30
поделиться

4 ответа

На днях я пробовал различные комбинации средства проверки приложений.
32-разрядная версия просто зависала. Затем, прочитав немного документации, я обнаружил, что в любом случае нет смысла запускать 32-битную версию, потому что Microsoft интересуются только результатами 64-битного теста. 32-разрядная версия предназначена только для справки (и не работает!).
Я сбросил свою 32-битную виртуальную машину Win7 и создал 64-битную виртуальную машину Win 7, установил 64-битный верификатор приложений, прочитал README (необычный шаг для нас, программистов, я согласен :-)) , затем распечатайте README, потому что это сбивает с толку! После этого вы следуете инструкциям и устанавливаете / запускаете 32-битное приложение в 64-битной ОС. Работает нормально
... а затем вы исправляете все предупреждения из отчета средства проверки приложения.

0
ответ дан 14 December 2019 в 13:32
поделиться

Application Verifier - это оболочка графического интерфейса пользователя для набора параметров реестра.

Когда вы добавляете свое приложение в Application Verifier, он сообщает Windows, что нужно больше проверять, когда ваше приложение запущено.

После добавления приложения вы можете закрыть Application Verifier; настройки сохранены.

Теперь при каждом запуске приложения Windows будет выполнять дополнительную проверку различных условий (как указано в Application Verifier).

Некоторые проверки приводят к вызову DebugBreak (). (Вот почему ваше приложение умирает, когда вы запускаете его в проводнике Windows.)

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

Я очень мало знаю о Delphi 2010; если он создает управляемый код, у вас могут возникнуть проблемы, поскольку точки останова будут возникать в машинном коде, и ваш отладчик (отладчик Delphi) должен иметь возможность отлаживать смешанный собственный / управляемый код.

5
ответ дан 14 December 2019 в 13:32
поделиться

У меня нет опыта работы с AppVerifier, но KiUserExceptionDispatcher вызывает обработчик исключений. В вашем приложении было исключение - стек вызовов указывает на это. Вероятно, поэтому ОС останавливает вас на отладчике.

Я думаю, что вы должны проанализировать, почему здесь произошло исключение, и избавиться от него.

0
ответ дан 14 December 2019 в 13:32
поделиться

AppVerified создает файлы журналов, которые можно просматривать из самого AppVerifier. Если ваше приложение дает сбой, попробуйте отключить некоторые проверки AppVerifier, чтобы найти виновника.

0
ответ дан 14 December 2019 в 13:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: