首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以让valgrind忽略glibc库吗?

我可以让valgrind忽略glibc库吗?
EN

Stack Overflow用户
提问于 2010-05-24 18:13:51
回答 4查看 6.9K关注 0票数 12

有没有可能让valgrind忽略一些库?特别是glibc库..

实际问题:我有一些在正常执行中运行良好的代码。没有泄漏等。

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

Core通常指向glibc函数(通常是fseek、mutex等)。我知道不兼容的glibc / valgrind版本可能会有一些问题。

我尝试了各种valgrind版本和glibc版本,但没有成功。有什么建议吗?

EN

回答 4

Stack Overflow用户

发布于 2013-03-21 05:29:53

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

首先,运行valgrind,如下所示:

代码语言:javascript
复制
 valgrind --gen-suppressions=all --log-file=valgrind.out ./a.out

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

代码语言:javascript
复制
{
   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该文件:

代码语言:javascript
复制
valgrind --log-file=valgrind --suppressions=sendmsg.supp ./a.out

valgrind会优雅地忽略那个愚蠢的上游bug。

票数 11
EN

Stack Overflow用户

发布于 2010-05-25 09:44:21

正如unwind所指出的那样,valgrind有一个精心设计的机制,用于控制哪些过程以及如何进行检测。但是valgrind和glibc都是复杂的东西,你真的、真的、真的不想这么做。获得相互兼容的glibc和valgrind的最简单方法是从您选择的的Linux发行版获得两者的。事情应该“正常工作”,如果他们不能工作,你就有人可以抱怨了。

票数 4
EN

Stack Overflow用户

发布于 2010-05-24 18:57:16

是的,查查Valgrind的suppression system

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2896162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档