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

时间:2016-03-19 21:05:23

标签: c++ memory-leaks valgrind memcheck

我正在使用valgrind分析c ++应用程序。在泄漏摘要中,错误数量与上下文数量不同。背景意味着什么?

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

为什么在这种情况下错误的数量与上下文的数量不同?

2 个答案:

答案 0 :(得分:1)

context指向导致错误的调用堆栈。 简单来说:代码中的许多地方都会导致错误。

答案 1 :(得分:0)

这是上下文错误的定义:

错误的(...)上下文是导致(或可能导致)错误的函数调用链。

在错误摘要中查看以下示例: This is the Error Summary

,这是两个错误上下文: Two invalid write of size 1

因此,为回答您的问题,上下文数是指检测到问题的功能数。

在上面的示例中,您应该从下至上读取每个上下文错误,然后可以确定strconk文件中的两个上下文错误都在100和102行。

还请注意,对于每个上下文错误,在“地址”部分中,它都将描述该错误在内存中的发生位置,“大小为6的块后为0字节”。 准确识别是给您带来麻烦的好线索。

有关Valdrind工作原理的详细信息,请参阅:https://valgrind.org/docs/manual/manual-core.html

希望这对您有帮助!