miércoles, 13 de agosto de 2008

Breakpoints.

En este apartado se profundizará en una herramienta bastante útil a la hora de hacer una simulación de nuestro código, los puntos de ruptura o en el término anglosajón, breakpoint.

Los breakpoints, como su nombre indica, son puntos que pondremos a nuestra conveniencia en nuestro código de tal manera, que cuando se llegue a ellos, el programa se pare.

Esto es bastante útil ya que podremos examinar lo que se ha ejecutado hasta ese momento y por lo tanto, se podrán corregir errores o cerciorarse de que el programa realiza lo que debe hacer.

El MPSIM dispone de tal herramienta, y la forma de usarla es bastante sencilla. Para ello, disponemos de dos formas, la más fácil y habitual se basa en hacer doble click sobre la línea de código de nuestro programa que queremos introducir un breakpoint.



Se nos indicará en el margen izquierdo un círculo rojo con una B dentro, esto indica que hemos introducido en dicha línea de código un breakpoint.

Por lo tanto, cuando el programa se empiece a simular de forma continua, se parará justamente en la línea donde hemos colocado el breakpoint.

Para quitarlo, debemos hacer, nuevamente, doble click sobre la línea que el breakpoint, una vez realizada tal acción, el símbolo del breakpoint desaparecerá.

La otra forma de introducir breakpoint, es mediante el menú de herramientas en el apartado Debugger... o mediante el icono que nos aparece al activar el simulador MPSIM.


De ambas maneras, se llegará a la misma ventana de introducir breakpoint.



Donde en Break at: debemos poner la dirección de memoria en la cual deseamos introducir un breakpoint.

Por ejemplo, introduciremos un breakpoint en la dirección 0x04 de la memoria de programa. Para ello, tecleamos el número 4 en Break at: y pulsamos sobre OK.



Inmediatamente aparecerá en el código un círculo de color amarillo con una B en su interior indicando que es un punto de ruptura.

Éstos puntos de ruptura no se pueden borrar como los anteriores haciendo doble click sobre la línea de código que lo contiene, sino que debemos pulsar nuevamente sobre el icono de Breakpoint



Y aparecerá nuevamente la ventana de configuración de los breakpoints con el que se intrudució anteriormente, en este caso en la posición 0x04.



Para borrarlo, lo seleccionamos y pulsamos sobre Remove. Si tenemos más de un breakpoint y queremos deseleccionar todos, pulsamos sobre Disable All, y en caso contrario, que queramos activarlos todos, pulsamos sobre Enable All.

En la ventana anterior, MPSIM ofrece al diseñador información sobre las limitaciones, en caso de tenerlas, de esta herramienta:
  • Active Breakpoint Limit: Nos informa del número máximo de breakpoint que podemos tener activos en nuestro código a la hora de simularlo, en este caso aparece Unlimited, que significa que podemos tener todos lo breakpoint activos que deseemos ya que no hay limites de uso de esta herramienta.
  • Available Breakpoints: Nos indica el número máximo de breakpoint que podemos usar, en este caso nos aparece Unlimited, por lo que disponemos de un número ilimitado de breakpoint para poder simular nuestro código.
Los breakpoints activos serán los que estén marcados, los que aparezcan sin marcar no tendrán efecto a la hora de la simulación de nuestro código.

Una utilidad indispensable para saber las posiciones de memoria de cada instrucción de nuestro código, es usar el archivo desamblador, para hacerlo visible debemos irnos a la barra de herramientas y pulsar sobre View y posteriormente sobre Disassembly Listing, se nos abrirá una ventana donde aparecerá tanto nuestro código como la posición de memoria que ocupa.



Donde podremos apreciar que realmente el breakpoint está puesto en la dirección de memoria que hemos indicado, en este caso la 0x04.

En resumen, los breakpoint son una herramienta muy poderosa e indispensable a la hora de simular nuestros códigos.

Ya que nos permite ir directamente a la zona de código que deseemos simular paso a paso de una forma directa pero habiéndose ejecutado todas las instrucciones anteriores a la dirección del breakpoint introducido.

Es una herramienta que es bastante útil a la hora de corregir errores y que es muy recomendable y casi indispensable, en códigos medianamente complejos, de saber usar.


Todo el tema anteriormente explicado, se pude observar en el siguiente vídeo:



0 comentarios: