[問題] 記憶體segfault問題
開發平台(Platform): Linux
編譯器: GCC, g++
額外使用到的函數庫(Library Used): std::thread, valgrind
程式碼:
出問題的是出在這行:
https://github.com/hn12404988/dalahast/blob/master/dalahast/tool/ss_tool.cpp#L257
程式碼都還沒下註解,很亂,建議直接聽我下面描述就好
如果真的要看程式碼的話,以下是thread流程
先這個程式被呼叫
https://github.com/hn12404988/dalahast/blob/master/server/topology/init.cpp#L115
呼叫到這行
https://github.com/hn12404988/dalahast/blob/master/dalahast/tool/iss_tool.cpp#L172
再呼叫到上面出問題的那行
問題(Question):
有一個程式,其中一段是std::map使用operator[] 來創立記憶體
會segfault,但系統不會顯示,而是直接掛掉,要再去/var/log/message才看到
更奇怪的是如果使用valgrind來啟動:valgrind --leak-check=yes --log-file=vglog
程式就會順利執行,std::map就會順利完成
另外雖然這是multi-thread環境,但該std::map確定只會由自己thread使用
所以看來看去,就只是一段簡單的map[]而已,就算換成map.emplace問題也是一樣
請問大家有甚麼想法讓我debug有新的方向嗎?
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.16.181
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1487925152.A.374.html
→
02/24 17:18, , 1F
02/24 17:18, 1F
→
02/24 17:20, , 2F
02/24 17:20, 2F
→
02/24 17:20, , 3F
02/24 17:20, 3F
推
02/25 08:52, , 4F
02/25 08:52, 4F