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)`
在这种情况下,为什么错误数与上下文数不同?
上下文是指导致错误的调用堆栈。
说的简单一点:就是代码中很多地方出错了。
这是上下文错误的定义:
the (...) context for the error is the chain of function calls that led (or may led) to an error.
查看错误摘要中的这个示例:
这是两个错误上下文:
所以,为了回答你的问题,上下文的数量是指检测到问题的函数的数量。
在上面的示例中,您应该自下而上阅读每个上下文错误,您可以确定这两个上下文错误都发生在strconk
文件中, 在 100 和 102 行。
另请注意,对于每个上下文错误,在“地址”部分中,它都会显示该错误在内存中发生位置的描述,“大小为 6 的块之后的 0 个字节”。这是 准确识别 是什么给您带来麻烦的好线索。
关于Valdrind的详细工作原理请参考:https://valgrind.org/docs/manual/manual-core.html
希望对您有所帮助!
我正在使用 valgrind 分析一个 C++ 应用程序。在泄漏摘要中,错误的数量与上下文的数量不同。上下文是什么意思?
`ERROR SUMMARY: 44911 errors from 1070 contexts (suppressed: 0 from 0)`
在这种情况下,为什么错误数与上下文数不同?
上下文是指导致错误的调用堆栈。 说的简单一点:就是代码中很多地方出错了。
这是上下文错误的定义:
the (...) context for the error is the chain of function calls that led (or may led) to an error.
查看错误摘要中的这个示例:
这是两个错误上下文:
所以,为了回答你的问题,上下文的数量是指检测到问题的函数的数量。
在上面的示例中,您应该自下而上阅读每个上下文错误,您可以确定这两个上下文错误都发生在strconk
文件中, 在 100 和 102 行。
另请注意,对于每个上下文错误,在“地址”部分中,它都会显示该错误在内存中发生位置的描述,“大小为 6 的块之后的 0 个字节”。这是 准确识别 是什么给您带来麻烦的好线索。
关于Valdrind的详细工作原理请参考:https://valgrind.org/docs/manual/manual-core.html
希望对您有所帮助!