问题标签 [memory-leak-detector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
28911 浏览

macos - 如何使用 Homebrew 在 macOS Catalina (10.15) 上安装 Valgrind?

我尝试使用命令“brew install valgrind”安装 Valgrind,但收到一条消息:

“valgrind:由于上游不兼容,此公式在比 Sierra 更新的 macOS 版本上无法编译或按预期运行。错误:未满足的要求使此构建失败。”

我还尝试“brew edit valgrind”并在代码的 head 部分将“sourceware.org/git/valgrind.git”替换为“git://sourceware.org/git/valgrind.git”,然后在 Iterm 上写道“ brew install --HEAD valgrind“但它给了我:

0 投票
0 回答
212 浏览

c - How do I fix the possibly lost bytes in my C program

I did a project where the goal was to read a line of a file at each call of a function(get_nl).
A line is all the characters before a "\n".
I attempted to do it with linked lists to be able to read multiple files at the same time.

But it seems to be leaking memory and I don't really know how or from where. I used valgrind you can check the output just below.

I just used the flag --leak-check=full

Here's my code below :

My helper functions :

My core functions

My header file :

EDIT :

I don't know how I got the definitely lost but it doesn't show up anymore and I added the debug flag -g3

0 投票
1 回答
51 浏览

java - java搜索“可关闭”对象,其中未调用close

看起来我在项目中有内存泄漏,我能够找到 2 个方法,在这些方法closable中创建了资源,但close从未调用过方法。

是否可以扫描项目,在没有close方法调用的情况下查找资源?

有人将皮棉用于此类目的吗?任何建议都可能有所帮助。谢谢。

0 投票
1 回答
2622 浏览

java - 使用 pmap 和 gdb 查找本机内存泄漏

我正在调试 java 应用程序中的本机内存泄漏。RSS 每天增长 1GB,而堆没有增加。在比较 pmap 随时间推移的输出时,我看到多个匿名块被添加到堆顶部或两个本机库之间。

  1. 我可以说 sssd_pac_plugin.so 和 librmi.so 之间的内存增加是由于其中任何一个造成的吗?这个内存分配是连续的吗? https://i.stack.imgur.com/G1duY.jpg

  2. 在堆的顶部(地址:00007fc940000000 和更大)创建了很多新的内存块,范围从 126MB 到 1MB(100 个小 1MB 块附加图像供参考)。它们是表示一些内存泄漏还是只是为每个新线程创建的。

在此处输入图像描述

  1. 为了查看这些块中的数据,我尝试了下面的代码片段,但我总是没有从中得到任何字符串。它都是二进制的,我无法解释。有没有办法将其转换为字符串?或映射到任何线程/库或我可以使用的任何东西。

另一个观察结果是,许多新块和旧块增加到大约 60-65MB。这些块的数量随着时间的推移而增加很多。对 rss 增加的贡献最大。 https://i.stack.imgur.com/xueC8.png https://i.stack.imgur.com/hwbAb.jpg

我也尝试了 libtcmalloc 和分析器,主要问题是在生产环境中我无法使用它们。在开发实例上,泄漏并不那么严重,因此无法验证分析器的输出。

0 投票
1 回答
551 浏览

c++ - 在使用 Qt Creator 的 Qt 应用程序中 heob 没有输出

我想使用 heob 检查我的应用程序是否存在内存泄漏。这就是我尝试过的:我从 qtcreator 的示例集合中打开了项目“analogclock”。之后,我从下拉菜单中选择了“分析”和“Heob”。选择 heob 路径并单击 ok 按钮后,应用程序启动并显示控制台窗口“heob32”。但现在什么也没有发生。控制台窗口中只显示单词“kill”。我看不到任何输出,如果我关闭模拟时钟应用程序,我会收到消息:“heob:无法创建目标进程”。谁能帮助我进一步从 heob 获得有用的输出?

0 投票
0 回答
25 浏览

garbage-collection - 在 valgrind 和 jvm 中测量经过的时间

我已经用 C 语言编写了一个内存泄漏检测器,并且我必须在相同的程序逻辑中使用 Valgrind 和 Java GC 评估它的性能。是否有任何关于如何测量 Valgrind 和 Java GC 中经过的时间的提示?

0 投票
0 回答
471 浏览

c++ - 在同一程序中使用设备内 malloc() 和 cudaMalloc() 时,cuda-memcheck 未正确报告

我在一个小测试文件上使用 cuda-memcheck 的泄漏检查来测试我想在我正在处理的程序中实现的一些功能,我发现它没有报告全局内存上的一些非常明显的内存泄漏,当我同时调用cudaMalloc()(来自主机代码)和malloc()(来自设备代码)时。似乎对设备的调用malloc()正在破坏cuda-memcheck.
我在 Windows 10 上的 NVIDIA GeForce GTX 1050(计算能力 6.1)上运行它。我有 CUDA v10.2,使用 Visual Studio C++ 编译器(cl.exe)。我的一个朋友也在他的 Arch Linux 系统上运行了这个,使用 CUDA v9.1 和 NVIDIA GeForce MX150(计算能力 6.1),结果相同。这是我使用的代码:

这里很明显有 2 个内存泄漏,因为我没有释放d_t,以及成员指针b0,使用cudaFree(). 我使用 编译这个nvcc.exe -G -Xcompiler /Zi -o cuda cuda.cu,然后运行cuda-memcheck.exe --leak-check full cuda.exe​​. 输出:

d_t->cleanup()当我从内核中删除调用时,输出:

2 字节泄漏很可能是因为d_t->yay没有从设备堆中释放出来。(我没有明确检查这是否是确切的泄漏,我只是在猜测)
现在,当我还删除了对 的调用时d_t->lol(),以及print_yay()from (基本上使用设备和读取的代码从设备堆中Tester::print()删除分配内存的代码),所以现在内核看起来像:d_t->yaymalloc()d_t->yay

输出:

显然,它显示了正确的泄漏。
另外,我注意到还有一些奇怪的东西。当我的内核是:

这与上面的基本相同,因为d_t->cleanup()无论如何都不会做任何事情,输出:

它仍然停止显示泄漏!
这是 的问题cuda-memcheck,还是我的代码有问题?

0 投票
0 回答
943 浏览

java - 我启用了 ResourceLeakDetector 但我得到 OutOfDirectMemoryError 而不是 Netty 内存泄漏错误

我正在尝试测试 netty 版本中的内存泄漏:4.1.50。最后。因为我没有在我的 EchoServerInboundHandler 中发布引用。那么我应该如何产生内存泄漏错误。泄漏:在垃圾收集之前未调用 ByteBuf.release()。启用高级泄漏报告以找出泄漏发生的位置。要启用高级泄漏报告,请指定 JVM 选项“-Dio.netty.leakDetectionLevel=ADVANCED”或调用 ResourceLeakDetector.setLevel()。

回声客户端:

回声服务器

ChannelInboundHandlerAdapter

关闭输出:

0 投票
0 回答
274 浏览

c - Dr.Memory 找不到可达泄漏的行号

我正在使用 Dr.Memory 进行调试,但不知何故它没有显示泄漏位置的行号。反正有没有看到或解决这个问题?我正在使用 c 这就是 -showreachable 给我的。我也尝试过 -Werror -g 但也没有找到行号。我只用 malloc 制作了 3 个新矩阵,我把它们全部释放了,所以有 6 个泄漏真的很奇怪。

0 投票
1 回答
77 浏览

javascript - 带有“很多”行的文件的承诺错误

我正在阅读一个 csv 文件,每一行都包含一个网站 url。我有这个功能来读取文件:

该函数调用内部的另一个函数以通过 http-request 获取 csp 和 xfo 标头。

如果我的行数很少,我的代码就可以工作:但是如果我有一个包含 100 行的文件,我会遇到这个错误:

我想我必须以某种方式分配工作,但我不知道如何。