我有一個多線程Windows應用程序偶爾會出現死鎖。這不可避免地發生在客戶系統上,而不是軟件在測試中。獲取當前應用程序狀態的Windows Minidump的最簡單方法是什麼?如果它也可以終止應用程序,那麼用戶可以重新啓動它並繼續使用那個很棒的系統。如何在客戶機器上調試死鎖的Windows應用程序
0
A
回答
1
在Vista中,您可以直接從任務管理器創建轉儲文件。右鍵單擊進程選項卡中的進程並選擇'創建轉儲文件'。
在Vista之前,我更喜歡ntsd路由,因爲雖然它不是完全用戶友好的,但它不需要用戶安裝任何其他軟件,而且說明實際上相當容易遵循。
2
請參閱Microsoft支持文章How to use ADPlus to troubleshoot "hangs" and "crashes"以及有幫助的博客文章Debugging Production Applications using ADPlus。
這兩篇文章都是關於「ADPlus」的,這是一個隨Windows調試工具提供的VBScript工具,可用於從生產環境(稍後可以在開發機器上使用WinDbg加載)生成小型轉儲。 ADPlus有很多功能和很多選項,因此可能需要一些閱讀,實驗和練習來找到在您的環境中使用它的最佳方式。
1
我知道如何做到這一點。這只是我的技術有點笨重。所有Windows 2000和更高版本的系統都有一個基本的命令行調試程序,作爲名爲NTSD的默認安裝的一部分。我做此刻正在運行:
ntsd -pn MyApp.exe
當調試器控制檯出現那麼我就可以鍵入以下到調試器控制檯:
.dump c:\my-deadlock.mdmp
.kill
我正在尋找的是什麼,有一點更清潔,並且更容易將電子郵件發送給客戶以便運行。我已經看到它暗指某處(谷歌現在找不到),您可以使用drwtsn32.exe來提取崩潰轉儲並終止應用程序。
編輯:可以精簡有些命令:
ntsd -pn MyApp.exe -c ".dump c:\my-deadlock.mdmp; .kill"
命令.detach
可以給出,如果進程不是終末雄(如長網絡超時),你想要的過程繼續。
相關問題
- 1. 調試客戶端機器上的AIR應用程序
- 2. 客戶端 - 服務器應用程序中的死鎖
- 3. 如何在客戶機上安裝windows應用程序和SQL服務器?
- 4. 在客戶端機器上調試WPF
- 5. 如何調試死鎖?
- 6. 如何調試掛起(死鎖)的C++中的多線程應用程序?
- 7. c#Windows窗體應用程序崩潰在客戶端機器
- 8. 如何在客戶端調試我的應用程序exe
- 9. 如何使用WebStorm在客戶端調試Meteor應用程序?
- 10. 如何調試反應本機通用Windows應用程序?
- 11. 在本地機器上調試Windows應用商店應用程序
- 12. 需要有關客戶機/服務器的Windows應用程序
- 13. 掛在客戶機器上的應用程序
- 14. 如何在客戶環境中調試應用程序.NET
- 15. 如何用python調試死鎖?
- 16. 如何調試掛在Windows Phone 8.1上的應用程序
- 17. 如何從我的aspx網頁調用客戶機上的win應用程序?
- 18. 從Windows主機到Windows客戶端的pycharm遠程調試python
- 19. 如何在Windows上調試C程序?
- 20. 在Amazon RDS上調試MySQL死鎖
- 21. 在客戶端機器上運行應用程序
- 22. 調試PyThread_acquire_lock死鎖
- 23. 在其他機器上測試Windows Store應用程序
- 24. 如何直接在Windows Mobile上調試應用程序?
- 25. 如何在遠程服務器上調試Windows Phone 8應用程序?
- 26. 如何測試與Unix機器通信的Windows應用程序
- 27. 如何調試在客戶計算機上崩潰的Windows應用商店應用?
- 28. 客戶機器上的應用程序崩潰
- 29. 如何在手機本身上調試phonegap android應用程序
- 30. 如何解決在windows應用程序中實時調試調試器錯誤?
ADPlus的障礙在於它需要將軟件安裝在最終用戶機器上。我常見的情況是遠程客戶在其Windows服務器上安裝了敏感數據和關鍵業務服務。他們不太願意安裝額外的軟件。 – davefiddes 2009-09-13 15:03:57
來自http://support.microsoft.com/kb/286350:「ADPlus支持XCOPY部署......此外,ADPlus不要求您在系統上註冊任何自定義組件對象模型(COM)組件。 ,您可以在具有鎖定軟件配置的生產服務器上使用ADPlus。「 我還沒有試過,但你甚至可以將它從閃存驅動器中運行。 – 2009-09-15 14:43:01