通过Valgrind检查泄漏时阻止某些功能

发布于 2025-02-12 11:53:02 字数 85 浏览 0 评论 0原文

在我的程序中,我使用的是GNU Readline,该库中的功能会导致一些泄漏。在使用Valgrind时,我不想看到这些泄漏。我可以以某种方式阻止一些功能吗?

In my program I'm using GNU Readline and the functions from that library causes some leaks. While using Valgrind I don't want to see those leaks. Can I somehow block some functions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

执笔绘流年 2025-02-19 11:53:03

我从使用valgrind-leak-check = full -show-show-leak-kinds = all ./program

==2376== 28,784 bytes in 7 blocks are still reachable in loss record 57 of 57
==2376==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2376==    by 0x489500C: xmalloc (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x4873A91: rl_make_bare_keymap (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x487AD79: rl_generic_bind (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x487CA92: rl_parse_and_bind (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x487CC6C: ??? (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x486F228: rl_initialize (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x486F4AF: readline (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x10B6B5: main (main.c:77)

我制作了一个名为supp.supp并在其中写了:

{
    ignore_libreadline_leaks
    Memcheck:Leak
    ...
    obj:*/libreadline.so.*
}

之后,我添加了- 抑制= supp.supp flag。现在抑制了Libreadline的所有泄漏错误。

I was getting lots of this kind of leak warnings from using valgrind --leak-check=full --show-leak-kinds=all ./program

==2376== 28,784 bytes in 7 blocks are still reachable in loss record 57 of 57
==2376==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2376==    by 0x489500C: xmalloc (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x4873A91: rl_make_bare_keymap (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x487AD79: rl_generic_bind (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x487CA92: rl_parse_and_bind (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x487CC6C: ??? (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x486F228: rl_initialize (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x486F4AF: readline (in /usr/lib/x86_64-linux-gnu/libreadline.so.8.0)
==2376==    by 0x10B6B5: main (main.c:77)

I made a file named supp.supp and wrote in it:

{
    ignore_libreadline_leaks
    Memcheck:Leak
    ...
    obj:*/libreadline.so.*
}

After this, I added --suppressions=supp.supp flag. All leak errors from libreadline is now suppressed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文