2010-01-12 64 views
1

我試圖在使用Visual Studio 2005的Windows Mobile 6設備上調試.NET Compact框架C#應用程序。如果執行達到我以前設置的斷點,則10次中有9次崩潰。如果它不是第一次崩潰,即使通過應用程序的多次執行,該斷點也將繼續正常工作。如何在Windows Mobile設備上調試時停止Visual C#2005崩潰?

+1

有什麼異常會崩潰?你能給我們多一點信息嗎? – 2010-01-12 12:55:01

+0

同意tomlog – Krunal 2010-01-12 12:56:47

+0

如果不設置斷點,它會崩潰嗎?如果你在main中設置斷點呢? – user227997 2010-01-12 15:04:14

回答

0

對於Visual Studio 2005重新安裝Service Pack 1後,此問題似乎已得到解決。

3

我會在地址 0x00000000015fab774異常代碼0000005 (STATUS_ACCESS_VIOLATION)。

這是一個本機異常。在託管應用程序中,這通常是由您的某個P/Invokes或WindowsCE自定義版本中的缺陷導致的。

我在使用某些打印機代碼時遇到了同樣的問題。本地異常僅在連接的調試期間發生,然後不是所有的時間,而是有時在所有的時間。 :d。它從未在生產中發生過。
實際的問題是C++的一個壞點,它得到了一個字符串(以及一個指向字符串的指針),然後吞噬了接下來的1024個字節。問題是,有時它不應該訪問這些字節中的一部分!我想這是在調試過程中發生的,因爲使用了更多的內存或者一些好奇的內存對齊方案。
我們通過將字符串的長度傳遞給C++調用來解決該問題,因此它不必盲目地採用下一個1024。

值得注意的是,還有更多的可能性導致0xC0000005。一些非常有幫助的人添加了一些這些可能性here

如果您無權訪問任何較低級別的代碼,我建議將此問題與提供您的操作系統映像的人員(通常是製造商)以及您使用的任何低級別組件的提供者一起考慮。這個問題很難解決,所以我不希望自己修復,特別是如果製造商是Symbol,Intermec或Datalogic(前者有狗屎支持,後者只是解僱了大部分開發者)。

+0

不幸的是,它是Visual Studio本身崩潰並生成訪問衝突,應用程序本身沒有問題,直到Visual Studio由於錯誤而重新啓動 – Kentaree 2010-01-14 09:51:15