我的运营团队和开发人员对发生这种情况的原因一无所知。基本上,客户端/服务器应用程序的服务器端服务挂起。我们一直在推出新的错误修复版本并向开发人员提供各种日志,但他们无法弄清楚。更难理解的是,这是一个与客户端上的另一个应用程序紧密协作的应用程序。
我不知道我是否在这里有所作为,因为我的 windbg 经验有限,但这似乎值得一试。谷歌很有前途,但大多数游戏玩家都有蓝屏死机,但没有提供更多信息......
我在转储开始时发现了这一点:
WARNING: odbccp32 overlaps comctl32 . WARNING: odbc32 overlaps odbccp32 WARNING: odbc32 overlaps comctl32 ............. WARNING: mswsock overlaps FWPUCLNT ....... WARNING: winsta overlaps winnsi . WARNING: ntlanman overlaps drprov .... ... WARNING: srvcli overlaps netapi32 WARNING: wkscli overlaps srvcli .......... WARNING: ncrypt overlaps schannel . WARNING: nlaapi overlaps ncrypt . WARNING: NapiNSP overlaps nlaapi .... WARNING: rsaenh overlaps cryptsp
还有一点:
OVERLAPPED_MODULE: Address regions for 'odbc32' and 'odbccp32' overlap
这是完整的 !analyze -v 转储:
Microsoft (R) Windows Debugger Version 6.2.8400.0 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\debug\MES\PLSMES.dmp]
User Mini Dump File: Only registers, stack and portions of memory are available
Symbol search path is: srv*c:\symbols*c:\windows\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows 7 Version 7601 (Service Pack 1) MP (16 procs) Free x64
Product: Server, suite: TerminalServer SingleUserTS
Machine Name:
Debug session time: Thu Jun 14 10:37:01.000 2012 (UTC + 2:00)
System Uptime: not available
Process Uptime: 0 days 6:36:13.000
......................................WARNING: odbccp32 overlaps comctl32
.WARNING: odbc32 overlaps odbccp32
WARNING: odbc32 overlaps comctl32
.............WARNING: mswsock overlaps FWPUCLNT
.......WARNING: winsta overlaps winnsi
.WARNING: ntlanman overlaps drprov
....
...WARNING: srvcli overlaps netapi32
.WARNING: wkscli overlaps srvcli
..........WARNING: ncrypt overlaps schannel
.WARNING: nlaapi overlaps ncrypt
.WARNING: NapiNSP overlaps nlaapi
....WARNING: rsaenh overlaps cryptsp
Cannot read PEB32 from WOW64 TEB32 7efdd000 - Win32 error 0n30
wow64cpu!CpupSyscallStub+0x9:
00000000`741f2e09 c3 ret
0:000> !analyze -v
*******************************************************************************
* *
* Exception Analysis *
* *
*******************************************************************************
*** WARNING: Unable to verify timestamp for PLSMES.exe
*** ERROR: Module load completed but symbols could not be loaded for PLSMES.exe
FAULTING_IP:
+0
00000000`00000000 ?? ???
EXCEPTION_RECORD: ffffffffffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 0000000000000000
ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000
NumberParameters: 0
FAULTING_THREAD: 0000000000001364
DEFAULT_BUCKET_ID: BAD_DUMP_MISSING_MEMORY
PROCESS_NAME: PLSMES.exe
OVERLAPPED_MODULE: Address regions for 'odbc32' and 'odbccp32' overlap
ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION} Breakpoint A breakpoint has been reached.
EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid
NTGLOBALFLAG: 0
APPLICATION_VERIFIER_FLAGS: 0
APP: plsmes.exe
ADDITIONAL_DEBUG_TEXT: Followup set based on attribute [Is_ChosenCrashFollowupThread] from Frame:[0] on thread:[PSEUDO_THREAD]
LAST_CONTROL_TRANSFER: from 0000000000000000 to 00000000741f2e09
PRIMARY_PROBLEM_CLASS: BAD_DUMP_MISSING_MEMORY
BUGCHECK_STR: APPLICATION_FAULT_BAD_DUMP_MISSING_MEMORY
STACK_TEXT:
00000000`00000000 00000000`00000000 bad_dump!missing_stack+0x0
SYMBOL_STACK_INDEX: 0
SYMBOL_NAME: bad_dump!missing_stack
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: bad_dump
IMAGE_NAME: bad_dump
DEBUG_FLR_IMAGE_TIMESTAMP: 0
STACK_COMMAND: ** Pseudo Context ** ; kb
FAILURE_BUCKET_ID: BAD_DUMP_MISSING_MEMORY_80000003_bad_dump!missing_stack
BUCKET_ID: X64_APPLICATION_FAULT_BAD_DUMP_MISSING_MEMORY_bad_dump!missing_stack
WATSON_STAGEONE_URL: http://watson.microsoft.com/StageOne/PLSMES_exe/4_4_3_2582/4f8ac8f6/unknown/0_0_0_0/bbbbbbb4/80000003/00000000.htm?Retriage=1
Followup: MachineOwner
---------
这可能与应用程序挂起有关吗?重叠内存似乎不太好。 注意:同一台服务器运行同一应用程序的其他实例不会出错。
任何指向进一步调试的指针也很好。
(从 ServerFault 移出,我想最好在这里问。)
最佳答案
我曾在使用 64 位版本的任务管理器创建 32 位进程的转储时看到过这种情况。如果是这种情况,请使用 32 位版本的任务管理器,它可以在 SysWOW64 文件夹中找到。此链接描述了问题: http://blogs.msdn.com/b/tess/archive/2010/09/29/capturing-memory-dumps-for-32-bit-processes-on-an-x64-machine.aspx
关于Windows 应用程序调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11097652/