У меня есть приложение WPF C#, ориентированное на версию 4.5 .Net framework. Мое приложение вызывает неконтролируемую DLL, все, кроме одного, работают нормально. Когда я вызываю метод проблемы, мой процесс выходит без каких-либо исключений, код выхода: 1073741855 (0x4000001f)
Вызов неуправляемого процесса уничтожения dll без повышения исключения
Я читал об элементе <legacyCorruptedStateExceptionsPolicy>
и добавил его в свой файл app.config. Я включил ВСЕ исключения в диалоговом окне «Исключение настроек» (я использую VS2015, BTW). На этом этапе у меня закончились методы, чтобы определить, что вызывает процесс выхода.
Обновление: Я случайно попробуйте включить Enable родной отладки кода в настройках проекта и теперь появляется следующее исключение:
Exception брошенным в 0x77CBED0B (ntdll.dll) в SK.UnmanagedDLLExceptionTest.exe: 0xC0000374: Куча была повреждена (параметры: 0x77CF4270).
Учитывая приведенную выше информацию, знаете ли вы какие-либо другие методы, которые могут быть использованы для придания дополнительной информации поверхности?
Если вы заинтересованы (и желаете), я создал мертвое простое консольное приложение, которое обнаруживает проблему, download here.
Звучит многообещающе. Я внес изменения, которые вы предложили, но я испытываю те же самые результаты. На странице настроек проекта я заметил параметр «Включить отладку собственного кода» и попробовал это, это привело к следующему исключению: Исключение, брошенное в 0x77CBED0B (ntdll.dll) в SK.UnmanagedDLLExceptionTest.exe: 0xC0000374: куча была поврежден (параметры: 0x77CF4270). –
Тогда у тебя серьезные проблемы. DLL испортила кучу процесса или что-то в этом роде. – Joshua
Я вхожу. :) Оказывается, прорыв для меня состоял в том, чтобы включить параметр «Включить собственный код отладки». Спасибо за вашу помощь, я ценю это –