이것은 아마도 귀하의 질문에 대답하지 않지만, 당신에게 (다른 사람이 언급했지만 구체적으로 설명하지 않은 경우) 특정 오류를 억제하는 방법의 세부 사항을 제공합니다 :
다음과 같이 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
}
여기서 "stupid sendmsg bug"및 링크는이 블록을 참조하기 위해 추가 한 이름입니다.이제, 다음 실행에 해당 파일에 대해 valgrind
을 sendmsg.supp
에 그 블록을 저장하고 말 :
valgrind --log-file=valgrind --suppressions=sendmsg.supp ./a.out
그리고 valgrind
을 기꺼이 바보 업스트림 버그를 무시합니다.
valgrind가 특정 glibc 기능을 프로파일 링하지 말고 결과 출력을 억제하지 말고 싶다고 생각합니다. –
@ 팀 : 맞습니다! 기본적으로 나는 valgrind가 그들을 무시하기를 원합니다. (정상적인 실행처럼 실행하십시오.) – Jack
@Jack - 당신은 valgrind 내부를 오히려 잘 알고 있어야합니다. 정말 valgrind/valgrind.h를 살펴 보시기 바랍니다. valgrind에서받은 결과를 게시하지 않는 한 제안하기가 어렵습니다. –