dotnet clr:
Here's a dump of one of the SEHExceptions:
Name: System.Runtime.InteropServices.SEHException
MethodTable 0x79c2b0ec
EEClass 0x79c2b16c
Size 64(0x40) bytes
GC Generation: 0
mdToken: 0x020002f6
(c:\windows\microsoft.net\framework\v1.1.4322\mscorlib.dll)
FieldDesc*: 0x00000000
MT Field Offset Type Attr Value
Name
0x79b947ac 0x400001d 0x4 CLASS instance 0x00000000
_className
0x79b947ac 0x400001e 0x8 CLASS instance 0x00000000
_exceptionMethod
0x79b947ac 0x400001f 0xc CLASS instance 0x00000000
_exceptionMethodString
0x79b947ac 0x4000020 0x10 CLASS instance 0x00ba905c
_message
0x79b947ac 0x4000021 0x14 CLASS instance 0x00000000
_innerException
0x79b947ac 0x4000022 0x18 CLASS instance 0x00000000
_helpURL
0x79b947ac 0x4000023 0x1c CLASS instance 0x00000000
_stackTrace
0x79b947ac 0x4000024 0x20 CLASS instance 0x00000000
_stackTraceString
0x79b947ac 0x4000025 0x24 CLASS instance 0x00000000
_remoteStackTraceString
0x79b947ac 0x4000026 0x2c System.Int32 instance 0
_remoteStackIndex
0x79b947ac 0x4000027 0x30 System.Int32 instance -2147467259
_HResult
0x79b947ac 0x4000028 0x28 CLASS instance 0x00000000
_source
0x79b947ac 0x4000029 0x34 System.Int32 instance 55391628
_xptrs
0x79b947ac 0x400002a 0x38 System.Int32 instance -1073741818
_xcode
-----------------
Exception 00bb1438 in MT 79c2b0ec:
System.Runtime.InteropServices.SEHException
_message: External component has thrown an exception.
So that's C0000006? STATUS_IN_PAGE_ERROR? Why would this lead to a stack
overflow exception? Is there anything we can do to work around the issue?
.... other than get a better network ;)
Here's the full output of the kf command:
0:004> kf
Memory ChildEBP RetAddr
034d2a6c 7c90e9ab ntdll!KiFastSystemCallRet
4 034d2a70 7c8094f2 ntdll!ZwWaitForMultipleObjects+0xc
9c 034d2b0c 7c809c86 KERNEL32!WaitForMultipleObjectsEx+0x12c
1c 034d2b28 793a0ce8 KERNEL32!WaitForMultipleObjects+0x18
2c 034d2b54 793a34bc mscorwks!Debugger::EnsureDebuggerAttached+0x64
28 034d2b7c 793a3736 mscorwks!Debugger::SendException+0xcf
24 034d2ba0 792ae653
mscorwks!Debugger::LastChanceManagedException+0xb6
24 034d2bc4 792540b4 mscorwks!FailFast+0xb0
34 034d2bf8 7923870d mscorwks!GetPrevSEHRecord+0x791
18 034d2c10 792ae59d mscorwks!COMPlusFrameHandler+0x3d
1c 034d2c2c 7c9037bf mscorwks!COMPlusNestedExceptionHandler+0x57
24 034d2c50 7c90378b ntdll!ExecuteHandler2+0x26
b0 034d2d00 7c90eafa ntdll!ExecuteHandler+0x24
0 034d2d00 791b2ecb ntdll!KiUserExceptionDispatcher+0xe
480 034d3180 791d6a13 mscorwks!_SEH_prolog
324 034d34a4 79238c4a mscorwks!Thread::StackWalkFrames+0x8b
1c 034d34c0 79237510 mscorwks!LookForHandler+0x63
e8 034d35a8 79238de4 mscorwks!GetPrevSEHRecord+0x427
34 034d35dc 7923870d mscorwks!GetPrevSEHRecord+0x7d2
18 034d35f4 792ae59d mscorwks!COMPlusFrameHandler+0x3d
As for the dump, I can get a dump as long as I don't use "f", and "h"
generates a warning. I'm not sure why it would continue to complain about
being unable to read from the specified device after the network
connectivity has been restored, however.
Thanks for your assistance.
Regards,
Matt Garven
[quoted text, click to view] "Pavel Lebedinsky [MSFT]" <pavel@online.microsoft.com> wrote in message
news:O%23IbVbHrFHA.3788@TK2MSFTNGP12.phx.gbl...
> What is the exception code in those SEHExceptions (you can use !do
> to dump it)?
>
> !DumpStack is a raw stack dump similar to 'dds esp' so it shows a lot
> of bogus frames. 'kf' would probably give you a better idea of how the
> overflow happened.
>
> To create a dump, you can try excluding pieces of information that could
> be backed by remote files. Start with .dump /m. If that works, try adding
> other options one by one (F, h, u, t, w, d etc).
>
> --
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
>
> "Matt Garven" wrote:
>
>> We're receiving a StackOverflowException intermittently. I've attached
>> with WinDbg and provided some of the stack below (you can see the
>> repeating pattern that eventually causes the stack overflow):
>>
>> 0:004> !DumpStack 035cc9d8
>
>> There are 395 SEHExceptions when I run !dae.
>>
>> Also, I get the following error trying to create a minidump while
>> attached to the process.
>>
>> 0:004> .dump /ma /u stackoverflow.dmp
>> Creating stackoverflow_138C_2005-08-29_15-43-24-331_1450.dmp - mini user
>> dump
>> GenWriteHandleOperations.Start(0x1450) failed, 0x80004001
>> WriteFullMemory.Memory.Read(0x402000, 0x9000) failed, retries 5,
>> 0x8007001e
>> WriteFullMemory.Memory.Read(0x402000, 0x9000) failed, retries 4,
>> 0x8007001e
>> WriteFullMemory.Memory.Read(0x402000, 0x9000) failed, retries 3,
>> 0x8007001e
>> WriteFullMemory.Memory.Read(0x402000, 0x9000) failed, retries 2,
>> 0x8007001e
>> WriteFullMemory.Memory.Read(0x402000, 0x9000) failed, retries 1,
>> 0x8007001e
>> Dump creation failed, Win32 error 30
>> "The system cannot read from the specified device."
>>
>> The process was running from a network share at the time that it crashed,
>> and we were having connectivity issues at the time - this may be related.
>> Is there any way to work around this so I can create the minidump?
>
>