[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: DDD POR FAVORR>>



Antonio Castro dixit:

> La traza se expande en el lugar donde tu la pones. Antes de eso todo
> el entorno de ejecución es exactamente el mismo. A mi me ha pasado
> con depuradores varias cosas. El depurador se va a freir puñetas o
> se despista y hace las cosas mal, o lo peor de todo: El programa
> desde el depurador funciona exactamente como tu esperabas.

A todos nos ha pasado, supongo.  En el momento en que corrompes el
stack o el heap, ya te puedes olvidar de toda consistencia en el
proceso.  Los programadores de Java se ríen de nosotros, programadores
de C/C++, cuando nos pasan estas cosas.

(Lo cual es apenas justo: nosotros nos reímos de ellos con bastante
mas frecuencia :-)

> El gran problema del printf es que no tienes la garantía de que esa
> traza aparezca. Violación de segmento por ejemplo te dejará los
> datos de salida perdidos en el buffer de salida. printf por las
> buenas no sirve. Ni siquiera sirve el fflush(). Yo abro y cierro a
> cada salida de la traza para garantizar completamente su salida.

Es correcto.  Aunque en UNIX tienes syslog(3), que no tiene ese
problema.  Yo normalmente no lo puedo usar directamente, porque
generalmente mi código debe poder compilar bajo el sistema operativo
cuyo nombre no ha de ser mencionado.

En cualquier caso, te informo que tu include de traza ya ha pasado a
formar parte de mi arsenal, con la atribución apropiada :-)

 -CR



Reply to: