delphi - 如何使用 Application Verifier 4.0 测试 Delphi 应用程序?

标签 delphi windows-7 debugging delphi-2010

我下载了 Application Verifier 4.0 来测试我的应用程序,检查在 Vista/7 上是否存在问题。

我从 Delphi 2010 调试器运行,并在 CPU View 中停止。显然,我对汇编程序一无所知!

因此,我尝试直接从 Windows 资源管理器运行,但应用程序死掉了。

(事实上,我不太明白应用程序验证器到底会做什么:我期望某种友好的消息)。

这就是我得到的:

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

最佳答案

应用程序验证器是一组注册表设置的 GUI 包装器。

当您将应用程序添加到应用程序验证器时,它会告诉 Windows 在您的应用程序运行时进行更多检查。

添加应用程序后,您可以关闭应用程序验证器;设置已保存。

现在,每当您运行应用程序时,Windows 都会对各种条件进行额外检查(通过应用程序验证器指定)。

某些检查将导致调用 DebugBreak()。 (这就是当您在 Windows 资源管理器下运行应用程序时它会死掉的原因。)

您必须在调试器下运行应用程序,以便可以看到问题发生的位置。

我对Delphi 2010知之甚少;如果它创建托管代码,您可能会遇到问题,因为断点将出现在 native 代码中,并且您的调试器(Delphi 的调试器)需要能够调试混合的 native /托管代码。

关于delphi - 如何使用 Application Verifier 4.0 测试 Delphi 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2549907/

相关文章:

delphi - EXE文件右键菜单

Delphi - 按名称调用记录方法

windows-7 - 从命令行移动文件

javascript - 谷歌图表 :Data column(s) for axis #0 cannot be of type string error

ruby-on-rails-3 - heroku rails logging 不显示输出?

delphi组件在运行时动画显示/隐藏控件

delphi - 如何删除最后一个字符

Windows 7 从命令行清空整个目录

asp.net - 如何使用 localDB 将 ASP.NET MVC 4 应用程序部署到 Windows 7 上的本地 IIS?

ios - Xcode 8 内存图 malloc 堆栈无法加载回溯