大佬教程收集整理的这篇文章主要介绍了应用程序忙,但没有响应:如何检查它在做什么?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个.NET应用程序。 在某些特定的机器上,应用程序不再响应。 但是,在任务pipe理器中,应用程序被列为“活动”(而不是“无响应”)。 我们还可以在任务pipe理器中看到该进程继续使用处理器的10%。 我们不知道它在做什么?
有没有一种方法可以看到什么代码被调用,或者进程正在做什么(调用堆栈?)
编辑:显然我们不能使用远程debugging器,因为机器没有通过networking连接,不支持通过互联网debugging。 cpu的analyzer.exe程序似乎很好,但我们不能得到它的工作? 我们已经创build了一个转储@L_696_8@,并用windb进行分析,这是输出:
.................................................WARNING: rSAEnh overlaps cryptsp
。警告:RpcRtRemote重叠rSAEnh ……警告:WindowsCodecs重叠System_Drawing_ni …….. …….警告:msdart重叠shfolder …警告:comsvcs重叠oledb32 ….. ……….警告:dhcpcsvc6重叠dhcpcsvc …………….警告:appHelp重叠GdiPlus ………警告:winhttp重叠Faultrep .WARNING:webio overlaps comctl32_71bf0000 …………. …… wow64win!NtUserPeekmessage + 0xa:00000000`732efdea c3 ret 0:000>!analyze -v
InvokeHelper()抛出Access被拒绝exception
如何在.NET中更改XBox控制器的分配?
什么是Windows或.Net的DVD刻录组件?
如何使用C#设置窗口的高度?
我如何以编程方式确定哪个应用程序正在locking@L_696_8@?
*
exception分析*
*
警告:无法validationAppName.exe的校验和错误:模块加载完成,但符号无法加载AppName.exe 警告:符号时间戳错误0x4ce7c496 0x4f9235ab GdiPlus.dll *警告:符号时间戳错误0x4a5bdf81 0x4a5bda2e comsvcs。 DLL
FAULTinG_IP:+ a7d01d0 00000000`00000000 ?? ???
EXCEPTION_RECORD:ffffffffffffffffexception地址:0000000000000000exception码:
FAULTinG_THREAD:0000000000001678
PROCESS_NAME:AppName.exe
OVERLAPPED_MODULE:“msdart”和“shfolder”重叠的地址区域
ERROR_CODE:(NTSTATUS)0x80000003 – {EXCEPTION}断点已经达到断点。
EXCEPTION_CODE:(HRESULT)0x80000003(2147483651) – 一个或多个参数无效
@H_993_0@mOD_LIST:NTGLOBALFLAG:0
APPLICATION_VERIFIER_FLAGS:0
@H_993_0@mANAGED_STACK:!dumpstack -EE找不到导出的dumpstackADDITIONAL_DEBUG_TEXT:基于属性[Is_ChosenCrashFollowupThread]从线程[0]上的后续设置:[PSEUDO_THREAD]
LAST_CONTROL_TRANSFER:从00000000732cadb3到00000000732efdea
BUGchecK_STR:APPLICATION_FAULT_STACKIMMUNE_NOSOS
PRIMary_PROBLEM_CLASS:STACKIMMUNE
DEFAULT_BUCKET_ID:STACKIMMUNE
STACK_TEXT:
00000000 00000000 00000000 00000000 unkNown!AppName.exe + 0x0
SymBOL_NAME:未知!AppName.exe
FOLLOWUP_NAME:Machineowner
@H_993_0@mODULE_NAME:未知IMAGE_NAME:未知
DEBUG_FLR_IMAGE_timestAMP:0
FAILURE_BUCKET_ID:STACKIMMUNE_80000003_unkNown!已卸载
BUCKET_ID:X64_APPLICATION_FAULT_STACKIMMUNE_NOSOS_unkNown!AppName.exe
这可能是罪魁祸首:“msdart”和“shfolder”的地址区域重叠?
确定系统架构
如何在勾选列表框中灰显项目
哪个DVCS适合一个人的.NET商店?
GUI故障:checkBox文本在Windows 8中显示不完整
自我安装的WInservice
使用Visual studio或WinDbg连接到此进程以查看调用堆栈和调试,和/或在应用程序中包含日志记录。 这样你可以写一个日志@L_696_8@你的应用程序正在做什么。
在主机上安装Visual studio远程调试器正在运行应用程序,然后附加到正在运行的进程。 您将需要具有相同的pdb@L_696_8@和源代码,以便插入断点和调试。
检查这个链接:
http://msdn.microsoft.com/en-us/library/vstudio/bt727f1t.aspx
您也可以将调试配置为在其他机器上远程启动应用程序,而不是连接到正在运行的进程。
你可以捕获一个转储并打开windbg,输入!analyze -v让windbg为你做分析。 对于挂起/无响应的问题, !analyze -v不如崩溃。 我通常用~*kb200来列出所有线程的堆栈跟踪信息,这对于初步了解线程正在做什么非常有帮助,然后, !locks可以告诉我是否有任何关键的部分问题,有时我会检查是否有任何例外出现在堆栈上
问题是一个多线程的死锁。 在我们的主窗口下面显示一个错误。 因为我们无法点击确定的错误,我们的主窗口正在等待错误窗口被关闭,@R_780_9616@程序挂起…
我们通过屏幕录制确定了实际的错误,同时我们用任务管理器关闭了应用程序。 在不到一秒的时间内,我们可以看到错误窗口,通过播放录音,我们可以看到错误是什么,并修复错误。
以上是大佬教程为你收集整理的应用程序忙,但没有响应:如何检查它在做什么?全部内容,希望文章能够帮你解决应用程序忙,但没有响应:如何检查它在做什么?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。