Предупреждение: несколько управляемых методов по этому адресу

У меня проблема с приложением C#, которое может в случайные моменты времени зависать без предупреждения или значимой информации. Одни и те же данные могут быть переданы через приложение, но оно не падает одновременно, иногда даже не падает.

Я использовал WinDbg, чтобы получить информацию об исключении. E сть NullReferenceException быть брошенным вместе с Access Violation ошибка.

Используя SOSEX, у меня есть стек с помощью !mk, У меня есть стек со следующим:

03:M 000000001aefd4f8 000007fef94cfa70 System.Runtime.Remoting.SoapServices.GetXmlTypeForInteropType(System.Type, System.String ByRef, System.String ByRef)(+0x0 IL,+0xd9e9a0 Native)
04:M 000000001aefd4f8 000007fef94cfa6f System.Runtime.Remoting.Metadata.RemotingTypeCachedData.get_QualifiedTypeName()(+0x0 IL,+0xd9ea5f Native)
05:U 000000001aefd500 000007fef991339b clr!CopyValueClassUnchecked+0xb8
06:U 000000001aefd550 000007fef9902491 clr!JIT_BoxFastMPIGT__PatchTLSLabel+0x51
[WARNING: Multiple managed methods at this address]07:M 000000001aefd580 000007fef87350ad System.Collections.Generic.List`1[[System.__Canon, mscorlib]].System.Collections.Generic.IEnumerable<T>.GetEnumerator()(+0x0 IL,+0xff47bced Native)
[WARNING: Multiple managed methods at this address]08:M 000000001aefd5d0 000007fef6d60e4f System.Linq.Enumerable.FirstOrDefault[[System.__Canon, mscorlib]](System.Collections.Generic.IEnumerable`1<System.__Canon>, System.Func`2<System.__Canon,Boolean>)(+0x22 IL,+0x5f Native)
09:M 000000001aefd630 000007fe9a7885d8 Settings.VersionedSettings.GetSetting(System.DateTimeOffset, System.Guid)(+0x4e IL,+0x258 Native)

Строки, начинающиеся с [WARNING: Multiple managed methods at this address] кажется особенно тревожным - что это значит?

Посмотрев снизу вверх по стеку, до этой точки все выглядит нормально. Затем случайный вызов метода IEnumerable.FirstOrDefault сбрасывает это. VersionedSettings.GetSetting(...) метод не делает таких вызовов. Вот почему я немного растерялся.

РЕДАКТИРОВАТЬ: я бегу !verifyheap в WinDbg и вывод был "Не обнаружено повреждения кучи." Мои знания WinDbg ограничены, поэтому я не уверен, насколько точна эта команда, но я подумал, что ее стоит добавить.

Кто-нибудь знает, что происходит?

0 ответов

Другие вопросы по тегам