※ [本文轉錄自 Programming 看板 #1OybZE4i ]
作者: moebear (萌熊) 看板: Programming
標題: [問題] 如何發現存取越界? c/c++(V.S.)
時間: Sun Apr 16 01:30:51 2017
開發平台:windows 10
目標環境:大概是linux,還是unix,分不太清楚。
開發軟體: visual studio 2015 c++
各位好,最近有門課在用judge system,發現我常常會有存取越界的問題
但是在我的編譯軟體(visual studio 2015)上面會偵測不到這個問題,
我也有用系上的工作站(linux環境),直接用g++編譯後執行的話也沒有顯示存取越界
我想 既然judge可以找到這個問題
那在編譯軟體上面應該也可以......吧?
想問問看有沒有什麼方法可以幫助我找到哪邊有存取越界。
舉例來說:
unsigned long long a[3]={1,2,3};
b=b/a[-1];
今天遇到的大概是這樣的情況,我去追蹤,發現a[-1]是一個很大的正數,
在過程中是看不到他造成的影響,debug過程也沒有警告。
能不能在我存取到不該存取的位置之後能有警示?