Ir para conteúdo
  • Cadastre-se

dev botao

Linux: Travamento ao carregar uma biblioteca do SAT


Ver Solução Respondido por Tiago Tarifa Munhoz,
  • Este tópico foi criado há 2056 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Estou trabalhando em um caso, em um programa interno da empresa, que trava ao ser chamado diretamente pelo ícone do ambiente gráfico (Xorg+LXDE) se o SAT estiver desligado e/ou desconectado. Ainda com o SAT desligado, se executado pelo terminal ou pelo próprio Lazarus, o programa abre normalmente.

Investigando, descobri que ao carregar a biblioteca do SAT, neste caso o da Elgin (libsatprotocolELGIN64bits.so), ela gera uma saída de erro, mas que aparentemente não atrapalha a sua execução.
A saída de erro é esta:
console1.jpg
ou pelo terminal:
console2.jpg

Suspeito que, quando nosso programa é executado pelo Xorg não há saída padrão (stdout e stderr) e portanto fica travado.

Com base neste cenário, tive a ideia de redirecionar esta saída para um arquivo de log, por exemplo. Porém, não estou conseguindo.
Com base no link abaixo, estou tentando fazer uma implementação na unit do ACBrUtil antes da biblioteca ser carregada, porém sem sucesso. O problema: a saída não é redirecionada.
http://wiki.freepascal.org/Console_Mode_Pascal (Tópico: Run in IDE with redirected output)

Alguém tem alguma sugestão que possa ser aplicada para que essa saída seja redirecionada (lembrando que o ambiente é Linux)?
Aproveitando: alguém já experienciou o mesmo que eu? Sabem se isso é algum bug?

Qualquer sugestão será bem vinda.

Nota: Para facilitar, a função que carrega a biblioteca é a FunctionDetect na linha 3562, na já mencionada ACBrUtil.

  • Solution
Postado

Resumindo: O problema não está no ACBrUtil, aparenta ser a aplicação mesmo. De qualquer forma, obrigado.

Explicando:

Citar

Não compreendi exatamente, qual é o problema... 

Eu suspeitava que por não haver uma saída padrão(stdout) e para erros (stderr), o componente ACBrUtil ficava "travado" aguardando alguma "saída padrão". Porém, eu estava enganado. No Xorg + LXDE exite sim uma saída padrão, fica em:  /home/usuário/.cache/lxsession/LXDE/run.log.
Neste mesmo lugar encontrei a saída de erro citada no meu primeiro comentário.
Maiores detalhes neste link: https://unix.stackexchange.com/questions/86698/where-does-the-output-from-an-application-started-from-the-window-manager-go

Citar

Consegue reproduzir o problema com o SATTeste ?

Boa... havia me esquecido dele. Fiz um teste com ele e o problema não ocorre. Creio então que o problema deva estar na aplicação e não no componente ACBrUtil, conforme eu suspeitava. (lembrando que estou sem debug, porque executando pelo Lazarus o problema não ocorre.)

Vou dar esse tópico como resolvido.

Obrigado.

  • Curtir 1
  • Este tópico foi criado há 2056 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...