我們有一個使用Compact Framework 3.5的C#應用程序,運行在運行Windows CE 5.0和Windows Mobile的「移動計算機」上。Compact Framework 3.5應用程序在CE7/Motorola上間歇性崩潰MC32N0
該應用程序在這些設備上運行良好,包括運行Windows CE 5.0的Motorola/Symbol MC3190。
現在,這款MC3190已經成爲了生命的終結,並且被Motorola/Symbol MC3200(也是MC32N0)所取代。該設備運行Windows CE 7.0並預先安裝了Compact Framework 3.5。
我們的應用程序在這個設備上間歇性地和神祕地崩潰。
我可以通過在我們的應用程序中打開和關閉很多表單來一致地重現問題。這些操作不會導致任何網絡流量。有時我會在30秒內發生崩潰,有時需要10分鐘的隨機操作。
在某些時候,應用程序將完全凍結。按下Windows CE開始按鈕將在凍結的應用程序上繪製開始菜單,但再次按下它不會隱藏開始菜單。
它看起來好像在工具包內有某種無限循環,但我找不到它是什麼。這裏是我試過的事情的清單:
我已經向源基站許多變化(主要是改變如何形式顯示和設置)
我試圖崩潰的應用程序,同時附加到VS調試器,然後「打破所有」,但這將只是拖延,直到我硬重啓設備。
我試過使用.NET Compact Framework遠程性能監視器,它顯示了我關於垃圾收集等的有趣數字,但沒有內存泄漏,也沒有任何信息幫助我查明凍結。
我試過使用「CLR Profiler」,但是這個錯誤出現在我的設備上,並顯示消息「連接時出現未知錯誤:RemoteInstall:不受支持的指令集」。
我一直試圖聯繫摩托羅拉的支持,甚至送他們我的源代碼,但他們只是要求知道「哪些API導致崩潰」(我希望他們能告訴我)
問題:
有沒有人見過這樣的上MC32N0運行CF應用程序崩潰?
有沒有人有在MC32N0上工作的CLR Profiler?
有沒有人有一個想法如何獲得一種凍結CF應用程序上的線程轉儲? (有點像JVM的jstack)
有沒有人有任何其他的想法如何去調試呢?
任何幫助非常感謝!
更新
設備已幾次與視覺碰撞神器墜毀在我身上,就像這樣:
http://i.stack.imgur.com/HAxt8.jpg
崩潰症狀一般是這樣的:
- 高興地使用應用程序,在世界上不需要照顧的訂單
- 突然,應用不再處理鍵盤輸入
- 有趣的是,在這一點上,我常常能夠集中不同的文本框光標將完全眨眼次數會在那裏一小會兒
- 幾個互動後,系統鎖定了,和Windows開始按鈕變得沒有反應以及
- 幾次 - 設備將圖像中產生的碰撞模型像上面
- 這些崩潰我見過的約100 3注意:我們的供應商交付了兩臺產生崩潰的MC3200設備,所以我覺得很難相信這是一個硬件問題。
有沒有人認識到這些「症狀」?有什麼想法嗎?
不幸的是(對我來說),我不得不在炸彈包裝框架工作了幾年,不幸的是(對你而言),來自公主新娘的引用在這裏適用:「習慣失望。」 –