viernes, 11 de septiembre de 2015

Definiendo lo indefinido

Pues al igual os mentí. Ando en el tren camino de kings cross. Siempre que tengo que ir a la estación en bus para coger un tren es la misma. No os digo por dónde me paso yo la puntualidad británica. Y sobre todo, no os digo por dónde se la pasan los británicos. Menos mal que uno ya es perro viejo y cuenta con ello a la hora de hacer el plan.

Hoy hemos tenido una presentación en la que nos contaban cómo funciona un depurador entre bambalinas. Nada que ver con su homónima, la depuradora. Un depurador, o debugger, es un software (normalmente) cuya función es ayudar a encontrar errores semánticos o funcionales en un programa. Vamos, cuando tu programa no hace lo que intentas que haga. Resulta que un truco que usan es, cuando quieren parar el programa en una cierta instrucción, se guardan la instrucción a un lado, y la cambian por una instrucción indefinida. Cuando un programa intenta ejecutar una instrucción indefinida, lo normal es que tu sistema operativo lo mate. En este caso el depurador le dice al SO:
- Mire, que el niño es un poco especial. Si intenta hacer algo que no debe, no sea muy duro con él, avíseme, que ya me encargo yo.
Y tal cual. Pues resulta que en la documentación de las instrucciones de ARM hay una que se llama UDF, y se define como "instrucción no definida", lo cual se me antoja contradictorio...
Lo cierto es que ha estado bien, he aprendido un cacho. ¡Ya estoy casi en el aeropuerto!

No hay comentarios:

Publicar un comentario