我在這裏找到的大多數問題提供了一段代碼,並得到有人指出實際錯誤的答案。我的問題是關於未初始化值的條件跳轉。我可以理解,如果確信這個分配只執行一次,並且在程序生命週期中可能需要,那麼在程序結束時不應該清除一段內存。據我所知,當程序終止時,GType系統會留下很多不確定的內存。這些未實現的區塊可被視爲「誤報」。但是,「有條件跳轉還是繼續執行未初始化的值」是一種誤報?我唯一能想到的就是有人通過讀取隨機地址(隨機地址本身就是棘手的部分)來實現(壞)隨機函數。另一個例子可能是硬件映射到內存的一部分,然後讀取,但這主要由驅動程序完成,而不是由普通用戶應用程序完成。還有其他的例子(最好是C)會導致這種誤報嗎?有沒有反正valgrind消息「條件跳轉或移動取決於未初始化的值」可以是所謂的'假正面'
9
A
回答
6
什麼Valgrind是報告的是,它認爲基於從它知道,它是由程序分配一個位置讀取跳躍,但對於其沒有看到初始化。如果對象被valgrind不知道的一些魔法初始化,可能會發生這種情況。體系結構不斷髮展,也許你有一個valgrind不太瞭解的指令或註冊類型。
這種非初始化的另一個困難來源是union
s。兩個來源:
- 每默認情況下,這些只有第一成員初始化等 當另一場超越了部分可能是 未初始化的是第一個成員。
- 如果
union
的成員struct
他們可能有填充 字節在不同的地方,所以成員的一部分,可能是 初始化,如果你分配到不同的成員。
在某些情況下,它可能是合法的,即使(通過unsigned char[]
例如)讀這些東西,如果你認爲這樣的事情作爲一個bug(假陽性)或不是角度的問題。
+1
謝謝 - 在填充結構上使用'memcmp'正是給了我這個問題! – Alnitak
4
絕對!我曾經在這b
是保證被初始化,如果a
是真實的形式
// compute a and, possibly, b
if (a && b) {
// do stuff
}
的C代碼。因此,未初始化的值b
可能會導致問題。但是,在進行充分積極優化時,決定首先檢查b
的值。這是可以接受的,因爲這些檢查都沒有任何副作用,但它仍然導致valgrind
抱怨。
相關問題
- 1. Valgrind有條件的跳轉或移動取決於未初始化的值(s)
- 2. 有條件跳轉或移動取決於未初始化的值 - C valgrind
- 3. Valgrind「條件跳轉或移動取決於未初始化的值」錯誤
- 4. 有條件的跳轉或移動取決於未初始化的值?
- 5. 有條件的跳轉或移動取決於未初始化的值(s)
- 6. 精確定位「條件跳轉或移動取決於未初始化的值」valgrind消息
- 7. 有條件跳轉或移動取決於未初始化的值 - mips平臺
- 8. Valgrind有條件跳轉或移動取決於未初始化的值mktime()或淺拷貝問題
- 9. Valgrind「有條件的跳轉或移動取決於未初始化的值」錯誤
- 10. 有條件跳轉或移動取決於使用valgrind的未初始化值(s)
- 11. Valgrind的:條件跳轉或移動依賴於未初始化值
- 12. Valgrind的條件跳轉或移動依賴於未初始化值
- 13. valgrind條件跳轉或移動取決於未初始化的值,這是否表示內存泄漏?
- 14. 條件跳轉或移動依賴於未初始化值
- 15. Valgrind錯誤:條件跳轉或移動取決於未初始化的值(s) - C
- 16. 在valgrind中,wprintf會引起「條件跳轉還是移動取決於未初始化的值」?
- 17. Valgrind:libnvidia-glcore.so.346.47有條件的跳轉或移動取決於未初始化的值
- 18. 有條件的跳轉或移動取決於未初始化的值,結構體
- 19. C Valgrind有條件跳轉或移動
- 20. 有條件跳轉或移動取決於函數調用上的未初始化值(s)
- 21. 有條件跳轉或移動取決於指向第一行代碼的未初始化值
- 22. Valgrind的 - snprintf的:條件跳轉或移動依賴於未初始化的值(一個或多個)
- 23. Valgrind-未初始化的值消息
- 24. Valgrind的抱怨條件跳轉或移動依賴於未初始化的值(一個或多個)
- 25. Valgrind的:條件跳轉或移動依賴於未初始化的值(一個或多個)
- 26. Valgrind的錯誤:條件跳轉或移動依賴於未初始化的值(一個或多個)
- 27. Valgrind:條件跳轉,未初始化的值,C++基本代碼
- 28. 有條件跳轉或移動取決於unininitalized值
- 29. Valgrind:在分配內存時,跳轉或移動取決於未初始化的值
- 30. Valgrind的錯誤,大小和條件跳轉或移動的無效讀取上未初始化值
[Here's](https://bugzilla.redhat.com/show_bug.cgi?id=518247)誤報。 – nos
[我應該擔心「有條件的跳轉或移動取決於未初始化的值」?](http://stackoverflow.com/questions/765913/)從「相關」邊欄顯示(經過所有編輯)一個非常產生這個錯誤的簡單代碼和Jared的原因和因此。 – dmckee
@dmckee我很快就讀到了這個帖子,只能找到他的問題的答案。我沒有看到那裏的假陽性。 – LittleFunnyMan