6
當我在程序上運行valgrind --leak-check=yes
時,會丟失幾個字節的丟失內存。是否可以查看此內存的內容(即轉儲存儲在其中的數據)?轉儲Valgrind報告的丟失內存內容
當我在程序上運行valgrind --leak-check=yes
時,會丟失幾個字節的丟失內存。是否可以查看此內存的內容(即轉儲存儲在其中的數據)?轉儲Valgrind報告的丟失內存內容
你可以做到這一點Valgrind的最後一個版本(3.8.1):
啓動可執行激活在啓動gdbserver的:
valgrind --vgdb-error=0 ....<your program>
然後在另一個窗口,連接gdb來Valgrind的(遵循Valgrind給出的指示 )。 然後把一個斷點在相關位置(例如,在主要的端部) 和使用gdb
continue
命令直到到達斷點。 然後做從廣發行檢漏:
monitor leak_check full reachable any
然後列出相關的損失紀錄NR的可達塊地址(ES)
monitor block_list <loss_record_nr>
然後可以使用gdb的功能來檢查內存的地址(es)。 另請注意,如果您正在搜索誰保留了指向此內存的指針,則可能有趣的命令爲「who_points_at」 。
我得到「'valgrind:錯誤的選項:--vgdb-error = 0」。 (valgrind-3.6.1) – panzi
@panzi我認爲這隻適用於3.8.1以上的ppw提到。我用valgrind-3.11.0試了一下,沒有問題。 – Nubcake