Usar Nemiver

Esta sección describe cómo usar Nemiver para depurar su aplicación.

3.1. Acciones básicas de depurado

Las acciones básicas de depuración están disponibles en la barra de herramientas principal, en el menú Depurar y como atajos de teclado. Las acciones más comunes se listan a continuación:

Continuar

Inicia el programa. El programa se ejecutará hasta llegar a un punto de parada o hasta que termine, a menos que el usuario lo interrumpa manualmente pulsando Detener. Esta acción se puede activar desde el teclado con F5.

Siguiente

Ejecuta la siguiente declaración, y se detiene al llegar a la siguiente línea del archivo. Algunos depuradores llaman a esta opción «step over». Esta acción se puede activar desde el teclado con F6.

Paso

Ejecuta la siguiente declaración, entrando en la función si es posible. Algunos depuradores puede llamar a esta acción «Paso adentro». Esta acción se puede activar desde el teclado con F7.

Paso afuera

Finaliza la ejecución de la función actual y para cuando retorna a la función que la llamó. Esta acción se puede activar desde el teclado con Mayús+F7.

Reiniciar

Recarga el ejecutable actual e inicia la ejecución desde el principio. Esta acción se puede activar desde el teclado con Mayús+F5.

Parar

Interrupción manual de la ejecución del programa. Esta acción sólo está disponible cuando el depurador está corriendo el ejecutable (ej. después de que el usuario ha pulsado Continuar). Esta acción se puede activar desde el teclado con F9.

De manera predeterminada, después de cargar un ejecutable, Nemiver crea un punto de parada en main(), por lo que cuando la ejecución llega a main(), se parará y esperará una entrada. Puede avanzar por el programa, examinar las variables (consulte la Sección 3.2: Inspeccionar variables), o establecer puntos de parada adicionales (consulte la Sección 3.3: Establecer puntos de parada).

3.2. Inspeccionar variables

Nemiver muestra una lista de todas las variables locales en la pestaña Variables del Cuaderno de estado. Si quiere examinar una variable diferente (o incluso una expresión arbitraria), puede usar el Inspector de variables. Para abrir el Inspector de variables, seleccione Depurar ▸ Inspeccionar una variable. Cuando se abra el inspector de variables, verá una ventana similar a esta:

Puede escribir cualquier nombre de variable o una expresión (como pFoo->bar) en la caja de entrada, y si la variable es válida y alcanzable, se mostrarán los detalles de esta expresión.

Alternativamente, si selecciona el nombre de una variable en el editor de código fuente y lanza el Inspector de variables, intentará mostrar información sobre el nombre de la variable seleccionada.

Combinaciones de teclas

También puede iniciar el Inspector de variables pulsando F12.

Nemiver también le permitirá mostrar una lista de todas las variables globales de una aplicación en un diálogo aparte. Para mostrar el diálogo Variables globales, seleccione Depurar ▸ Mostrar variables globales o pulse Ctrl+G.

Para algunos programas (especialmente los escritos en C++), listar todas las variables globales puede llevar mucho tiempo.

3.3. Establecer puntos de parada

Hay varias maneras de establecer puntos de parada en Nemiver. Nemiver configura automáticamente un punto de parada en main() cuando depura por primera vez un ejecutable nuevo. Si quiere establecer puntos de parada adicionales, puede hacer una de las siguientes cosas:

  • Pulse en el margen junto a la línea en la quiere establecer un punto de parada

  • Sitúe el cursor en la línea en la que quiere establecer el punto de parada y establézcalo seleccionando Depurar ▸ Activar/desactivar punto de parada en el cursor, o pulsando F8

  • Establezca un punto de parada en el nombre de una función específica o en una ubicación específica seleccionando Depurar ▸ Fijar punto de parada... o pulsando Ctrl+B. Esto hará que aparezca un diálogo similar a esto:

    Puede especificar un punto de parada en una ubicación concreta del archivo, o por nombre de función. Si hay más de una función con el mismo nombre, Nemiver mostrará una lista de todas las funciones que coincidan y le pedirá que elija la que quiere.

3.3.1. Puntos de paradas desactivados

Los puntos de parada pueden estar activados o desactivados. El depurador parará la ejecución cuando llegue a un punto de parada activado, pero los que estén desactivados no le afectarán. Esto le permite quitar temporalmente un punto de parada si eliminarlo.

Para activar o desactivar un punto de parada, pulse en la casilla junto al número del punto de parada que quiere activar o desactivar en la pestaña Puntos de parada del Cuaderno de estado. Alternativamente, puede pulsar Mayús+F8 para activar o desactivar un punto de parada fijado en la línea en la que esté el cursor.

La siguiente figura muestra la diferencia entre los puntos de parada activados y desactivados en el editor de fuentes.

Punto de parada activado

Punto de parada desactivado

3.3.2. Abrir archivos de fuentes

Algunas veces no sabe exactamente el nombre de la función o el número de línea donde quiere fijar un punto de parada, por lo que debe abrir el archivo fuente para averiguarlo. Podría simplemente abrir archivos arbitrarios del sistema de archivos, pero Nemiver también puede proporcionar una lista de archivos de fuentes usados para construir el ejecutable y permitirle seleccionarlos de esta lista. Cuando selecciona Archivo ▸ Abrir archivo de fuentes..., se debería mostrar la siguiente ventana:

Para seleccionar un archivo arbitrario del sistema de archivos, elija la opción Seleccionar desde el sistema de archivos.. Para seleccionarlo de una lista de archivos que produce el ejecutable, elija Seleccionar desde el ejecutable objetivo.

Determinar archivos de fuentes para módulos cargados dinámicamente

Si el ejecutable objetivo carga módulos el tiempo de ejecución (ej. usando dlopen()), Nemiver no podrá determinar qué archivos se usaron para construir estos módulos hasta que estén cargados.

3.4. Depuración avanzada

3.4.1. Registros

El widget de edición de registros se encuentra en la pestaña Registros del Cuaderno de estado. Alternativamente, puede pulsar Alt+F5 para saltar directamente a la pestaña correcta.

Este widget muestra los valores actuales de todos los registros de la CPU. Puede editar los valores de los registros pulsando en la columna Valor e introduciendo un valor nuevo. Si el valor del registro ha cambiado desde la última vez que se paró el depurador, se resaltará en rojo.

3.4.2. Memoria

El widget de memoria le permite ver directamente una sección de la memoria. Esto le permite obtener una vista de bajo nivel de qué está pasando mientras su programa se ejecuta.

Para mostrar un segmento de memoria en el widget de vista de memoria, introduzca la dirección de memoria en el campo Dirección. Si la dirección es válida para el programa en depuración, la vista de memoria mostrará los valores de memoria empezando por la dirección especificada. Los valores de memoria se pueden mostrar en formato de byte, de palabra (2 bytes) o de palabra larga (4 bytes) eligiendo una opción en el menú desplegable Agrupar por. Los valores de memoria se actualizarán automáticamente a medida que avanza por el programa.

Además de ver los valores de la memoria, también puede usar el widget de memoria para modificar los valores de la memoria. Puede editar tanto la representación hexadecimal de los bytes (en la sección de la izquierda del widget de memoria) como la representación ASCII en la sección de la derecha del widget de memoria). Todos los cambios se aplicarán inmediatamente.