# Manual de Nemiver

## Vista general

Nemiver es un esfuerzo continuo para escribir un depurador gráfico independiente que se integre perfectamente en el entorno de escritorio GNOME. Actualmente cuenta con un motor que utiliza el conocido Depurador de GNU gdb para depurar programas en C / C ++.

### Perspectivas

Nemiver está diseñado como una banco de trabajo gráfica genérica y un sistema de complementos que puede ofrecer diversas perspectivas. Actualmente, la única perspectiva proporcionada es la de depuración, pero en el futuro se añadirán perspectivas para depurar la memoria con valgrind, o para herramientas de perfiles como oprofile.

## Inicio

Esta sección explica cómo iniciar Nemiver y proporciona una vista general de la aplicación.

### Iniciar Nevimer

Puede iniciar Nemiver de las siguientes formas:

Menú Aplicaciones

- Elija Programación Depurador Nemiver.

Línea de comandos

- Escriba `nemiver` y pulse Intro.

  #### Opciones adicionales de la línea de comandos

  Puede encontrar una lista de las opciones que se pueden pasar a Nemiver en la línea de comandos escribiendo `nemiver --help-all`.

### La ventana de Nemiver

Al iniciar Nemiver, verá una ventana que se se parece mucho a esto:

#### Ventana de Nemiver

Muestra la ventana principal de Nemiver.

La ventana de Nemiver contiene los siguientes elementos:

Barra de menú

- Los menús de la barra de menús contienen todos los comandos que puede necesitar para usar Nemiver.

Barra de herramientas

- La barra de herramientas contiene las acciones básicas de depuración que se pueden usar para ejecutar o analizar paso a paso el programa en depuración.

Cuaderno de vista de fuentes

- Cuando los archivos de fuentes están abiertos, este área mostrará los archivos de fuentes del programa en depuración.

Cuaderno de estado

- El cuaderno de estado contiene varias pestañas para mostrar información sobre el programa en depuración. Estas incluyen lo siguiente:

  Pila de llamadas

- Muestra el estado actual de la pila de llamadas del programa en depuración.

Variables

- Muestra una lista de todas las variables locales y los argumentos de funciones, además de sus valores y sus tipos.

Terminal objetivo

- Si el programa que se está depurando imprime cualquier salida en la terminal, se mostrará en esta pestaña.

Puntos de parada

- Esta pestaña muestra una lista de todos los puntos de parada que ha establecido. Puede ver el código fuente de un punto de parada concreto pulsando dos veces en un elemento en la lista o pulsando con el botón derecho y seleccionando Ir al código fuente en el menú. Además, los puntos de parada se pueden eliminar, activar o desactivar en esta pestaña. Para obtener más información sobre los puntos de parada consulte la nemiver-sect-breakpoints.

Registros

- Esta pestaña muestra todos los registros de la CPU y sus valores. Para obtener más información, consulte la nemiver-sect-registers.

Memoria

- Esta pestaña muestra una vista del estado actual de una ubicación específica de la memoria. Para obtener más información, consulte la nemiver-sect-memory.

### Elegir un programa que depurar

Hay varias maneras de empezar a depurar un programa. Nemiver le permite cargar un archivo ejecutable local, cargar un archivo core, conectarse a un programa en ejecución o conectar a un servidor de depuración remota.

#### Depurar un programa ejecutable

##### Usar el banco de trabajo

Para seleccionar un ejecutable que depurar, elija Archivo Ejecutar..., lo que mostrará el siguiente diálogo:

###### Diálogo «Ejecutar»

Muestra el diálogo para seleccionar un ejecutable que ejecutar

En este diálogo puede seleccionar el programa que depurar, cualquier argumento u opciones que pasar al ejecutable en la línea de comandos, la carpeta de trabajo donde ejecutar el ejecutable y cualquier variable de entorno que deba estar configurada cuando se depure el ejecutable.

##### Usar la línea de comandos

Para empezar a depurar un programa desde la línea de comandos, simplemente especifique el nombre del ejecutable. También puede indicar una ruta absoluta al ejecutable, o si está en la variable «path», puede simplemente especificar el nombre base del ejecutable. Por ejemplo, si `/usr/bin` está en su «path», los dos ejemplos siguientes son correctos:

- `nemiver /usr/bin/nombre_programa`

- `nemiver nombre_programa`

###### Pasar opciones en la línea de comandos

Si quiere pasar opciones de línea de comandos al archivo que está depurando, debe entrecomillarlas para evitar que Nemiver las procese: `nemiver "nombre_programa --arg1 --arg2"`.

#### Conectarse a un programa en ejecución

##### Usar el banco de trabajo

Seleccione el elemento de menú Archivo Conectarse a un programa en ejecución..., lo que mostrará el siguiente diálogo:

###### Diálogo «Conectar»

Muestra el diálogo para acoplarse a un programa en ejecución

Seleccione un programa de la lista y pulse Aceptar para iniciar la depuración del programa seleccionado. Puede haber muchos procesos listados en el diálogo, por lo que puede filtrar la lista con sólo aquellos en los que está interesado escribiendo algún texto en la entrada de texto situada justo debajo de la lista.

##### Usar la línea de comandos

Para conectarse a un programa en ejecución desde la línea de comandos, use la opción `--attach`. La opción `--attach` acepta un PID o el un nombre de proceso. Así, por ejemplo, para depurar el proceso `foo` cuyo PID es 1121, podría escribir o `nemiver --attach foo` o `nemiver --attach 1121`.

#### Cargar un archivo core

##### Usar el banco de trabajo

Seleccione el elemento de menú Archivo Cargar archivo core… para abrir el siguiente diálogo, que le permitirá cargar un archivo core:

###### Diálogo «Cargar archivo core»

Muestra el diálogo para cargar un archivo core

##### Usar la línea de comandos

Los archivos core no se pueden cargar desde la línea de comandos.

#### Depuración remota

Nemiver le permite conectarse a un servidor de depuración remota.

##### Usar el banco de trabajo

Para conectarse a un servidor de depuración remota, seleccione Archivo Conectar con objetivo remoto...

Diálogo de depurado remoto

Seleccione el ejecutable que cargar y la ubicación de cualquier biblioteca compartida, y rellene los detalles sobre la conexión al servidor remoto.

##### Usar la línea de comandos

Nemiver no proporciona una forma de conectarse a un servidor remoto usando la línea de comandos

## Usar Nemiver

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

### 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 nemiver-sect-inspecting-variables), o establecer puntos de parada adicionales (consulte la nemiver-sect-breakpoints).

### 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:

Diálogo del inspector de variables

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.

Diálogo de variables globales

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

### 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:

  Diálogo para establecer un punto de parada

  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.

#### 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.

Ilustración de un punto de parada activado

Punto de parada activado

Ilustración de un punto de parada desactivado

Punto de parada desactivado

#### 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:

Muestra el diálogo para abir archivos de fuentes

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.

### Depuración avanzada

#### 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.

El widget para editar registros

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.

#### 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.

El widget de edición de la memoria

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.

## Guardado y restauración de sesiones

Nemiver puede guardar sus sesiones de depuración por lo que las puede reanudar más tarde. Esto incluye guardar información como qué ejecutable se está depurando, qué variables de entorno están configuradas, qué opciones de línea de comandos se han pasado al ejecutable, qué archivos hay abiertos y qué puntos de parada hay configurados, por lo que puede regresar al sitio en el que lo dejó tan rápido como sea posible.

### Guardar sesiones

Nemiver guardará su sesión automáticamente al salir, por lo que no tiene que preocuparse de ello. sin embargo, si quiere guardar explícitamente la sesión antes de cerrar Nemiver, puede hacerlo seleccionando Archivo Guardar la sesión en el disco.

### Resumir sesiones guardadas

#### Usar el banco de trabajo

Seleccione Archivo Continuar una sesión guardada... y seleccione una sesión de la lista.

##### Diálogo de sesión

Muestra el diálogo para reanudar una sesión guardada

#### Desde la línea de comandos

Si conoce el ID de la sesión que quiere ejecutar, puede empezar esa sesión de depuración desde la línea de comandos. Por ejemplo, si quiere ejecutar la sesión nº 3, puede hacerlo con el siguiente comando: `nemiver --session 3`.

## Acerca de Nemiver

Dodji Seketeli y Jonathon Jongsma escribieron Nemiver, con contribuciones de muchos otros. Para obtener más información sobre Nemiver, visite la página web del proyecto Nemiver.

Para informar de un fallo, o hacer alguna sugerencia concerniente esta aplicación o manual, siga las indicaciones en la Página de comentarios de GNOME.

Este programa se distribuye bajo los términos de la Licencia Pública General GNU tal como la publica la Free Software Foundation; tanto en la versión 2 de la Licencia , o (a su opción) cualquier otra versión posterior. Puede encontrarse una copia de esta licencia en este enlace, o en el archivo COPYING incluido con el código fuente de este programa.