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.4.
Informação do Pacote
-
Transferência (HTTP):
https://sourceware.org/pub/valgrind/valgrind-3.25.1.tar.bz2
-
Transferência (FTP):
-
Soma de verificação MD5 da transferência:
2b424c9a43aa9bf2840d4989b01ea6e7
-
Tamanho da transferência: 16 MB
-
Espaço em disco estimado exigido: 419 MB (adicionar 86 MB
para os testes)
-
Tempo de construção estimado: 0,4 UPC (adicionar 5,7 UPC para
testes; ambos usando paralelismo=4)
Dependências do "Valgrind"
Opcionais
docbook-xml-4.5 (para testes), GDB-16.3 (para testes),
libaio-0.3.113, LLVM-20.1.8 (com Clang) e
Which-2.23 (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.25.1 &&
make
Para testar os resultados, emita: "make regtest". Os testes
possivelmente travem para sempre se "GDB-16.3" 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
Uma suíte de teste adicional agora está disponível que testa o
Valgrind com cada chamada de sistema fornecida pelo núcleo. A suíte
de teste foi projetada para testar não somente a glibc e a
conformidade do núcleo com os padrões, mas também a capacidade do
Valgrind de manusear diferentes chamadas de sistema. A suíte de
teste exige uma conexão com a internet para baixar os testes e leva
muito tempo para executar (20 UPCs adicionais e 1,3 GB de espaço em
disco). Se desejar executar essa suíte de teste, emita o seguinte
comando: make
ltpchecks. Observe que a saída mostrará várias
falhas onde o Valgrind atualmente não suportar determinadas
chamadas de sistema, mas os registros para a suíte de teste podem
ser encontrados no diretório auxprogs/auxchecks/ltp-full-20250130/valgrind-ltp-logs
.
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.