jump to navigation

過些日子,測試完畢,會再修改 以下文章摘自http://gdfan.twbbs.org/blog/2005/12/20/410 12 一月, 2007

Posted by leterboy in Tech Learning.
trackback

過些日子,測試完畢,會再修改

以下文章摘自http://gdfan.twbbs.org/blog/2005/12/20/410

C 語言 malloc 配置產生的問題Posted by GongDa under 電腦 , C/C++
c/c++
語言的記憶體使用由 programer 自己負責,c/c++ 本身又沒有幫你檢查所配置的記憶體,使用的時候是否產生 over-runs 或是
under-runs 的情形。有時候程式在執行時,雖然存取到未配置的記憶體,但是一時間還不會讓整個程式發生錯誤,這種 bug 最難處理了…
程式執行的時候不一定會在什麼時候出錯….. -__-
最近在 debug 一個程式就是這樣,一直找不到是程式哪裡出現錯誤,而在執行程式的時候,有時候可以正常的執行完,但是大部分的時候,會莫名其妙的出現 segmentation fault 然後結束程式….
網路上找到一些可以幫忙 debug memory allocation 產生問題的工具。像是 Electric Fence 和 valgrind。
使用 Electric Fence 的時候,只要把程式連結到 libefence.a ,再使用 gdb 執行程式就可以了.。看 man efence 會有更多的說明。
另外,在執行程式的時候,也可以使用下列的方式執行:$MALLOC_CHECK_=1 ./a.out
這樣可以打開 glibc 中的 debug 機制,幫你找出可能發生的問題。
相關網站和網址:1.在Linux環境下的記憶體臭蟲該如何解決,英文原文在此-Debugging Memory on Linux2.Valgrind HOWTO3.Using purify, PurifyPlus and valgrind

powered by performancing firefox

留言»

No comments yet — be the first.

發表留言