[eside-ghost] Paquetes en modo debug
Alfredo Beaumont
alfredo.beaumont en gmail.com
Vie Mar 28 10:13:20 CET 2008
Or, 2008eko Marren 28a(e)an, STenyaK (Bruno Gonzalez)(e)k idatzi zuen:
> On 3/28/08, Alfredo Beaumont <alfredo.beaumont a bildua gmail.com> wrote:
> > Pues depende mucho de cómo distribuyas tu código. Si distribuyes
> > únicamente
> > las fuentes, bastaría con que en las autotools o el sistema de
> > construcción
> > que hayas elegido tengas una opción para activar el debugging. A partir
> > de aquí, todo depende de la distribución, y creo que ese trabajo se lo
> > deberías
> > dejar a la distribución, si lo quiere hacer. Es decir, si quieres
> > publicar binarios, lo más razonable (EMHO) es ofrecer un binario normal
> > stripeado, y
> > si alguien quiere opciones de debug, que se descargue las fuentes (si las
> > quiere probablemente sabrá compilar tu paquete).
>
> Gracias por las explicaciones.
>
> Yo en principio, tenía pensado que el modo debug fuera tb usable por los
> usuarios finales. Por ejemplo, si alguien tiene algun segfault, ejecuta el
> programa que sea de nuevo en modo debug, y así cuando pete, se genera un
> coredump o un backtrace que se me envie automaticamente, y de esa forma
> puedo depurar la cosa más facilmente.
Esto funciona en la teoría, pero en la práctica no, porque normalmente nadie
va a volver a ejecutar en modo debug el programa para hacer que pete
(bastante trabajo suele llevar reportar un bug normal), salvo que esté de
alguna manera vinculado con el desarrollo, y en ese caso cuesta menos
trabajar directamente en modo debug. Además, si ese usuario fuera
extremadamente generoso y decidiera ejecutarlo en modo debug puede que el
fallo no vuelva a aparecer.
> Claro que, si se usa el modo debug, el rendimiento seguramente baje un rato
> (por el tamaño del binario y etc). Tp he hecho benchmarks, igual me estoy
> aventurando en la optimización prematura... En cualquier caso, lo más
> sensible igual sería tener un sistema de logging y excepciones muy robusto
> para este tema.
El problema no son los símbolos en el binario, que ocupan algo pero poco más,
sino que en el modo debug no vas a utilizar optimizaciones del compilador
(-O0) mientras que en el modo normal sí (-O2 o -O3) y eso sí que se nota.
Efectivamente siembre es bueno tener un buen sistema de logging y excepciones,
aunque seguirán existiendo bugs. Un backtrace aunque sea sin información de
debug también puede ayudar.
Saludos
--
Alfredo Beaumont Sainz
http://www.alfredobeaumont.org/blog.cgi
Más información sobre la lista de distribución eside-ghost