繁体   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