<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>WebHome/TrabajosPracticos/PracticoASM4/Debug</title><revhistory><revision><revnumber>6</revnumber><date>2015-07-28 19:34:40</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>5</revnumber><date>2015-07-28 19:32:25</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>4</revnumber><date>2015-07-28 19:28:30</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>3</revnumber><date>2015-07-28 19:27:08</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>2</revnumber><date>2015-07-28 19:25:57</date><authorinitials>GuillermoSteiner</authorinitials></revision><revision><revnumber>1</revnumber><date>2015-07-28 19:23:28</date><authorinitials>GuillermoSteiner</authorinitials></revision></revhistory></articleinfo><section><title>Breve tutorial de GDB</title><section><title>Carga de un programa</title><para>para un proyecto llamado ex1.elf, escribimos: </para><screen><![CDATA[arm-none-eabi-gdb --tui
]]><![CDATA[
target sim
file ex1.elf
load
list]]></screen></section><section><title>Comandos del GDB</title><para>comandos mas utilizados por el GDB, entre paréntesis se detalla la versión corta </para><para><code>break nn ( b nn )</code> realiza un break point en la linea nn </para><para><code>delete ( d )</code> borra todos los break point </para><para><code>delete n ( d n )</code> borra el break point n (n es el numero de orden en la creación del break point no la linea donde este se encuentra) </para><para><code>run  ( r )</code> comienza la ejecución del programa </para><para><code>continue ( c )</code> continua la ejecución de un programa luego de haber sido detenido por un break point </para><para><code>step ( s )</code> ejecuta el programa hasta la próxima linea de instrucción </para><para><code>next ( n )</code> similar a step, pero si la instrucción a ejecutar es un llamado a subrutina, ejecuta esta subrutina sin detenerse. </para><para><code>info register ( i r )</code> muestra el estado de los registros </para><para><code>x</code> muestra el contenido de la memoria </para><para><code>x [dirección de memoria]</code> </para><para><code>x/{cantidad de elementos}{formato del elemento}{tamaño del elemento} [dirección de memoria]</code> </para><para>descripción de los parámetros </para><para>[dirección de memoria] el comando debe estar acompañado por la dirección de memoria a mostrar o en su defecto por una etiqueta. </para><para>{cantidad de elementos} opcional, indica la cantidad de elementos que se quiere ver, suponiendo que la dirección de memoria es el comienzo de un vector, se supone 1 en caso de omisión. </para><para>{formato del elemento} tipo del formato en que esta guradado el dato. </para><itemizedlist><listitem override="none"><para>o - octal </para></listitem><listitem override="none"><para>x - hexadecimal </para></listitem><listitem override="none"><para>d - decimal </para></listitem><listitem override="none"><para>u - decimal sin signo </para></listitem><listitem override="none"><para>t - binario </para></listitem><listitem override="none"><para>f - punto flotante </para></listitem><listitem override="none"><para>a - dirección </para></listitem><listitem override="none"><para>c - caracter </para></listitem><listitem override="none"><para>s - cadena </para></listitem><listitem override="none"><para>i - instrucción </para></listitem></itemizedlist><para>{tamaño del elemento} cantidad de bytes que ocupa cada elemento </para><itemizedlist><listitem override="none"><para>b - byte </para></listitem><listitem override="none"><para>h - halfword (16-bit) </para></listitem><listitem override="none"><para>w - word (32-bit) </para></listitem><listitem override="none"><para>g - giant word (64-bit) </para></listitem></itemizedlist></section><section><title>Comandos y combinaciones de teclas del TUI</title><para><code> layout regs </code> Muestra en una ventana los registros. </para><para><emphasis role="strong">Ctrl-x + o</emphasis> Cambia la ventana activa.  </para></section></section></article>