我是Microsoft TestPartner自动化工具的新手,当我运行我的Windows应用程序的脚本时,应用程序挂起一段时间后,有没有办法在测试合作伙伴中处理这种情况
答案 0 :(得分:0)
我不知道你在问什么。但是windbg试图分析挂起。
!分析 !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 -hang调查系统保存的锁,然后扫描DPC队列链。在用户模式下,!analyze -hang分析线程堆栈以确定是否有任何线程阻塞其他线程。
在用户模式下运行此扩展之前,请考虑将当前线程更改为您认为已停止响应(即挂起)的线程,因为该异常可能已将当前线程更改为其他线程。
您也可以从调试器开始。
windbg或ntsd(ntsd是一个控制台程序,可能已安装)。两者都来自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中而不是单独的文件中。确保使用 No Optimisations 编译程序并勾选 Create Symbolic Debug Info 的复选框。两者都在项目属性的“编译”选项卡上。
CoClassSyms(microsoft.com/msj/0399/hood/hood0399.aspx)也可以从类型库中创建符号。