valgrind 常见错误提示信息
valgrind --tool=memcheck --leak-check=full??--show-reachable=yes -v ./docParser sample.doc
Memcheck 工具主要檢查下面的程序錯誤:
- 使用未初始化的內(nèi)存 (Use of uninitialised memory)
- 使用已經(jīng)釋放了的內(nèi)存 (Reading/writing memory after it has been free’d)
- 使用超過 malloc分配的內(nèi)存空間(Reading/writing off the end of malloc’d blocks)
- 對堆棧的非法訪問 (Reading/writing inappropriate areas on the stack)
- 申請的空間是否有釋放 (Memory leaks – where pointers to malloc’d blocks are lost forever)
- malloc/free/new/delete申請和釋放內(nèi)存的匹配(Mismatched use of malloc/new/new [] vs free/delete/delete [])
- src和dst的重疊(Overlapping src and dst pointers in memcpy() and related functions)
下面是常用的錯誤輸出信息
Conditional jump or move depends on uninitialised value(s)
診斷信息A 程序行為可能與策略預(yù)期不一致,請仔細核查!
診斷信息B XXXgz導(dǎo)致的警告,主要是因為機器字節(jié)對齊填充了沒有初始值的數(shù)據(jù)導(dǎo)致!
對應(yīng)兩個警告信息,如果是調(diào)用XXX_gzip引出的警告,則輸出信息B,否則信息A。
Warning: set address range perms: large range
診斷信息 此警告可忽略!
只對應(yīng)一條信息。
Syscall param *(buf) points to uninitialised byte(s)
診斷信息 請確認此系統(tǒng)函數(shù)所使用的參數(shù)是否需要初始化!
只對應(yīng)一條信息。
Invalid read of size *
診斷信息 讀取無效內(nèi)存地址錯誤!
只對應(yīng)一條信息。
Process terminating with default action of signal (): dumping core
診斷信息 程序執(zhí)行期間出core!
只對應(yīng)一條信息。
Use of uninitialised value of size
診斷信息 請確認此內(nèi)存地址不需要初始化!
只對應(yīng)一條信息。
* bytes in * blocks are possibly lost in loss record * of *
診斷信息A 內(nèi)存可能存在泄露!
診斷信息B glibc內(nèi)部的內(nèi)存泄露的問題,可以忽略!
對應(yīng)兩條信息,如果發(fā)現(xiàn)valgrind警告的調(diào)用堆棧出現(xiàn)pthread_creat則返回信息B,否則返回信息A。
(* direct, * indirect) bytes in * blocks are definitely lost in loss record * of *
診斷信息 內(nèi)存泄露錯誤!
只對應(yīng)一條信息。
Invalid write of size
診斷信息 寫入無效內(nèi)存地址錯誤!
只對應(yīng)一條信息。
Mismatched free() / delete / delete[]
診斷信息 請確保malloc的內(nèi)存用free釋放,new的內(nèi)存用delete釋放!
只對應(yīng)一條信息。
Source and destination overlap in cpy(, *)
診斷信息A 致命錯誤,程序行為不符合策略預(yù)期!
診斷信息B 行為未定義,完全依賴glibc的實現(xiàn),不具有可移植性!
對應(yīng)兩條信息,如果復(fù)制的源地址小于目的地址則返回信息A,否則返回信息B。
總結(jié)
以上是生活随笔為你收集整理的valgrind 常见错误提示信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Trie树:应用于统计和排序
- 下一篇: 字典树(讲解+模版)