Pregunta

Necesito desactivar algún código cuando se ejecuta en el depurador.

Así, acabo de imaginar que hacer:

{$IFNDEF DEBUG} 
  ...
{$ENDIF}

Sin embargo, el código dentro del ifndef se ejecuta en el depurador, Makin que choque.

Tengo Lázaro versión 0.9.29 y 2.4.0 FPC

¿Fue útil?

Solución

Las directivas del compilador que mencionas son en realidad QUE:. Directivas de compilación, no la depuración de las directivas

Se relacionan con el proceso de compilación, bruja está completamente separado del sistema de depuración.

Lo que tienes que hacer es:

  • Cuando se desea depurar el programa, definir el símbolo de depuración. Esto no se compilará los bloques que existen dentro de las pruebas y no se ejecutará en la sesión de depuración.
  • Cuando usted quiere liberar ese código sólo un-definir depurar y todo está listo para ser enviado.

Usted está confundiendo compilación y depuración y ponerlos en el mismo contexto.
En realidad residen en contextos distintos completos.
Esto podría ser debido al hecho de que se compila y depurar bajo el mismo sistema de interfaz gráfica de usuario, pero si compila un programa lo único que las miradas del depurador de puntos de quiebre es.

Espero que ayuda.

Editar . Se puede definir por un simple {$ DEFINE DEBUG} en algún lugar en la parte superior de tu / Unidad de Programas o utilizar el panel Opciones de Lazarus para agregarlo como un parámetro de línea de comandos

Para completar mi respuesta.

Otros consejos

 {$IFOPT D-}
  //code
 {$ENDIF}

Si $ DEBUGINFO es el que se ejecuta con el depurador!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top