Valgrind-3.25.1

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]

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.

Conteúdo

Aplicativos Instalados: callgrind_annotate, callgrind_control, cg_annotate, cg_diff, cg_merge, ms_print, valgrind, valgrind-di-server, valgrind-listener e vgdb
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /usr/lib/valgrind, /usr/libexec/valgrind, /usr/include/valgrind e /usr/share/doc/valgrind-3.25.1

Descrições Curtas

valgrind

é um aplicativo para depuração e perfilamento de executáveis "Linux"

callgrind_annotate

pega um arquivo de saída produzido pela ferramenta "Callgrind" do "Valgrind" e imprime as informações em um formato de fácil leitura

callgrind_control

controla aplicativos sendo executados pela ferramenta "Callgrind" do "Valgrind"

cg_annotate

é uma ferramenta de pós-processamento para a ferramenta "Cachegrind" do "Valgrind"

cg_diff

compara dois arquivos de saída gerada do "Cachegrind"

cg_merge

mescla vários arquivos de saída gerada do "Cachegrind" em um

ms_print

pega um arquivo de saída produzido pela ferramenta "Massif" do "Valgrind" e imprime as informações em um formato de fácil leitura

valgrind-di-server

é um servidor que lê informações de depuração oriundas de objetos armazenados em uma máquina diferente

valgrind-listener

escuta em um soquete os comentários do "Valgrind"

vgdb

é um intermediário entre "Valgrind" e "GDB" ou um "shell"