0

我正在使用 valgrind 分析一个 c++ 应用程序。在泄漏摘要中,错误的数量与上下文的数量不同。上下文是什么意思?

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

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

4

2 回答 2

1

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

于 2016-03-19T21:13:10.317 回答
0

这是上下文错误的定义:

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

查看错误摘要中的此示例: 这是错误摘要

这是两个错误上下文: 两个大小为 1 的无效写入

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

在上面的示例中,您应该从自下而上读取每个上下文错误strconk,并且您可以在文件的 100 和 102 行中识别出两个上下文错误都发生了。

另请注意,对于每个上下文错误,在地址部分,它显示了该错误在内存中发生的位置的描述,“大小为 6 的块后的 0 个字节”。这是一个很好的线索,可以准确地确定是什么导致了你的麻烦。

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

希望这对你有帮助!

于 2020-04-29T16:06:05.000 回答