Introdução ao Valgrind
"Valgrind" é uma estrutura de
instrumentação para construir ferramentas dinâmicas de análise.
Existem ferramentas "Valgrind" que conseguem detectar
automaticamente muitos defeitos de gerenciamento de memória e de
camadas e perfilar aplicativos em detalhes. "Valgrind" também pode
ser usado para construir novas ferramentas.
Esse pacote é conhecido por construir e funcionar corretamente
usando uma plataforma LFS 12.2.
Informação do Pacote
-
Transferência (HTTP):
https://sourceware.org/pub/valgrind/valgrind-3.23.0.tar.bz2
-
Transferência (FTP):
-
Soma de verificação MD5 da transferência:
c59775fcbfa82fcce796843d0aaa7538
-
Tamanho da transferência: 16 MB
-
Espaço em disco estimado exigido: 392 MB (adicionar 68 MB
para os testes)
-
Tempo de construção estimado: 0,5 UPC (adicionar 7,2 UPC para
testes; ambos usando paralelismo=4)
Dependências do "Valgrind"
Opcionais
docbook-xml-4.5 (para testes), GDB-15.1 (para testes),
LLVM-18.1.7 (com Clang) e Which-2.21 (para
testes)
Instalação do Valgrind
Instale "Valgrind" executando os
seguintes comandos:
sed -i 's|/doc/valgrind||' docs/Makefile.in &&
./configure --prefix=/usr \
--datadir=/usr/share/doc/valgrind-3.23.0 &&
make
Para testar os resultados, emita: "make regtest". Os testes
possivelmente travem para sempre se "GDB-15.1" não estiver instalado.
Alguns testes também são conhecidos por travarem, dependendo da
versão da "glibc". Alguns testes podem falhar em várias suítes.
Testes problemáticos podem ser desabilitados mudando-se a linha
"prereq:
" no
arquivo ".vgtest
" correspondente para
"prereq: false
".
Por exemplo:
sed -e 's@prereq:.*@prereq: false@' \
-i {helgrind,drd}/tests/pth_cond_destroy_busy.vgtest
Nota
Os testes "OpenMP" serão pulados
se a "libgomp" tiver sido compilada com "--enable-linux-futex
" (o padrão). Se necessário,
apenas recompile a biblioteca "libgomp" originária da árvore de
construção do "gcc", passando "--disable-linux-futex
" para configurar,
armazenando a biblioteca em algum lugar e mudando o link de
"/usr/lib/libgomp.so.1
" para
apontar para a nova biblioteca.
Agora, como o(a) usuário(a) "root
":
make install
Explicações do Comando
sed -i ...
docs/Makefile.in : Esse "sed" fornece a instalação
da documentação em um diretório versionado.
--enable-lto=yes
: Essa opção permite
construir "Valgrind" com "Link Time Optimization" ("LTO"). Isso
produz um "Valgrind" menor/mais rápido (até 10%), mas o tempo de
construção aumenta para cerca de 5,5 UPC.