2010-05-21 17 views
6

Parece que no puedo encontrar nada en google diciéndome por qué podría ser así y cuál es la resolución. Estoy avanzando a través del código de terceros (que tengo la fuente) y realmente me gustaría ver que se ejecuta la línea actual ...Depuración de Eclipse - línea: no disponible

Al mirar las banderas de javac compile, veo el indicador -g: none. Si esta bandera está configurada, ¿sería suficiente para explicar por qué no puedo ver los números de línea? Si es así, ¿por qué alguien haría esto? ¿Hay implicaciones de rendimiento? ¿Necesito recompilar el contenedor para adjuntar la información de depuración que falta (si es posible)?

Gracias!

Respuesta

7

Al mirar los indicadores de compilación javac, veo el distintivo -g: ninguno. Si esta bandera está configurada, ¿sería suficiente para explicar por qué no puedo ver los números de línea?

Sí, ese es el motivo.

Si es así, ¿por qué alguien haría esto?

Tal vez el autor de la biblioteca quería hacer su jar lo más pequeño posible. El rendimiento no será muy diferente si compila sin el modificador -g:none.

+0

Roger. ¿Hay algo que pueda hacer antes de recompilarme? ¿Hay ganancias de rendimiento para usar esta bandera? – Mike

+0

Lo único que puede hacer es crear el contenedor usted mismo e incluir la información de depuración. – tangens

+0

¡Gracias, gracias! – Mike

1

Me imagino que habría implicaciones de rendimiento, pero la información de depuración definitivamente hará que sus archivos de clase sean más grandes. Entonces esa es otra motivación. También, las empresas que desean proteger su fuente a menudo no recopilarán información de depuración para hacer que el desmontaje (ingeniería inversa) sea menos valioso para alguien tan motivado (esta es la misma razón por la que algunas empresas ofuscan su código de bytes).

Claramente, si la fuente está disponible para usted, el punto anterior es irrelevante. Si el código es de código abierto, no debería tener demasiados problemas compilando usted mismo la biblioteca (¡después de todo, todos los demás contribuidores deberían poder hacer eso!). Y sí, esa es tu mejor opción en este punto.

+0

Correcto, pero es posible que no tenga acceso RCS a la fuente y a todas las instrucciones de ensamblaje (ant o maven), solo un contenedor de origen. Si ese es el caso, podría ser necesario investigar si el proyecto tiene un servidor svn o cvs del que se pueden extraer los scripts de compilación ... – Mike

Cuestiones relacionadas