我们有一个 .NET 应用程序。在某些特定机器上,应用程序不再响应。但是,在任务管理器中,该应用程序被列为“活动”(而不是“无响应”)。我们还可以在任务管理器中看到该进程一直使用 10% 的处理器。我们不知道它在做什么?
有没有办法我们可以看到正在调用什么代码或进程当前正在做什么(调用堆栈?)
编辑:显然我们不能使用远程调试器,因为机器没有通过网络连接,不支持通过互联网进行调试。CPU-analyzer.exe 程序看起来很棒,但我们无法让它工作?我们创建了一个转储文件并使用 windb 对其进行分析,这是输出:
.................................................WARNING: rsaenh overlaps cryptsp
.WARNING:RpcRtRemote 与 rsaenh 重叠 ......WARNING:WindowsCodecs 与 System_Drawing_ni 重叠 ........ ..WARNING:msdart 与 shfolder 重叠 ...WARNING:comsvcs 与 oledb32 重叠 ..... ..........警告:dhcpcsvc6 与 dhcpcsvc 重叠 .............警告:apphelp 与 GdiPlus 重叠 .........警告:winhttp 与 Faultrep 重叠.WARNING: webio 与 comctl32_71bf0000 重叠 ...... ...... wow64win!NtUserPeekMessage+0xa: 00000000`732efdea c3 ret 0:000> !analyze -v
- *
- 异常分析 *
- *
* 警告:无法验证 AppName.exe 的校验和 错误:模块加载完成,但无法为 AppName.exe 加载符号 警告:符号时间戳错误 0x4ce7c496 0x4f9235ab 用于 GdiPlus.dll *警告:符号时间戳错误 0x4a5bdf81 0x4a5bda2e 用于 comsvcs.dll
FAULTING_IP: +a7d01d0 00000000`00000000 ?? ???
EXCEPTION_RECORD: ffffffffffffffff -- (.exr 0xffffffffffffffff) ExceptionAddress: 0000000000000000 ExceptionCode: 80000003 (Break 指令异常) ExceptionFlags: 00000000 NumberParameters: 0
FAULTING_THREAD:0000000000001678
PROCESS_NAME:AppName.exe
OVERLAPPED_MODULE:“msdart”和“shfolder”重叠的地址区域
ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION} 断点 已到达断点。
EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - 一个或多个参数无效
MOD_LIST:
NTGLOBALFLAG:0
APPLICATION_VERIFIER_FLAGS:0
MANAGED_STACK: !dumpstack -EE 找不到导出转储堆栈
ADDITIONAL_DEBUG_TEXT:基于属性 [Is_ChosenCrashFollowupThread] 的后续集来自 Frame:[0] on thread:[PSEUDO_THREAD]
LAST_CONTROL_TRANSFER:从 00000000732cadb3 到 00000000732efdea
BUGCHECK_STR:APPLICATION_FAULT_STACKIMMUNE_NOSOS
PRIMARY_PROBLEM_CLASS:堆栈免疫
DEFAULT_BUCKET_ID:堆栈免疫
STACK_TEXT:
00000000 00000000 00000000
00000000 未知!AppName.exe+0x0
SYMBOL_NAME:未知!AppName.exe
FOLLOWUP_NAME:机器所有者
MODULE_NAME:未知
IMAGE_NAME:未知
DEBUG_FLR_IMAGE_TIMESTAMP:0
STACK_COMMAND: ** 伪上下文 ** ; KB
FAILURE_BUCKET_ID:STACKIMMUNE_80000003_unknown!已卸载
BUCKET_ID:X64_APPLICATION_FAULT_STACKIMMUNE_NOSOS_unknown!AppName.exe
跟进:MachineOwner
这可能是罪魁祸首:“msdart”和“shfolder”重叠的地址区域?