我已经使用 Totalview 的 Memoryscape 进行了一些内存泄漏检查,但我“没有”,至少在 HEAP 上没有……但是像 MemoryScape 这样的工具似乎只检查堆,而不是堆栈泄漏……
我注意到 AIX 和 Solaris(任何可能是 Linux,仍在检查)上发生了一个小泄漏......并且我正在努力寻找它。
我确实在我的应用程序中使用一个(可连接的)线程来完成所有工作...
请耐心等待,C 不是我的日常工作 ;-) 但我有 2 个问题:
如果我生成一个 POSIX 线程并且它执行 malloc 等...这些是在堆上还是在线程堆栈上?当线程未释放 malloc 时,内存检查(堆)工具通常还会发现泄漏吗?
您会推荐使用哪些工具来查找 STACK 上的漏洞?我在 Solaris 上使用过“libumem”,但不确定是否能找到我需要的东西..
我可以在 Linux 上使用 VALGRIND 来检查我的线程堆栈上的泄漏吗?
感谢您的帮助;-)
林顿
最佳答案
If I spawn an POSIX thread and it does malloc's etc...are these on the heap or on the threads stack? Would a memory checking (heap) tool typically also find leaks when a thread does not free a malloc?
你通过malloc
获得的所有东西,无论你在哪里调用它都是从堆中获得的。内存调试器应该能够捕获泄漏。 Valgrind 是一个很好的查找泄漏的工具,它应该与线程一起工作。
关于c - 检查 POSIX THREAD 堆栈上内存泄漏的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8365851/