Windows应用程序调试 [英] Windows application debugging

查看:323
本文介绍了Windows应用程序调试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的运营团队以及开发人员都不知道为什么会这样。基本上,客户端/服务器应用程序的服务器端服务挂起。我们一直在推销新的错误修正版本,并向开发人员提供各种日志,但他们无法解决。更难弄清的是,该应用程序与客户端上的另一个应用程序紧密协作。

My operations group, and the devs are clueless to why this happens. Basically the server-side service of a client/server application hangs. We have been pushing new bugfixed versions and providing all kinds of logs to the devs, but they can't figure it out. To make it even harder to figure out, this is an application that works very closely with another application on the client side.

我不知道我是否在研究某些东西在这里,由于我的windbg经验有限,但这似乎值得一试。 Google的前景很好,但大多数拥有BSOD的游戏玩家都无法提供更多信息...

I have no idea if I'm onto something here, as I have limited windbg experience, but this seems worth checking out. Google comes up pretty promising, but with mostly gamers having BSODs not providing much more info...

我在转储开始时就发现了这一点:

I found this bit at the start of the dump:


警告:odbccp32与comctl32重叠。
警告:odbc32重叠odbccp32
警告:odbc32重叠comctl32 .............
警告:mswsock重叠FWPUCLNT ................
警告:winsta与winnsi重叠。
警告:ntlanman重叠drprov .... ...
警告:srvcli重叠netapi32
警告:wkscli重叠srvcli .....
警告: ncrypt与schannel重叠。
警告:nlaapi与ncrypt重叠。
警告:NapiNSP与nlaapi重叠....
警告:rsaenh与cryptsp

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:'odbc32'和'odbccp32'的地址区域重叠

OVERLAPPED_MODULE: Address regions for 'odbc32' and 'odbccp32' overlap

这是完整的!analyze -v转储:

Here is the complete !analyze -v dump:

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
---------

这是否与应用程序挂起有关?重叠的内存似乎不太好。
注意:同一台服务器可以运行同一应用程序的其他实例,而不会发生错误。

Could this be related to the application hangs? Overlapping memory doesn't seem good. Note: The same server runs other instances of the same application without error.

任何进一步调试的指针也将很好。

Any pointers to further debugging would also be nice.

(从ServerFault移出,我想这里最好问这个。)

(Moved from ServerFault, I guess this is better asked here.)

推荐答案

我我们已经看到,当使用64位版本的任务管理器创建32位进程的转储时,会发生这种情况。如果是这种情况,请使用SysWOW64文件夹中的32位版本的任务管理器。此链接描述了问题:
http://blogs.msdn.com/b/tess/archive/2010/09/29/capturing-memory-dumps-for-32-bit-processes-on- an-x64-machine.aspx

I've seen this happen when a 64 bit version of task manager is used to create a dump of a 32 bit process. If this is your case, then use the 32 bit version of task manager which can be found in the SysWOW64 folder. This link describes the problem: http://blogs.msdn.com/b/tess/archive/2010/09/29/capturing-memory-dumps-for-32-bit-processes-on-an-x64-machine.aspx

这篇关于Windows应用程序调试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆