如何解释Valgrind输出

How to interpret Valgrind output

本文关键字:Valgrind 输出 解释 何解释      更新时间:2023-10-16

Valgrind产生以下消息块:

1,065,024 bytes in 66,564 blocks are definitely lost in loss record 21 of 27
   at 0x4C2B800: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x40CA21: compute(Parameters&, Array<double>&) [clone .constprop.71] (array.hpp:135)
   by 0x403E70: main (main.cpp:374)

如何阅读此消息?

main.cpp第374行读取:

results[index] = compute(parameters, weights);

内存是否在main.cpp的第374行泄露?它是否在compute()中泄露,或者可能在赋值/索引到结果中?

内存是否在main.cpp的第374行泄露?

。它只显示了main中调用最终指向该函数的行号和分配内存的行号。

它是否在compute()中泄露,或者可能在赋值/索引到结果中?

表示在compute()中分配了内存,但在程序退出之前没有在程序中释放。这就构成了内存泄漏。