[英]How do I find the reason EETypeLoadException was thrown?
I have a Windows 8.1 WinRT (modern/metro) application that is partly native C++ and partly .net (C#) 我有一个Windows 8.1 WinRT(现代/地铁)应用程序,该应用程序部分是本机C ++,部分是.net(C#)
At some point the C++ part is calling a delegate that is set to a C# method, when this delegate is called an EETypeLoderException is thrown and the method isn't called, I want to find out what is the reason for this failure. 在某些时候,C ++部分正在调用设置为C#方法的委托,当此委托被称为EETypeLoderException且未调用该方法时,我想找出导致此失败的原因。
The method the delegate is pointing to is in a .net assembly that is already loaded, code from this assembly - and the same class that has the to-be-called method - has already ran (and possibly is running in another thread at the time the exception is thrown) 委托指向的方法在已经加载的.net程序集中,该程序集中的代码以及具有所谓方法的同一类已经运行(并且可能正在该线程的另一个线程中运行)。引发异常的时间)
The EETypeLoadException is a native unmanaged exception, it is thrown by unmanaged code (in msvcr120_clr0400.dll), I can only use the unmanaged debugger to look at it and that debugger can't show me data from the exception because it doesn't know about the EETypeLoadException class. EETypeLoadException是本机非托管异常,它是由非托管代码(在msvcr120_clr0400.dll中)引发的,我只能使用非托管调试器进行查看,并且该调试器无法向我显示该异常的数据,因为它不知道关于EETypeLoadException类。
I can't catch the exception and extract data from it in code because I don't have the header files for it or any of its super classes. 我无法捕获异常并在代码中从中提取数据,因为我没有该异常或其任何超类的头文件。
The fusion log viewer (FUSLOGVW) isn't showing anything useful, no bind errors, successful bindings don't look related. 融合日志查看器(FUSLOGVW)没有显示任何有用的信息,没有绑定错误,成功的绑定看起来并不相关。
Procmon doesn't show any attempt to access a missing dll Procmon没有显示任何尝试访问丢失的dll
Making the code run on the UI thread or a background task doesn't change anything. 使代码在UI线程或后台任务上运行不会改变任何内容。
I even tries looking at the memory dump of the exception object and following anything that looks like a pointer, couldn't find an error message. 我什至尝试查看异常对象的内存转储,并跟随任何看起来像指针的内容,找不到错误消息。
This happens both on the local machine and in the simulator 这在本地计算机和模拟器中都发生
I'm using Visual Studio 2013 update 3 on a Windows 8.1 machine 我在Windows 8.1机器上使用Visual Studio 2013 Update 3
看起来WinRT中的本机代码(即不是.net CLR)抛出的EETypeLoadException没有携带任何其他信息,并且无法获得有关确切失败原因的信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.