Fw: [問題] 如何發現存取越界? c/c++(V.S.)
※ [本文轉錄自 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過程也沒有警告。
能不能在我存取到不該存取的位置之後能有警示?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.91.189
※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1492277454.A.12C.html
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: moebear (140.113.91.189), 04/16/2017 02:52:39
※ 編輯: moebear (140.113.91.189), 04/16/2017 02:57:53
推
04/16 03:00, , 1F
04/16 03:00, 1F
→
04/16 03:03, , 2F
04/16 03:03, 2F
→
04/16 04:38, , 3F
04/16 04:38, 3F
推
04/16 07:46, , 4F
04/16 07:46, 4F
→
04/16 08:55, , 5F
04/16 08:55, 5F
推
04/16 09:26, , 6F
04/16 09:26, 6F
→
04/16 09:26, , 7F
04/16 09:26, 7F
→
04/16 09:27, , 8F
04/16 09:27, 8F
→
04/16 09:27, , 9F
04/16 09:27, 9F
→
04/16 09:27, , 10F
04/16 09:27, 10F
→
04/16 09:27, , 11F
04/16 09:27, 11F
→
04/16 09:29, , 12F
04/16 09:29, 12F
推
04/16 09:44, , 13F
04/16 09:44, 13F
→
04/16 10:32, , 14F
04/16 10:32, 14F
→
04/16 10:32, , 15F
04/16 10:32, 15F
謝謝各位大大,at看起來滿符合要求的,之後會盡量改用at取。
我用 -fsanitize=address也得到一些錯誤回饋,謝謝各位。
我了解這是我程式設計的問題,我是希望能在已經確定我產生存取越界的時候,
能比較快地找到問題點,我的想法是,既然教授的系統可以做到這件事情,
沒有理由那些由大公司或是g++等編譯或是其他外掛程式沒有辦法做到
※ 編輯: moebear (140.113.91.189), 04/16/2017 13:25:24
推
04/16 13:53, , 16F
04/16 13:53, 16F
→
04/16 13:58, , 17F
04/16 13:58, 17F
→
04/16 13:58, , 18F
04/16 13:58, 18F
→
04/16 14:21, , 19F
04/16 14:21, 19F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章