簡體   English   中英

valgrind 泄漏摘要中的上下文數量是指什么?

[英]What do the number of contexts in valgrind leak summary refer to?

我正在使用 valgrind 分析 C++ 應用程序。 在泄漏摘要中,錯誤的數量與上下文的數量不同。 上下文是什么意思?

`ERROR SUMMARY: 44911 errors from 1070 contexts (suppressed: 0 from 0)`

在這種情況下,為什么錯誤數量與上下文數量不同?

上下文是指導致錯誤的調用堆棧。 簡單來說:代碼中的很多地方都會導致錯誤。

這是上下文錯誤的定義:

錯誤的 (...) 上下文是導致(或可能導致)錯誤的函數調用鏈。

在錯誤摘要中查看此示例: 這是錯誤摘要

這是兩個錯誤上下文: 大小為 1 的兩次無效寫入

因此,為了回答您的問題,上下文的數量是指檢測到問題的功能的數量。

在上面的示例中,您應該自下而上讀取每個上下文錯誤,並且您可以在strconk文件的 100 和 102 行中識別出兩個上下文錯誤都發生了。

另請注意,對於每個上下文錯誤,在地址部分,它顯示了該錯誤在內存中發生的位置的描述,“大小為 6 的塊之后的 0 個字節”。 這是一個很好的線索,可以准確確定是什么導致了您的麻煩。

有關 Valdrind 工作原理的詳細信息,請參閱: https ://valgrind.org/docs/manual/manual-core.html

希望這對你有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM