加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

我可以让valgrind忽略glibc库吗?

发布时间:2020-12-16 03:34:57 所属栏目:百科 来源:网络整理
导读:有可能告诉valgrind忽略一些图书馆吗? 具体glibc库 实际问题: 我有一些代码在正常执行中运行正常.无泄漏等 当我尝试通过valgrind运行它,我得到核心转储和程序重新启动/停止. 核心通常指向glibc函数(通常是fseek,mutex等). 我明白,与glibc / valgrind不兼容
有可能告诉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会慷慨地忽视那个愚蠢的上游错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读