-1

我是 Microsoft TestPartner 自动化工具的新手,在运行 Windows 应用程序的脚本时,应用程序挂起一段时间后,有没有办法在测试伙伴中处理这种情况

4

1 回答 1

0

我不知道你在问什么。但是 windbg 试图分析挂起。

!analyze !analyze 扩展显示有关当前异常或错误检查的信息。

用户模式

!analyze [-v] [-f | -hang] [-D BucketID] 
!analyze -c [-load KnownIssuesFile | -unload | -help ]

内核模式

!analyze [-v] [-f | -hang] [-D BucketID] 
!analyze -c [-load KnownIssuesFile | -unload | -help ]
!analyze -show BugCheckCode [BugParameters]

参数

-v 

显示详细输出。

-f 

生成 !analyze 异常输出。即使调试器未检测到异常,也可以使用此参数查看异常分析。

-hang 

生成 !analyze 挂起的应用程序输出。当目标遇到错误检查或异常时使用此参数,但分析应用程序挂起的原因与您的问题更相关。在内核模式下,!analyze -hang 调查系统持有的锁,然后扫描 DPC 队列链。在用户模式下,!analyze -hang 分析线程堆栈以确定是否有任何线程阻塞其他线程。

在用户模式下运行此扩展之前,请考虑将当前线程更改为您认为已停止响应(即挂起)的线程,因为异常可能已将当前线程更改为不同的线程。

您也可以在调试器中启动。

windbg 或 ntsd(ntsd 是一个控制台程序,可能已安装)。两者都来自 Debugging Tools For Windows。

下载并安装适用于 Windows 的调试工具

http://msdn.microsoft.com/en-us/windows/hardware/hh852363

安装 Windows SDK,但只需选择调试工具。

在 C:\ 中创建一个名为 Symbols 的文件夹

启动 Windbg。文件菜单 - 符号文件路径并输入

srv*C:\symbols*http://msdl.microsoft.com/download/symbols

然后

windbg -o -g -G c:\windows\system32\cmd.exe /k batfile.bat

您可以按F12停止它并kb显示调用堆栈(g继续程序)。如果有错误,它也会停止并显示它们。

键入lm以列出加载的模块、x *!*列出符号并bp symbolname设置断点

如果在 VB6 中编程,则此环境变量link=/pdb:none将符号存储在 dll 中,而不是单独的文件中。确保在没有优化的情况下编译程序并勾选Create Symbolic Debug Info框。两者都在项目属性的编译选项卡上。

CoClassSyms (microsoft.com/msj/0399/hood/hood0399.aspx) 也可以从类型库中生成符号。

于 2015-04-15T09:40:49.660 回答