[英]How to find the location where exception occurred in VS C++
我收到此異常:
Microsoft C++ exception: std:out_of_range at memory location 0xBlahBlahBlah
如何在我的代碼中找到這個位置?
一種方法是為異常設置中的所有內容啟用“拋出時中斷”。 它將有一個異常類型列表,可以通過復選框打開。 我通常會把它們全部打開然后走。 在此過程中,您可能會遇到一些已處理的異常,但您不應錯過問題之一。
您可以在以下Debug->Windows->Exception Settings
找到它: Debug->Windows->Exception Settings
完成后,我建議將其恢復為默認設置(它有一個圖形按鈕),這樣每次拋出處理的異常時都不會中斷。
以下是問題解決步驟:
出於某種原因,即使在拋出 std::exception 時調試器異常設置被設置為中斷,在拋出 std::out_of_range 異常時調試器也沒有中斷。
我的方法是在某處設置一個斷點,然后按住 F10 直到它拋出異常。 現在你知道錯誤在哪里了。
此錯誤是運行時邏輯錯誤,在許多情況下都可能發生,要找到它,您應該跟蹤代碼並查找一些邏輯錯誤。 例如
int x[4];
x[5] = 1;
在這種情況下,您使用的是不允許的內存單元。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.