Valgrind 可能会在简单程序中丢失记忆
Valgrind possibly lost memory in simple programs
无论我使用什么程序 运行 Valgrind 告诉我 3 个块中有 72 个可能丢失的字节,即使使用像这样的简单程序也是如此:
int main(void)
{
printf("Hello, World!\n");
return 0;
}
你知道这是否是 Mac OS sierra 上的 Valgrind 错误?
我怎么会用这样的程序泄漏内存?
如果任何预加载的库(例如通过 LD_PRELOAD
)或链接的 C 运行时的任何部分有内存泄漏,这很可能会发生。
还有一些由 CRT 执行的内存分配从未有意释放,但通常这些只是一次性的事情,每个进程只发生一次。
Valgrind 无法可靠地区分应用程序的组成部分和非组成部分。您只能从分配内存的位置检查堆栈跟踪,并确定那是否是您的域。
无论我使用什么程序 运行 Valgrind 告诉我 3 个块中有 72 个可能丢失的字节,即使使用像这样的简单程序也是如此:
int main(void)
{
printf("Hello, World!\n");
return 0;
}
你知道这是否是 Mac OS sierra 上的 Valgrind 错误?
我怎么会用这样的程序泄漏内存?
如果任何预加载的库(例如通过 LD_PRELOAD
)或链接的 C 运行时的任何部分有内存泄漏,这很可能会发生。
还有一些由 CRT 执行的内存分配从未有意释放,但通常这些只是一次性的事情,每个进程只发生一次。
Valgrind 无法可靠地区分应用程序的组成部分和非组成部分。您只能从分配内存的位置检查堆栈跟踪,并确定那是否是您的域。