Как отладить исключение в KernelBase.dll, которое происходит только с. NET Native toolchain - PullRequest
0 голосов
/ 22 апреля 2020

Я работаю над C# приложением UWP из нового проекта, который я запустил в Visual Studio на этой неделе. Ранее он прекрасно работал в режиме выпуска, но теперь сразу после запуска я получаю исключение Exception thrown at 0x75FF4192 (KernelBase.dll) in GhostOverlay.exe: 0x04242420 (parameters: 0x31415927, 0x743C0000, 0x014FEA90). Я не получаю никаких исключений, если я запускаю свое приложение в режиме отладки - он работает нормально.

Если я продолжу один раз , Я получаю

Exception thrown at 0x75FF4192 in GhostOverlay.exe: Microsoft C++ exception: EEFileLoadException at memory location 0x014FD158.

>   vcruntime140_clr0400.dll!__CxxThrowException@8()    Unknown
    clr.dll!EEFileLoadException::Throw(class AssemblySpec *,struct IFusionBindLog *,long,class Exception *) Unknown
    clr.dll!AppDomain::BindAssemblySpec(class AssemblySpec *,int,int,enum StackCrawlMark *,struct AssemblyLoadSecurity *,int)   Unknown
    clr.dll!PEFile::LoadAssembly(unsigned int,struct IMDInternalImport *,char const *,char const *) Unknown
    clr.dll!Module::LoadAssembly(class AppDomain *,unsigned int,char const *,char const *)  Unknown
    clr.dll!Assembly::FindModuleByExportedType(unsigned int,enum Loader::LoadFlag,unsigned int,unsigned int *)  Unknown
    clr.dll!EEClassHashTable::UncompressModuleAndClassDef(void *,enum Loader::LoadFlag,class Module * *,unsigned int *,unsigned int *)  Unknown
    clr.dll!StgPoolReadOnly::GetString(unsigned int,char const * *) Unknown

Если я отключаю «Смешанный (Mangaed и Native)» отладку и использую «Только управляемый», я получаю только Unhandled exception at 0x75FF4192 (KernelBase.dll) in GhostOverlay.exe: 0xE0434352 (parameters: 0x80070002, 0x00000000, 0x00000000, 0x00000000, 0x743C0000).

Я немного не в себе мои глубины, будучи довольно новым для. NET разработки, но после многих поисков Google некоторые из этих кодов исключений, похоже, указывают на ошибку "файл не найден"? Я не думаю, что это происходит непосредственно из моего кода (так как все это прекрасно работает в режиме отладки), но я даже попытался удалить весь свой код, файлы и зависимости Nuget и остаться с помощью относительно пустого App.xaml / App.xaml.cs, и ошибка все еще происходит. Поскольку ошибка возникает сразу после запуска, и я не вижу никакой трассировки стека, указывающей на что-то в моем коде, я сомневаюсь, что мне не хватает файла, на который я указываю в моем коде.

Если я запускаю приложение с помощью отладчика cdb, !PrintException возвращает Could not load file or assembly System.Private.CoreLib, но я не уверен, является ли это красной сельдью или нет, поскольку я никогда раньше не использовал cdb.

cdb output

Я гуглил этот один и большинство результатов упомянул загрузку нативного кода или кода C ++, чего я не делаю.

I проделал бесчисленное количество чисток и удалений папок bin и obj. Я даже переустановил Visual Studio 2019 и SDK, чтобы быть абсолютно уверенным, что в моей установке нет ничего, что могло бы вызвать проблему.

Я не знаю, какие дальнейшие шаги я могу предпринять, чтобы помочь отладить эту проблему ,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...