我正在使用 valgrind 分析一个 c++ 应用程序。在泄漏摘要中,错误的数量与上下文的数量不同。上下文是什么意思?
`ERROR SUMMARY: 44911 errors from 1070 contexts (suppressed: 0 from 0)`
在这种情况下,为什么错误的数量与上下文的数量不同?
我正在使用 valgrind 分析一个 c++ 应用程序。在泄漏摘要中,错误的数量与上下文的数量不同。上下文是什么意思?
`ERROR SUMMARY: 44911 errors from 1070 contexts (suppressed: 0 from 0)`
在这种情况下,为什么错误的数量与上下文的数量不同?
context 是指导致错误的调用堆栈。简单地说:代码中的许多地方都会导致错误。
这是上下文错误的定义:
错误的 (...) 上下文是导致(或可能导致)错误的函数调用链。
因此,为了回答您的问题,上下文的数量是指检测到问题的功能的数量。
在上面的示例中,您应该从自下而上读取每个上下文错误strconk
,并且您可以在文件的 100 和 102 行中识别出两个上下文错误都发生了。
另请注意,对于每个上下文错误,在地址部分,它显示了该错误在内存中发生的位置的描述,“大小为 6 的块后的 0 个字节”。这是一个很好的线索,可以准确地确定是什么导致了你的麻烦。
有关 Valdrind 工作原理的详细信息,请参阅:https ://valgrind.org/docs/manual/manual-core.html
希望这对你有帮助!