Wir haben diesen Fehler, der nur 30% der Zeit für den Release-Build erscheint. Öffnen der Crash-Dump in WinDbg (snipped Ausgang "analyze -v!"):.NET Debugging - System.Threading.ExecutionContext.runTryCode
FAULTING_IP:
+4
00000000`00000004 ?? ???
EXCEPTION_RECORD: ffffffffffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 0000000000000004
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000008
Parameter[1]: 0000000000000004
Attempt to execute non-executable address 0000000000000004
ERROR_CODE: (NTSTATUS) 0xc0000005 -
The instruction at 0x%08lx referenced memory at 0x%08lx.
The memory could not be %s.
WRITE_ADDRESS: 0000000000000004
MANAGED_STACK:
(TransitionMU)
0000000024B9E370 000007FEEDA1DD38
mscorlib_ni!
System.Threading.ExecutionContext.runTryCode(System.Object)+0x178
(TransitionUM)
(TransitionMU)
0000000024B9DFB0 000007FF00439010 MyLibrary!DocInfo.IsStatusOK()+0x30
Nun IsStatusOK() nur PrintSystemJobInfo.Get() nennt, aber das scheint nicht einmal in dem Stapel erscheinen.
Irgendwelche Ideen zum Debuggen? Ich bin sicher runTryCode() ist wirklich nicht das Problem ... aber .. ich bin fest.
Danke! (Ich taste wirklich hier).
Da niemand nach einer Stunde noch geantwortet hat, würde ich vorschlagen, dass Sie versuchen würden, jemanden unter http://blogs.msdn.com/ntdebugging/ zu erreichen. Für was es wert ist, nehme ich an, dass ein Zeiger auf eine Prozedur in runTryCode übergeben werden sollte. Aus irgendeinem Grund wurde dieser Zeiger verschlüsselt (überschrieben?) Und enthält 000 ... 4. Vielleicht könnten Sie herausfinden, welche Prozedur hätte aufgerufen werden sollen und von dort aus arbeiten, um herauszufinden, wer diese spezifische Adresse überschrieben hat. –
Erhalten Sie immer genau diesen Crash Dump? Ein Teil des Problems mit dem Debugging von Zugriffsverletzungen ist, dass sie tatsächlich Nebeneffekte eines anderen Codes sein können, der * nicht * abgestürzt ist, aber sich dazu entschieden hat, über den gesamten Speicher zu kritzeln (was normalerweise durch zeitweilige Abstürze und Inkonsistenzen belegt wird) Stapelspuren). – Aaronaught