• Publicidad

Seguir una traza

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Seguir una traza

Notapor panterozo » 2010-01-26 08:43 @404

Hola a todos uds.

Este es mi primer post, y espero poder contribuir con esta comunidad. Bueno, al grano...

Tengo un proyecto en mis manos, donde se utilizan sockets. Lo hago correr, pero en algún lugar genera un error. Me gustaría poder seguirle la traza, pero al ojo es muy complicado y me pierdo. Si alguien tuviese alguna idea de algún programa que guarde la información ya sea por el lado del cliente o por el lado del server... ¿O quizás Perl tiene alguna forma de seguir la traza...? Recuerdo cuando programaba en C con Turbo C, me permitía ir línea por línea, observar cuándo salía de los ciclos, cuándo saltaba a funciones y procedimientos, etc...

Espero se entienda y me pudiesen echar una mano...

Muchas gracias ;)
panterozo
Perlero nuevo
Perlero nuevo
 
Mensajes: 160
Registrado: 2010-01-26 08:36 @400

Publicidad

Re: Seguir una traza

Notapor explorer » 2010-01-26 08:51 @410

Bienvenido a los foros de Perl en Español, panterozo.

Le ejecución paso a paso de un programa la puedes hacer con el depurador integrado.

Ejecuta, desde la línea de órdenes: perl -d programa.pl
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Seguir una traza

Notapor panterozo » 2010-01-26 08:57 @414

Tengo este sencillo programa para sumar dos números:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print "Ingrese numero \n";
$valor = <STDIN>;
print "Ingrese segundo numero \n";
$valor1 = <STDIN>;
$valor=$valor+$valor1;
print"La suma es: $valor\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


y la consola...

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$ perl -d ./fichero.pl

Loading DB routines from perl5db.pl version 1.3
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(./fichero.pl:2): print "Ingrese numero \n";
   DB<1> 5
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


y ahí queda :s...
(¿Es posible seguir una traza a una comunicación por socket?)

Gracias
panterozo
Perlero nuevo
Perlero nuevo
 
Mensajes: 160
Registrado: 2010-01-26 08:36 @400

Re: Seguir una traza

Notapor explorer » 2010-01-26 10:01 @459

Claro... no le has dicho al depurador que continúe.

Haz lo que te dice: pulsa 'h' para obtener ayuda del funcionamiento del depurador.

En cuanto a la comunicación por socket, yo siempre usaba Log::Log4perl para ir sacando los eventos que ocurrían.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Seguir una traza

Notapor salva » 2010-01-26 12:32 @564

panterozo escribiste:Tengo un proyecto en mis manos, donde se utilizan sockets...


Además de la recomendación que te hace explorer de usar el depurador, cuando se trata de sockets, a veces otras soluciones resultan más convenientes:

  • realiza el traceo a nivel del sistema operativo para ver qué es lo que pasa a bajo nivel. Por ejemplo, en Linux, utiliza strace:
    Sintáxis: [ Descargar ] [ Ocultar ]
    Using bash Syntax Highlighting
    $ strace -s 1024 perl script.pl
    Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

    Este método es sobre todo útil cuando no sabes dónde está el problema, si en el servidor o en el cliente.
  • utiliza un programa como wireshark que captura las conexiones de red y las recompone y además tiene soporte para los protocolos más comunes.
  • instrumentaliza tu código de manera que cuando cierta variable tenga un valor verdadero (p. ej. $Mi::Modulo::debug = 1) haga un volcado en hexadecimal de todo lo que entra y sale por la red.
Avatar de Usuario
salva
Perlero nuevo
Perlero nuevo
 
Mensajes: 200
Registrado: 2008-01-03 15:19 @680

Re: Seguir una traza

Notapor panterozo » 2010-03-29 14:38 @651

El debug fue lo mejor ;)

Gracias
panterozo
Perlero nuevo
Perlero nuevo
 
Mensajes: 160
Registrado: 2010-01-26 08:36 @400


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 10 invitados