Estou fazendo um script de teste para compilar (via make) e executar vários testes. I tem uma série de cat
, grep
e sed
comandos que organiza os resultados de todos os testes bem, no entanto core-lixeiras são a excepção. Digamos que eu tenha um programa chamado test
. Se o ./test
dump principal for despejado, as seguintes linhas não o capturam (como não serão canalizadas para o arquivo):
./test 2>&1 > >(tee log)
./test > log 2>&1
Provavelmente é por causa dessa mensagem de erro do script:
./script.sh: linha 53: 4783 Interrompida (core despejado) ./test 2> & 1>> (tee log)
Eu tenho uma solução hacky que faz o make
lançamento do programa com uma regra personalizada:
faça o teste de execução 2> & 1 | tee -a log
Atualmente funciona, mas é um pouco hacky ter que usar o makefile para fazer isso. Existe outra maneira de capturar o core-dump sem interromper a linha de script do shell?
fonte