我是 Microsoft TestPartner 自动化工具的新手,在运行 Windows 应用程序的脚本时,应用程序挂起一段时间后,有没有办法在测试伙伴中处理这种情况
1 回答
我不知道你在问什么。但是 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) 也可以从类型库中生成符号。