C 中的内存泄漏 (MacOS)

and*_*c34 1 c macos memory-leaks

我是一名 C 编程学生,试图找到一种方法来检测 MacOs Mojave 上的内存泄漏。

\n\n

我知道 Valgrind 的存在,但它不支持当前的 MacO 版本。安装Apple命令行工具后,我尝试使用泄漏工具运行我的C程序,但它不起作用\xc2\xb4t工作...运行这个非常简单的C程序:

\n\n
#include <stdio.h>\n\nint main(int argc, char const *argv[]) {\n  printf("Hello World\\n");\n  return 0;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

像这样:

\n\n
leaks ./a.out\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是输出:

\n\n
leaks[875]: [fatal] unable to read input graph: The data \n couldn\xe2\x80\x99t be read because it isn\xe2\x80\x99t in the correct format.\n
Run Code Online (Sandbox Code Playgroud)\n\n

我不明白为什么会发生这种情况...我该如何使用泄漏工具?

\n

小智 10

与 Valgrind 不同,leaks 命令旨在查找执行“leaks”命令时已经运行的代码中的内存泄漏。

为了获得您正在寻找的功能,您需要以下命令:

leaks -atExit -- ./a.out
Run Code Online (Sandbox Code Playgroud)

  • 缺少破折号 ```leaks --atExit -- ./a.out``` (2认同)