I apologize if this question should have been posted on other blog. Please
advice where to post my question if this is the case.
I have a service running on windows 7 x64 system and crashes intermittently
at customer site. I am able to ask the customer to run a debug version,
attached a visual studio debugger to the process, and collect a crash dump
file when it breaks into the debugger. To my surprise the crash dump file
does not indicate any exception or bug check. It seems to stop because a
breakpoint has been reached, which I did not set. I hope some of you can
shed some light on why this is happening. Below is kernel debugger?s
analysis on the crash dump:
**********************************************
*Microsoft (R) Windows Debugger Version 6.2.9200.20512 AMD64*
*Copyright (c) Microsoft Corporation. All rights reserved.*
*Loading Dump File [D:\temp\64bit\10232013-Crashdump\VldIos_2nd.dmp]*
*User Mini Dump File with Full Memory: Only application data is available*
*WARNING: Path element is empty*
*Symbol search path is:
SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols;;D
http::\xxx \IO Service\Debug*
Executable search path is:
Windows 7 Version 7601 (Service Pack 1) MP (16 procs) Free x64
Product: Server, suite: TerminalServer SingleUserTS
Built by: 6.1.7601.18015 (win7sp1_gdr.121129-1432)
Machine Name:
Debug session time: Wed Oct 23 08:59:43.000 2013 (UTC - 8:00)
System Uptime: 2 days 9:27:04.805
Process Uptime: 0 days 5:55:39.000
…
ntdll!NtWaitForSingleObject+0xa:
0000000076d712fa c3 ret*<br><br>*WARNING: Path element is empty*<br><br> ****WARNING: Unable to verify checksum for VldIos.exe*<br><br>*0:001> !analyze -v*<br><br>********************************************************************************* <br><br> **<br>** <br><br> **Exception<br>Analysis** <br><br> **<br>** <br><br> ********************************************************************************* <br><br>*FAULTING_IP:*<br><br>*+0*<br><br>*00000000
00000000 ?? ???
EXCEPTION_RECORD: ffffffffffffffff – (.exr 0xffffffffffffffff)
ExceptionAddress: 0000000000000000
* ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000*
NumberParameters: 0
FAULTING_THREAD: 00000000000005a0
DEFAULT_BUCKET_ID: STATUS_BREAKPOINT
PROCESS_NAME: VldIos.exe
ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION} Breakpoint A breakpoint
has been reached.
EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651 <%282147483651>) - One or
more arguments are invalid
NTGLOBALFLAG: 0
APPLICATION_VERIFIER_FLAGS: 0
APP: vldios.exe
PRIMARY_PROBLEM_CLASS: STATUS_BREAKPOINT
BUGCHECK_STR: APPLICATION_FAULT_STATUS_BREAKPOINT
LAST_CONTROL_TRANSFER: from 000007fefcd210dc to 0000000076d712fa
*STACK_TEXT: *
000000000028ef38 000007fe
fcd210dc : 0000000000000000 00000000
76d401d5
0000000000000004 00000000
003fa7d0 : ntdll!NtWaitForSingleObject+0xa
000000000028ef40 000007fe
fef1affb : 00000000ffffffff 000007fe
fef1344c
0000000000000000 00000000
000000d8 : KERNELBASE!WaitForSingleObjectEx+0x79
000000000028efe0 000007fe
fef19d61 : 00000000003e0c20 00000000
000000d8
0000000000000000 00000000
00000000 :
sechost!ScSendResponseReceiveControls+0x13b
000000000028f0d0 000007fe
fef19a51 : 000000000028f218 00000000
00000000
0000000000000000 00000000
00000000 : sechost!ScDispatcherLoop+0x121
000000000028f1e0 00000001
4003821f : 0000000000000000 00000000
003e8990
000000000028f158 00000000
00000000 :
sechost!StartServiceCtrlDispatcherA+0x6d
000000000028f210 00000001
4001f290 : 0000000000000000 00000001
400c7348
000000000028ec28 00000000
00000000 : VldIos!InitService+0x8f
000000000028f280 00000000
61e7c419 : 000000014013b860 00000000
00000000
00000000003137a9 00000000
0000000a : VldIos!CLhdIOSApp::InitInstance+0x9b0
000000000028f860 00000001
4007bec1 : 000000013ffe0000 00000000
00000000
00000000003137a9 00000000
0000000a : mfc100d!AfxWinMain+0xc9
000000000028f8f0 00000001
40073eb6 : 000000013ffe0000 00000000
00000000
00000000003137a9 00000000
0000000a : VldIos!WinMain+0x31
000000000028f920 00000001
40073bae : 0000000000000000 00000000
00000000
0000000000000000 00000000
00000000 : VldIos!__tmainCRTStartup+0x2f6
000000000028fa10 00000000
76c1652d : 0000000000000000 00000000
00000000
0000000000000000 00000000
00000000 : VldIos!WinMainCRTStartup+0xe
000000000028fa40 00000000
76d4c541 : 0000000000000000 00000000
00000000
0000000000000000 00000000
00000000 : kernel32!BaseThreadInitThunk+0xd
000000000028fa70 00000000
00000000 : 0000000000000000 00000000
00000000
0000000000000000 00000000
00000000 : ntdll!RtlUserThreadStart+0x1d
STACK_COMMAND: ~0s; .ecxr ; kb
FOLLOWUP_IP:
sechost!ScSendResponseReceiveControls+13b
000007fefef1affb 85c0 test eax,eax*<br><br>*SYMBOL_STACK_INDEX: 2*<br><br>*SYMBOL_NAME: sechost!ScSendResponseReceiveControls+13b*<br><br>*FOLLOWUP_NAME: MachineOwner*<br><br>*MODULE_NAME: sechost*<br><br>*IMAGE_NAME: sechost.dll*<br><br>*DEBUG_FLR_IMAGE_TIMESTAMP: 4a5be05e*<br><br>*FAILURE_BUCKET_ID:<br>STATUS_BREAKPOINT_80000003_sechost.dll!ScSendResponseReceiveControls*<br><br>*BUCKET_ID:<br>X64_APPLICATION_FAULT_STATUS_BREAKPOINT_sechost!ScSendResponseReceiveControls+13b*<br><br>*WATSON_STAGEONE_URL:<br>http://watson.microsoft.com/StageOne/VldIos_exe/6_1_0_54321/526180ca/unknown/0_0_0_0/bbbbbbb4/80000003/00000000.htm?Retriage=1<br><http:>*<br><br>*Followup: MachineOwner*<br><br>*0:001> .lastevent*<br><br>*Last event: 1b74.5a0: Break instruction exception - code 80000003<br>(first/second chance not available)*<br><br>* debugger time: Wed Nov 6 12:18:07.287 2013 (UTC - 8:00)*<br><br>*0:001> r*<br><br>*rax=0000000001cc7800 rbx=0000000000000000 rcx=0000000001cc9980*<br><br>*rdx=fefefefefefefefe rsi=00000000ffffffff rdi=0000000000000134*<br><br>*rip=0000000076d712fa rsp=0000000001ccf8a8 rbp=0000000000000000*<br><br>*r8=0000000000000030 r9=0000000000000079 r10=0000000000000000*<br><br>*r11=0000000000000246 r12=0000000000000000 r13=0000000000000000*<br><br>*r14=0000000000000000 r15=0000000000000000*<br><br>*iopl=0 nv up ei pl zr na po nc*<br><br>*cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b<br>efl=00000246*<br><br>*ntdll!NtWaitForSingleObject+0xa:*<br><br>*00000000
76d712fa c3 ret
0:001> ub 0000000076d712fa*<br><br>*ntdll!NtMapUserPhysicalPagesScatter:*<br><br>*00000000
76d712e0 4c8bd1 mov r10,rcx
0000000076d712e3 b800000000 mov eax,0*<br><br>*00000000
76d712e8 0f05 syscall
0000000076d712ea c3 ret*<br><br>*00000000
76d712eb 0f1f440000 nop dword ptr [rax+rax]
ntdll!NtWaitForSingleObject:
0000000076d712f0 4c8bd1 mov r10,rcx*<br><br>*00000000
76d712f3 b801000000 mov eax,1
0000000076d712f8 0f05 syscall*<br><br>*0:001> ub 00000001
4003821f
VldIos!InitService+0x60 [d:\xxx\io service\srvcctrl.cpp @ 77]:
00000001400381f0 488905313b1000 mov qword ptr<br>[VldIos!hTerminateEvent (00000001
4013bd28)],rax
00000001400381f7 48833d293b100000 cmp qword ptr<br>[VldIos!hTerminateEvent (00000001
4013bd28)],0
00000001400381ff 7464 je VldIos!InitService+0xd5<br>(00000001
40038265)
0000000140038201 488d1518400b00 lea rdx,[VldIos!szDelete+0x178<br>(00000001
400ec220)]
0000000140038208 488b0d41361000 mov rcx,qword ptr [VldIos!WSMLog<br>(00000001
4013b850)]
000000014003820f e8229efaff call<br>VldIos!ILT+4145(?DebugOSMLoggingQEAAXPEBDZZ) (00000001
3ffe2036)
0000000140038214 488d4c2428 lea rcx,[rsp+28h]*<br><br>*00000001
40038219 ff15c9eb1000 call qword ptr
[VldIos!_imp_StartServiceCtrlDispatcherA (00000001`40146de8)]
Below is the source codes of my InitService() function, which calls
StartServiceCtrlDispatcher() to start the service, then waits for the
terminate event.
void InitService( DWORD dwStartStatus )
{
dwStartServiceStatus = dwStartStatus;
SERVICE_TABLE_ENTRY serviceTable =
{
{ “”, ( LPSERVICE_MAIN_FUNCTION)ServiceMain },
{ NULL, NULL }
};
if ( ( hTerminateEvent = CreateEvent( NULL, FALSE, FALSE, NULL ) )
!= NULL )
{
LOG_DBG(“InitService() - Starting service control…\n”);
if ( !StartServiceCtrlDispatcher(serviceTable) )
{
::ErrorHandler( “StartServiceCtrlDispatcher Error -
0x%x”, GetLastError() );
::SetEvent( hTerminateEvent );
}
::WaitForSingleObject( hTerminateEvent, INFINITE );
::CloseHandle( hTerminateEvent );
}
else
{
LOG_ERR(“Failed to create terminateevent!\n”);
::ErrorHandler( “CreateTerminateEvent Error.” );
}
}
Please note that the service did not die when it started. It
successfully started and ran for random time before hitting this ?break
point?. I collected 2 separate crash dumps and they pointed to the same
failure point.
Appreciate your guidance/advice. Thanks!
M.</http:></http:>