我可以让valgrind忽略glibc库吗?

前端之家收集整理的这篇文章主要介绍了我可以让valgrind忽略glibc库吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有可能告诉valgrind忽略一些图书馆吗?
具体glibc库

实际问题:
我有一些代码在正常执行中运行正常.无泄漏等

当我尝试通过valgrind运行它,我得到核心转储和程序重新启动/停止.

核心通常指向glibc函数(通常是fseek,mutex等).
我明白,与glibc / valgrind不兼容的版本可能会有一些问题.

我尝试过各种valgrind版本和glibc版本,但没有运气.
有什么建议么?

解决方法

这可能不会回答你的问题,但会为您提供如何抑制某些错误的细节(其他人已经提到但没有详细描述):

首先,运行valgrind如下:

valgrind --gen-suppressions=all --log-file=valgrind.out ./a.out

现在,输出文件valgrind.out将包含一些自动生成的抑制块,如下所示:

{
   stupid sendmsg bug: http://sourceware.org/bugzilla/show_bug.cgi?id=14687
   Memcheck:Param
   sendmsg(mmsg[0].msg_hdr)
   fun:sendmmsg
   obj:/usr/lib/libresolv-2.17.so
   fun:__libc_res_nquery
   obj:/usr/lib/libresolv-2.17.so
   fun:__libc_res_nsearch
   fun:_nss_dns_gethostbyname4_r
   fun:gaih_inet
   fun:getaddrinfo
   fun:get_socket_fd
   fun:main
}

其中“愚蠢的sendmsg bug”和链接是我添加名称来引用这个块.现在,将该块保存到sendmsg.supp,并在下一次运行时告诉valgrind该文件

valgrind --log-file=valgrind --suppressions=sendmsg.supp ./a.out

valgrind会慷慨地忽视那个愚蠢的上游错误.

猜你在找的C&C++相关文章