2014-09-01 158 views
7

我有一個Windows 8.1的WinRT(現代/城域網)的應用程序,部分是本地C++和部分.NET(C#)我如何找到導致EETypeLoadException的原因?

在一些點,C++部分被調用,它被設置到C#方法的委託,在此委託被稱爲EETypeLoderException被拋出並且該方法沒有被調用,我想知道這個失敗的原因是什麼。

委託指向的方法是在已加載的.net程序集中,此程序集中的代碼(以及具有待調用方法的相同類)已經運行(並且可能正在運行另一個線程在拋出異常時)

EETypeLoadException是一個本機非託管異常,它由非託管代碼(在msvcr120_clr0400.dll中)引發,我只能使用非託管調試器來查看它,並且該調試器可以不會顯示異常數據,因爲它不知道EETypeLoadException類。

我無法捕捉異常,並從代碼中提取數據,因爲我沒有它的頭文件或它的任何超類。

融合日誌查看器(FUSLOGVW)沒有顯示任何有用的信息,沒有綁定錯誤,成功的綁定看起來沒有關係。

procmon中沒有表現出任何試圖訪問一個缺少DLL

使UI線程或後臺任務上運行的代碼不會改變任何東西。

我甚至試圖查看異常對象的內存轉儲,並且看起來像指針的任何東西,找不到錯誤消息。

這發生在模擬器

我使用Visual Studio 2013更新3在Windows 8.1的機器

回答

1

它看起來像EETypeLoadException通過本機代碼在WinRT中扔在本地機器上都和(即,而不是.net CLR)沒有任何附加信息,也不可能獲得有關錯誤信息的信息

0

這確實是本機代碼的一個例外。我可以通過打開調試>例外> C++異常捕捉到異常,它解決了我的問題:

enter image description here

+0

這如何幫助indetify的問題類型,並找出爲什麼它不能裝? – Nir 2015-09-05 07:23:52

相關問題