[Rio-pm] Começando a perturbar vocês: Depuração de código em Perl.

breno breno em rio.pm.org
Sábado Março 14 08:17:53 PDT 2009


2009/3/13 Alex Santos <alexsantose em yahoo.com.br>:
> Opa rapaz. Eu de novo. =p
>
> Tipo... eu estava querendo fazer algo semelhante ao "set -x" do shell, só
> que além de mostrar os erros ocorrendo no programa principal (index.cgi),
> mostrasse os erros no sub-programa (net-lib.pl).
>
> Que o erro ocorre ali eu sei, mas eu quero ver em que ponto do sub-programa
> que é chamado no net-lib..pl ocorre uma exceção: Se há problema ao passar o
> parâmetro, se ele procura algum outro arquivo que não se encontra no mesmo
> diretório, etc.
>
> Até porquê assim, eu leio as mensagens de erros e resolvo aos poucos e não
> perturbo vocês. XD
>

Bom, confesso que não entendi exatamente o seu problema... mas,
falando em "confess", pra saber (normalmente) em que ponto ocorreu uma
exceção do ponto de vista de quem chamou, usa-se o módulo Carp[1].
Para ver todo o "stack trace" do problema automagicamente, sem
precisar modificar nada no programa, vc pode usar o ótimo módulo
Carp::Always[2], do Adriano Ferreira, uma resposta ao também
interessante Devel::SimpleTrace[3].

    perl -MCarp::Always seu_script.pl

ou, se seu programa for executado de outras formas, adicione:

    use Carp::Always;

no início dele e pronto.

> Em tempo: E como foi o encontro galera? Acaba que surgiram uns imprevistos e
> não pude comparecer. =)
>

Foi *muito* bom. Perdeu :-)

Mas ainda estou esperando um resumo do líder.

[]s

-b


1. http://search.cpan.org/perldoc?Carp
2. http://search.cpan.org/perldoc?Carp::Always
3. http://search.cpan.org/perldoc?Devel::SimpleTrace


Mais detalhes sobre a lista de discussão Rio-pm