如何偵錯存取違規?
更新:2007 年 11 月
這個主題適用於:
版本 |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express 版 |
![]() |
![]() |
僅適用原生 |
![]() |
Standard 版 |
![]() |
![]() |
僅適用原生 |
![]() |
Pro/Team 版 |
![]() |
![]() |
僅適用原生 |
![]() |
表格圖例:
![]() |
套用 |
![]() |
不套用 |
![]() |
預設隱藏的命令。 |
問題說明
我的程式產生存取違規。該如何偵錯?
方案
使用 [呼叫堆疊] 視窗回到呼叫堆疊,尋找做為參數傳入至函式的損毀資料。如果失敗,嘗試在發生存取違規的位置之前設定中斷點。檢查看看資料在這個位置是否是好的。如果是,嘗試逐步朝向存取違規發生的地方。如果您可以辨識單一動作,例如造成存取違規的功能表命令,您可以試試另一種技術:在動作 (在這個範例是功能表命令) 和存取違規之間設定中斷點。然後您可以查看在造成存取違規的期間程式狀態。
您可以結合這些技術來前後作用,直到您已經隔離出發生存取違規的位置。如需詳細資訊,請參閱使用呼叫堆疊視窗。