您好,登錄后才能下訂單哦!
VS 設置調試異常觸發怎么辦,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
說明
默認情況下,VS2005,VS2010沒有設置啟動調試的異常觸發,可在菜單調試下,選擇異常,然后勾選上所有的異常中斷的情況:
C++ Exceptions
Common Language Runtime Exceptions
...
作用
準確定位程序已有的問題,而不是程序崩潰直接退出
注意
用戶設置的調試異常的信息,保存在.suo(Solution User Operation解決方案用戶操作)文件,如果該文件沒有上傳到svn服務器,其他人下載代碼的時候,必須重新設置調試異常的選項。如果沒有進行用戶的修改,默認可能不會生成.suo文件,該文件同時保存了用戶的布局設置
實際應用場景中的效果
1)
在模塊實現了動態加載的工程里面,能夠在調用異常的時候,準確定位到異常出錯的情況,一般是空指針
2)
在處理0xfeeefeee指針錯誤的時候,能夠準確定位到錯誤的代碼
3)
char szTestString[3600*1058*3] = {0};
實際上默認的棧只有2M的空間,上述代碼超出了棧的范圍導致程序崩潰,開啟異常設置之后出現提示:0xC00000FD: Stack overflow
4)Run-Time Check Failure #2 - Stack around the variable 'szError' was corrupted
_TCHAR szError[32] = { 0 };
wsprintf(szError, _T("avcodec_send_packet:%d\n"), nRet);
OutputDebugString(szError);
原因:如果nRet是一個非常大的整型,會導致數組越界,從而程序崩潰提示如上
影響
現象:在使用VS2005 c++調試程序時,無法使用文件對話框打開文件,只要執行打開文件對話框,就報0x7703c54f 處最可能的異常: 0x000006BA: RPC 服務器不可用的錯誤。
解決方法
由于調試需要將調試菜單中的異常都打上勾,將勾都去掉,問題解決
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。