简体   繁体   English

如何找到引发EETypeLoadException的原因?

[英]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.

相关问题 如何测试抛出异常的具体原因? - How do you test for the specific reason an exception was thrown? 我如何找到为什么我得到“抛出'System.Web.HttpUnhandledException'类型的异常”? - How do I find why I get "Exception of type 'System.Web.HttpUnhandledException' was thrown"? 如果从Microsoft的代码中抛出异常,我如何找出最初导致异常的内容? - How do I find out what originally caused an exception, if it gets thrown from Microsoft's code? 如何找到在C#中引发的异常的异常类型? - How do I find the exception type of an exception that gets thrown in C#? 如何断言构造函数中抛出的异常? - How do I assert the exception thrown in the constructor? 如何确定是否因共享冲突而引发 IOException? - How do I determine if an IOException is thrown because of a sharing violation? 如何'全局'捕获在对象实例中抛出的异常 - How do I 'globally' catch exceptions thrown in object instances 如何处理异步方法引发的混乱异常? - How do I handle the messy exception that is thrown by an async method? 如何找出方法可以抛出哪种异常? - How can I find out what kind of exceptions can be thrown by a method? 不抛出OptimisticConcurrencyException:可能的原因:UpdateCommand - OptimisticConcurrencyException is not thrown: Possible reason: UpdateCommand
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM