我正在編寫託管代碼,並且我使用非託管庫(Qt)的託管綁定(qt4dotnet)。偶爾會出現一個來自Qt的AccessViolationException,但我不知道如何去調試它。我甚至沒有比託管/非託管邊界更遠的堆棧跟蹤(這意味着我不知道Qt的哪個部分碰撞了我)。如何調試來自本地代碼的AccessViolationException
順便說一句,我在VS調試器中運行我的應用程序。
如何調試異常?
我正在編寫託管代碼,並且我使用非託管庫(Qt)的託管綁定(qt4dotnet)。偶爾會出現一個來自Qt的AccessViolationException,但我不知道如何去調試它。我甚至沒有比託管/非託管邊界更遠的堆棧跟蹤(這意味着我不知道Qt的哪個部分碰撞了我)。如何調試來自本地代碼的AccessViolationException
順便說一句,我在VS調試器中運行我的應用程序。
如何調試異常?
僅通過檢查給調用本機代碼的函數提供的參數。
項目+屬性,調試選項卡,勾選「啓用非託管代碼調試」。這仍然不會讓事情變得簡單,但至少你可以在炸彈爆炸時查看非託管堆棧幀。確保你已經獲得了Qt代碼的.pdb文件。
該死的,調用本機代碼的函數是QApplication.exec(),它不需要參數,並且在那裏可能會發生任何*。是否有一個技術原因,我爲什麼不回溯到非託管代碼,還是隻是VS中缺少的功能? – 2010-07-14 10:37:48