我正在尝试完成大学任务,标记标准指定内存管理的5% - 特别是没有内存泄漏.
据我所知,简单的C程序中的内存泄漏只是由程序放弃的指针引起的 - 即,malloc/calloc/etc调用永远不会有相应的free.
我的问题分为三部分:
leaks命令行工具将报告
像下面这样:
\nProcess: checker [84357]\nPath: /path/to/program\nLoad Address: 0x104703000\nIdentifier: checker\nVersion: ???\nCode Type: X86-64\nParent Process: zsh [64610]\n\nDate/Time: 2019-11-30 18:43:06.864 -0800\nLaunch Time: 2019-11-30 18:42:58.593 -0800\nOS Version: Mac OS X 10.13.4 (17E199)\nReport Version: 7\nAnalysis Tool: /usr/bin/leaks\n\nPhysical footprint: 300K\nPhysical footprint (peak): 300K\n----\n\nleaks Report Version: 3.0\nProcess 84357: 161 nodes malloced for 17 KB\nProcess 84357: 3 leaks for 64 total leaked bytes.\n\nLeak: 0x7fdf5b400350 size=16 zone: DefaultMallocZone_0x10470e000\nLeak: 0x7fdf5b4027c0 size=16 zone: DefaultMallocZone_0x10470e000\nLeak: 0x7fdf5b402810 size=32 zone: DefaultMallocZone_0x10470e000\nRun Code Online (Sandbox Code Playgroud)\n我的问题是,如何使用这些信息来实际跟踪并查找源代码中哪些 …
我是一名 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}\nRun Code Online (Sandbox Code Playgroud)\n\n像这样:
\n\nleaks ./a.out\nRun Code Online (Sandbox Code Playgroud)\n\n这是输出:
\n\nleaks[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.\nRun Code Online (Sandbox Code Playgroud)\n\n我不明白为什么会发生这种情况...我该如何使用泄漏工具?
\n