Consideremos las propiedades deseables. El código debe
- ser capaces punto de interrupción-
- explica claramente que es allí sólo por los puntos de interrupción.
- no debe ser inmediatamente visible para un usuario que lo ejecute.
- no afecta el comportamiento en tiempo de ejecución (incluido el tiempo de ejecución).
Según el optimizador que utilice, el mejor código de punto de interrupción puede variar.
No soy mucho para agregar ensamblaje. No es portátil y estropea el análisis del compilador del código circundante. Incluso si no es operativo, podría afectar el rendimiento.
La impresión es visible por el usuario. Hablar con el depurador se siente como si estuvieras haciendo algo mal. He escuchado historias sobre cómo desaparecieron los errores de enhebrado cuando el código se ejecutó en el depurador (y así es como los depuradores obtuvieron su nombre: D). Diría que es algo que hay que evitar, y los problemas que resuelve deberían resolverse con un mejor depurador (¿un parche de mono fácil de usar, tal vez?).
Creo que el mejor código es bool breakpoint_dummy = /* the value means nothing */ false;
. Encaja en 80 columnas, explica qué es, y si su compilador de optimización no puede tratar con las variables no utilizadas, (¿ojalá?) Compilará al xorl eax, eax
, un código rápido y pequeño (supongo). En general, los ceros son más baratos que los ;-)
¿por qué está marcado para cerrar? –
Porque la etiqueta SFQ se usa en exceso. –
Nunca he tenido que insertar una línea para romper ... –