2009-09-14 25 views
7

A veces recibimos rastros de pila de nuestro cliente con números de línea incorrectos. No sucede tan a menudo, pero a veces nos desconcierta.Números de línea incorrectos en el seguimiento de pila (versión)

Los clientes tienen conjuntos de versiones con optimizaciones y con información de depuración "solo pdb".

Y sí, comparamos los números de línea con exactamente la misma versión de código que tiene el cliente.

Y sí, el cliente tiene archivos pdb correctos.

Y no, esta diferencia en los números de línea no se puede explicar con el método en línea (optimización del compilador).

Y no, no usamos ninguna herramienta de AOP, como PostSharp.

¿Alguna idea de por qué sucede?

+0

¿Quizás esté utilizando PostSharp o una herramienta similar de AOP? –

+1

Ver si esta ayuda o está duplicada: http://stackoverflow.com/questions/492201/exception-error-message-with-incorrect-line-number – Kobi

Respuesta

7

No es un experto en .net, pero al menos en otros idiomas, cuando se eligen altas optimizaciones del compilador, el compilador puede realizar una importante reordenación del código. Esto puede, y a menudo hace que sea muy difícil identificar el origen de un error en una línea particular. Si el compilador puede realizar optimizaciones en bloques básicos, este efecto puede ser muy significativo, colocando la ubicación aparente de la línea en una parte totalmente diferente del archivo fuente.

2

Si usa mucha optimización de compilación, creo que el compilador podría mover partes de su código.

La mejor manera de depurar, es usar Reflector en el dll que su cliente realmente usa. Con los números de línea de stacktrace, encontrará exactamente qué líneas de códigos se llaman cuando se bloquea la aplicación.

+1

¿Cómo me puede ayudar Reflector? No muestra números de línea, y no conserva el formato, por supuesto. Y el reflector muestra que el código no se modificó significativamente en el lugar donde se produjo la excepción. – xoposhiy

+1

Oh ... Así que estás jodido, supongo. Lo siento :/ –

Cuestiones relacionadas