Windows 应用程序调试

标签 windows debugging freeze

我的运营团队和开发人员对发生这种情况的原因一无所知。基本上,客户端/服务器应用程序的服务器端服务挂起。我们一直在推出新的错误修复版本并向开发人员提供各种日志,但他们无法弄清楚。更难理解的是,这是一个与客户端上的另一个应用程序紧密协作的应用程序。

我不知道我是否在这里有所作为,因为我的 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/

相关文章:

ios - 在 Xcode 4.2 上,应用程序总是在调试器中暂停

c# - Winforms 应用程序在以毫秒为单位接收数据时挂起

ios - 如何强制 iOS 应用程序挂起而不是崩溃?

css - 修复 Windows 7 上的 Unicode 问题

c++ - Qt - Dll相关问题

SQLite3.exe shell 没有成功创建数据库?

c - 了解一些源代码

c# - 在异常抛出时停止时查看异常

c# - 无法启用Unity C#调试Hololens

ruby-on-rails - 在Rails应用的 View 或部分 View 中使用binding.pry