bugpoint - manual de referência, opções, exemplos de comandos


NOME

bugpoint - ferramenta automática de redução de casos de teste

SINOPSE

bugpoint [options] [input LLVM ll/bc files] [LLVM passes] --args program arguments

DESCRIÇÃO

bugpoint restringe a fonte de problemas nas ferramentas e passagens LLVM. Ele pode ser usado para depurar três tipos de falhas: falhas do otimizador, erros de compilação por otimizadores ou geração de código nativo ruim (incluindo problemas nos compiladores estáticos e JIT). O objetivo é reduzir grandes casos de teste a pequenos e úteis. Para obter mais informações sobre o design e o funcionamento interno do bugpoint, bem como conselhos sobre o uso do bugpoint, consulte ferramenta LLVM bugpoint: design and using na distribuição do LLVM.

OPÇÕES

--additional-so library

Carregue a biblioteca do objeto compartilhado dinâmico no programa de teste sempre que for executado. Isso é útil se você estiver depurando programas que dependem de bibliotecas não LLVM (como as bibliotecas X ou curses) para serem executados.

--append-exit-code={true,false}

Anexe o código de saída dos programas de teste ao arquivo de saída para que uma alteração no código de saída seja considerada uma falha de teste. O padrão é falso.

--args program args

Passe todos os argumentos especificados após --args para o programa de teste sempre que ele for executado. Observe que se qualquer um dos args do programa começar com um "-", você deve usar:

bugpoint [bugpoint args] --args -- [program args]

O "--" logo após a opção --args diz ao bugpoint para considerar qualquer opção que comece com "- " para fazer parte da opção --args, não como opções para o próprio bugpoint.

--tool-args tool args

Passe todos os argumentos especificados após --tool-args para a ferramenta LLVM em teste (llc, lli, etc.) sempre que ela for executada. Você deve usar esta opção da seguinte maneira:

bugpoint [bugpoint args] --tool-args -- [tool args]

O "--" logo após a opção --tool-args diz ao bugpoint para considerar qualquer opção que comece com "-" para fazer parte da opção --tool-args, não como opções para o próprio bugpoint. (Consulte --args, acima.)

--safe-tool-args tool args

Passe todos os argumentos especificados após --safe-tool-args para a ferramenta de execução "segura".

--gcc-tool-args gcc tool args

Passe todos os argumentos especificados após --gcc-tool-args para a chamada de gcc.

--opt-args opt args

Passe todos os argumentos especificados após --opt-args para a chamada de opt.

--disable-{dce,simplifycfg}

Não execute as passagens especificadas para limpar e reduzir o tamanho do programa de teste. Por padrão, o bugpoint usa essas passagens internamente ao tentar reduzir os programas de teste. Se você está tentando encontrar um bug em uma dessas passagens, o bugpoint pode travar.

--enable-valgrind

Use valgrind para encontrar falhas na fase de otimização. Isso permitirá que o bugpoint encontre problemas assintomáticos causados por gerenciamento incorreto de memória.

-find-bugs

Randomize continuamente as passagens especificadas e execute-as no programa de teste até que um bug seja encontrado ou o usuário elimine o bugpoint.

-help

Imprima um resumo das opções de linha de comando.

--input filename

Abra filename e redirecione a entrada padrão do programa de teste, sempre que for executado, para vir desse arquivo.

--load plugin

Carregue o objeto dinâmico plugin no próprio bugpoint. Este objeto deve registrar novos passes de otimização. Depois de carregado, o objeto adicionará novas opções de linha de comando para permitir várias otimizações. Para ver a nova lista completa de otimizações, use as opções -help e --load juntas; por exemplo:

bugpoint --load myNewPass.so -help
--mlimit megabytes

Especifica um limite superior no uso de memória da otimização e codegen. Defina como zero para desativar o limite.

--output filename

Sempre que o programa de teste produz saída em seu fluxo de saída padrão, ele deve corresponder ao conteúdo de filename (a "saída de referência"). Se você não usar esta opção, o bugpoint tentará gerar uma saída de referência compilando o programa com o back-end "seguro" e executando-o.

--run-{int,jit,llc,custom}

Sempre que o programa de teste for compilado, bugpoint deve gerar código para ele usando o gerador de código especificado. Essas opções permitem que você escolha o interpretador, o compilador JIT, o compilador de código nativo estático ou um comando personalizado (consulte --exec-command) respectivamente.

--safe-{llc,custom}

Ao depurar um gerador de código, o bugpoint deve usar o gerador de código especificado como o gerador de código "seguro". Este é um gerador de código conhecido usado para gerar a "saída de referência" se não tiver sido fornecida e para compilar partes do programa que foram excluídas do caso de teste. Essas opções permitem que você escolha o compilador de código nativo estático ou um comando personalizado (consulte --exec-command) respectivamente. O interpretador e os backends JIT não podem ser usados atualmente como backends "seguros".

--exec-command command

Esta opção define o comando a ser usado com as opções --run-custom e --safe-custom para executar o caso de teste de bitcode. Isso pode ser útil para compilação cruzada.

--compile-command command

Esta opção define o comando a ser usado com a opção --compile-custom para compilar o caso de teste de bitcode. O comando deve sair com um código de saída de falha se o arquivo for "interessante" e deve sair com um código de saída de sucesso (ou seja, 0) caso contrário (é o mesmo que travar em entradas "interessantes").

Isso pode ser útil para testar a saída do compilador sem executar nenhum link ou executar estágios. Para gerar um teste de unidade reduzido, você pode adicionar diretivas CHECK ao testcase e passar o nome de um script de comando de compilação executável neste formato:

#!/bin/sh
llc "$@"
not FileCheck [bugpoint input file].ll < bugpoint-test-program.s

Este script irá "falhar" enquanto o FileCheck for aprovado. Portanto, o resultado será o bitcode mínimo que passa no FileCheck.

--safe-path path

Esta opção define o caminho para o comando a ser executado com a opção --safe-{int,jit,llc,custom}.

--verbose-errors={true,false}

O comportamento padrão do bugpoint é imprimir "" quando encontra um teste reduzido que trava a compilação. Este sinalizador imprime a saída do programa com falha para stderr. Isso é útil para garantir que é o mesmo erro que está sendo rastreado e não um erro diferente que trava o compilador também. O padrão é falso.

ESTADO DE SAÍDA

Se o bugpoint conseguir encontrar um problema, ele sairá com 0. Caso contrário, se ocorrer um erro, ele sairá com um valor diferente de zero.

VEJA TAMBÉM

opt(1)

AUTOR

Mantido pela Equipe LLVM (https://llvm.org/).

DIREITO AUTORAL

2003-2023, Projeto LLVM