# Manual del EID Anjuta

v1.0.0

Manual para el EID Anjuta

Naba
Kumar
Andy
Piper
Biswapesh
Chattopadhyayr
Johannes
Schmid
2001-2002
2006-2008
Naba Kumar, Andy Piper, Biswapesh Chattopadhyay
Johannes Schmid
2007-2009
Jorge González (jorgegonz@svn.gnome.org)

Se concede permiso para copiar, distribuir o modificar este documento según las condiciones de la GNU Free Documentation License, Versión 1.1 o cualquier versión posterior publicada por la Free Software Foundation sin Secciones invariantes, Textos de portada y Textos de contraportada. Encontrará una copia de la GNU Free Documentation License visitando su página web o escribiendo a: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, EE. UU.

Muchos de los nombres usados por compañías para distinguir sus productos y servicios se mencionan como marcas comerciales. Donde aparezcan dichos nombres en cualquier documentación GNOME, y para que los miembros del proyecto de documentación las reconozcan dichas marcas comerciales, dichos nombres se imprimen en mayúsculas o iniciales mayúsculas.

Manual de Anjuta 2.1.0
2007

Johannes Schmidjhs@gnome.org

Equipo de Anjuta

## Introducción

Anjuta es un Editor Integrado de Desarrollo (EID) versátil para el escritorio GNOME. Tiene ciertas características para facilitar la programación que incluyen gestión de proyectos, asistentes de aplicación, un depurador interactivo integrado, un diseñador de IU Glade integrado, una ayuda API de devhelp integrada, un perfilador de memoria Valgrind integrado, un perfilador de rendimiento grpof integrado, un generador de clases, un potente editor de código fuente, búsqueda de fuentes y mucho más.

Anjuta Devstudio se ha diseñado para ser simple de operar pero suficientemente potente para cumplir con todos sus necesidades de programación. Muchas características han evolucionado desde los primeros días y se han añadido algunas otras muy atractivas. Los desarrolladores se centran en proporcionar potencia y usabilidad al mismo tiempo sin sobrecargar los sentidos y haciendo que el desarrollo de su software sea placentero. Los desarrolladores siempre estarán ocupados para ofrecerle una de las mejores experiencias con EID, mejorando todas las características y estabilizándolo. Los desarrolladores esperan que pase un buen rato usando Anjuta. De lo contrario, ayúdelos a mejorar Anjuta informando de errores y haciendo sugerencias.

La siguiente captura ilustra alguna de las cosas que encontrará en Anjuta.

### Anjuta en acción

Anjuta en acción

Anjuta tiene un sistema de empotramiento muy flexible y avanzado que le permite disponer todas las vistas de la forma que quiera. Puede arrastrar y soltar las vistas usando las barras de arrastre y reordenar la disposición. Las disposiciones son persistentes para cada proyecto, de tal forma que puede mantener distintas disposiciones especiales en diferentes proyectos. Todas las vistas empotrables son minimizables para evitar el desorden en la ventana principal. Las vistas minimizadas aparecen como iconos en la parte izquierda de la ventana principal. Todas las acciones de los menús son configurables escribiendo en el menú (la forma usual de GNOME) o a través una interfaz de configuración de los atajos de teclado.

Por favor, informe de cualquier problema con Anjuta: esto ayudará a mejorar el software así como ayuda a la comunidad código abierto.

## Familiarizarse con Anjuta

### Menús y atajos de teclado

En la parte superior de la ventana principal de Anjuta está la barra de menú. Puede acceder a casi todas las funcionalidades de Anjuta desde los elementos del menú. Las operaciones se han agrupado de acuerdo con su tipo. Por ejemplo, las operaciones con archivos se han agrupado dentro del menú Archivo.

#### Barra de menú

Barra de menú de Anjuta

#### Menú Archivo

Menú Archivo

Las teclas rápidas, o aceleradores de teclado, están disponibles para muchos elementos de los menús. Todas las teclas rápidas se muestran junto con los elementos del menú correspondientes. A continuación se listan algunas teclas rápidas útiles.

- Página del editor de selección: Ctrl Tab (adelante) y Ctrl Mayús Tab (atrás). También puede seleccionar las páginas pulsando con el botón derecho del ratón en las solapas de notas y seleccionando una solapa del editor (útil cuando no se pueden ver a la vez todas las solapas del editor). Algunas configuraciones del escritorio pueden haber asignado teclas de acceso rápido. En ese caso, deberá reconfigurarlas (no en Anjuta, porque son fijas) si quiere disponer de esas combinaciones de teclas.

- Ayuda contextual: Mayús F1. Sitúe el cursor sobre una palabra (por ejemplo, el nombre de la función) para la que quiere obtener la ayuda de la API y pulse este atajo. La ayuda contextual sólo funciona si tiene Devhelp instalado. Si no tiene instalado Devhelp, el menú de ayuda contextual y la barra de botones estarán inactivas. Puede obtenerlo de la página web de Devhelp. También tendrá que instalar los libros relacionados conDevhelp.

- Autocompletar: Ctrl Intro. Pulse la combinación de teclas con el cursor ubicado al final de una palabra incompleta y se mostrará una lista de palabras que coincidan con la parte restante. Desplace la lista y seleccione la palabra correcta de la lista, si encuentra una.

- Más teclas rápidas: Consulte las teclas rápidas mostradas en la parte derecha de las etiquetas de los elementos del menú. También se pueden cambiar como se explica en el siguiente consejo.

#### Personalizar los atajos de teclado

Puede cambiar las combinaciones de teclas predeterminadas usando Editar Preferencias y seleccionando la solapa Combinaciones de teclas.

### Ventana principal

La ventana principal contiene varias vistas que se pueden reordenar arrastrando sus barras de título. También se pueden minimizar pulsando en los botones de minimizar en la parte izquierda de las barras de título.

1. La Ventana de documentos tendrá un documento activo cada vez (si hay algún archivo abierto). Todos los comandos del archivo se aplican en este documento. Puede cambiar a cualquier página pulsando en su solapa. Puede hacer lo mismo pulsando con el botón derecho del ratón en las solapas de la página y eligiendo el documento del menú emergente que aparecerá. Esto es especialmente útil cuando tiene muchos archivos abiertos pero no todos son visibles en el área de las solapas de la página.

2. La Ventana de proyecto muestra un árbol con los archivos del proyecto si tiene un proyecto abierto. De otra forma, la Ventana de proyecto generalmente está oculta. Pulsar dos veces sobre cualquier elemento en la Ventana de proyecto abrirá ese archivo.

3. La Ventana de archivos muestra un árbol de archivos. Si no hay un proyecto abierto, el árbol de archivos apunta a la raíz del sistema de archivos, pero puede cambiarlo en las preferencias. Si un proyecto está abierto muestra todos los archivos dentro del proyecto. Pulsar dos veces abre un archivo en la aplicación apropiada según esté configurado en las preferencias MIME de GNOME. Pulsar con el botón derecho abre un menú emergente que le proporciona opciones sobre cómo abrir el archivo.

4. La Ventana de símbolos muestra un árbol con los símbolos disponibles en el proyecto generados desde el analizador ctags. Al pulsar dos veces se abre una ventana del editor con el archivo y líneas correspondientes.

   También existe una Barra de búsqueda en la ventana Símbolos en la que puede buscar símbolos.

5. La ventana de mensajes listará todos los mensajes (salidas tanto `stdout` como `stderr`) cuando se ejecute un comando externo. La ventana de mensajes generalmente está oculta, pero aparece tan pronto como se ejecuta un comando externo, ya sea durante la compilación del archivo o proyecto, las sesiones de depuración, las búsquedas o muchas otras operaciones. Anjuta también añade suspropios mensajes cuando es necesario.

   Los colores que se usan para mostrar los mensajes son importantes. Los mensajes mostrados en el color de fondo estándar (generalmente negro) son mensajes normales. Los que se muestran en azul son mensajes importantes, como mensajes de error u otra información. Los mensajes mostrados en rojo están enlazados. Al pulsar dos veces sobre esos mensajes irá a archivo y número de línea particulares especificados en el mensaje.

   Por ejemplo, cuando compila un archivo que contiene errores aparecerán algunos mensajes en rojo mostrando los problemas y dónde ocurren. Al pulsar dos veces sobre dichos mensajes se abrirá el archivo y se resaltará la línea que contiene el error.

6. La Ventana del terminal es una emulación de un terminal donde puede ejecutar comandos igual que en la aplicación Terminal de GNOME.

#### Gestión de sesiones

Todos los ajustes, incluyendo los tamaños y posiciones de las ventanas, se guardan al salir de Anjuta. La gestión de las sesiones aún está bajo desarrollo, así que no debería salir de Anjuta sin haber guardado antes sus documentos. Anjuta mostrará una advertencia si intenta salir con documentos sin guardar abiertos.

## Operaciones con archivos

### Crear un archivo nuevo e insertar texto

#### Crear un archivo nuevo

Para crear un archivo nuevo, elija Archivo Nuevo de la barra de menú o pulse el botón Archivo nuevo en la barra de herramientas. Se abrirá una nueva página en el editor (o una nueva ventana si el documento padre está en una ventana). Este nuevo documento se llamará `newfile#1`, `newfile#2`, `newfile#3` y demás.

##### Guardar archivo

Debería guardar sus documentos nuevos tan pronto como le sea posible para evitar cualquier pérdida de datos en caso de cuelgue.

#### Asistente de archivos

También se puede usar un asistente para crear un archivo nuevo. Para crear un archivo nuevo, elija Archivo Nuevo Archivo de la barra de menú. Esto abrirá el diálogo Archivo nuevo. Seleccione el tipo de archivo. Introduzca el nombre del archivo. El sufijo se añadirá automáticamente. Puede añadir información sobre la licencia (de acuerdo con la licencia a su elección) y una cabecera. En caso de que sea una cabecera C o C++, también puede añadir una plantilla de cabecera. Pulse Aceptar para validar la creación.

##### Nuevo asistente de archivos

El diálogo Abrir archivo

Anjuta ocasionalmente crea nuevos archivos durante algunas operaciones. Por ejemplo, algunas operaciones sobre Subversion, tales como `diff` y `view log` crean archivos nuevos y añaden la salida allí. Estos se pueden guardar en un archivo real igual que los nuevos archivos normales.

#### Insertar macros

Puede usar macros para editar rápidamente secuencias repetitivas de texto.

El complemento de macros debe estar activado.

##### Insertar

Existen dos tipos de macros disponibles: Los macros de Anjuta y los macros de usuario (se muestran como «Mis macros»). Los macros de Anjuta no son modificables por el usuario. Por otra parte, los macros del usuario se pueden definir y modificar por el usuario.

Para insertar una macro, mueva el cursor al lugar deseado. Seleccione Editar Macros Macros.... Aparecerá la ventana de diálogo. Seleccione la macro deseada de la lista. El resultado de la expansión de la macro se mostrará en la ventana así como un resumen en la ventana de diálogo. Elija Insertar. Se insertará el texto de la macro expandida en la posición del cursor.

Otra posibilidad para insertar un macro es seleecionar Editar Macros Insertar macro…, después pulsar el atajo de teclado sobre la macro seleccionado.

###### Macro

El diálogo Macro

##### Definir macros

Desde la ventana de Insertar macro, elija Añadir o seleccione Editar Macros Añadir macro.... Aparecerá la ventana de Añadir/editar. Introduzca el nombre de la macro, elija o defina una categoría e introduzca un atajo. Después edite el texto relativo a la macro. El carácter «|» indicará la posición del cursor después de la inserción de la macro. Elija Aceptar. La macro se añadirá a la lista.

También puede borrar un macro seleccionándolo en la lista (sólo Mis macros) y después eligiendo Eliminar. Ésto sólo funciona para los macros del usuario (Mis macros).

De la misma manera se puede editar un macro y modificarlo seleccionándolo en la lista y eligiendo después Editar.

###### Añadir/Editar macro

Diálogo Añadir/Editar

##### Palabras clave de los macros

Están disponibles las palabras clave para los macros. Pueden integrarse en la definición de la macro. Los nombres de estas palabras clave de los macros comienzan y finalizan con el carácter « @ ».

Las palabras clave de macro disponibles son: @DATE_TIME@, @DATE_YMD@, @DATE_Y@, @USER_NAME@, @FILE_NAME@, @FILE_NAME_UP@, @FILE_NAME_UP_PREFIX@, @EMAIL@, @TABSIZE@, @INDENTSIZE@ y @USETABS@.

###### Palabra clave de la macro

La palabra clave de la macro

### Abrir y guardar archivos

1. Abrir un archivo: para abrir un archivo existente elija Archivo Abrir de la barra de menú, pulse el botón Abrir de la barra de herramientas o pulse Ctrl O. Esto mostrará el diálogo Abrir archivo.

   #### Diálogo Abrir archivo

   El diálogo Abrir archivo Seleccione o introduzca el archivo que quiere abrir, después pulse Abrir. Para abrir más de un archivo a la vez, seleccione múltiples archivos pulsando primero la tecla Ctrl y pulsando sobre los archivos en la lista y pulse Abrir. Si cambia de opinión, pulse Cancelar para cerrar el diálogo sin abrir el archivo.

   #### Diálogo Abrir múltiples archivos

   El diálogo Abrir archivo en el modo de múltiple selección

   Puede activar la opción Mostrar archivos ocultos a través del menú emergente que aparece al pulsar con el botón derecho en el diálogo Abrir archivo. Esta opción hará que los archivos ocultos (archivos que comienzan por «.») sean visibles en la lista de archivos. Pulse de nuevo para ocultarlos. El diálogo de selección de archivo de Anjuta también tiene un filtro para tipos de archivo incluido. Seleccione el filtro de tipo de archivo apropiado en el diálogo y la lista de archivos se limitará a los archivos del tipo seleccionado.

2. Guardar un archivo:. Para guardar un archivo elija Archivo Guardar de la barra de menú, pulse el botón Guardar en la barra de herramientas, o pulse Ctrl S. Esto guardará el archivo. Si el archivo es nuevo aparecerá un diálogo Guardar como. Introduzca un nombre de archivo y pulse Guardar para guardar el archivo nuevo con el nombre proporcionado. Guardar como archivo

   #### Autoguardar archivos

   Si ha habilitado el autoguardado, Anjuta no guardará ningún archivo nuevo. Primero debe guardarlos manualmente. Lo mismo se aplica a la opción Guardar todos: Anjuta no guardará ningún archivo nuevo si no los ha guardado antes manualmente. Debe guardar un archivo manualmente para que el autoguardado o Guardar todos funcionen con ellos.

3. Guardar un archivo con un nombre diferente: Puede guardar un archivo con un nombre nuevo explícitamente. Para hacerlo, elija Archivo Guardar como de la barra de menú. Aparecerá un diálogo Guardar como preguntándole por el nombre de archivo nuevo. Introduzca el nombre y pulse Guardar.

   #### Sobreescribir archivo al guardar

   Cuando use Guardar como sobre un archivo ya existente, el original no se borra. Se deja sin cambiar desde la última vez que se guardó. Si un archivo con el nombre de archivo nuevo ya existe, aparecerá un diálogo de confirmación, para asegurar que quiere sobreescribirlo. Pulsar Sí sobreescribirá el archivo con el archivo que está guardando.

4. Cerrar un archivo: para cerrar un archivo, elija Archivo Cerrar de la barra de menú, o pulse el botón Cerrar de la barra de herramientas. (El archivo también se puede cerrar pulsando sobre la X en la solapa del nombre del archivo.) Esto cerrará el archivo actual. Si el archivo no está guardado o es un archivo nuevo, entonces Anjuta le preguntará si quiere guardar el archivo antes de cerrarlo.

### Editar archivos

Anjuta posee cierto número de características de ayuda para la edición y el trabajo con archivos de código fuente. Las siguientes secciones describen cómo usar algunas de las interesantes características disponibles.

#### Márgenes del editor

Márgenes del editor: los márgenes del editor son las pequeñas áreas en la parte izquierda del editor que sirven para algunos propósitos especiales. Existen tres márgenes de editor disponibles el margen del número de línea, el margen de marcadores y el margen de plegado del código. De forma predeterminada (esto es, cuando inicia Anjuta por primera vez) sólo el margen de plegado del código será visible. El resto se puede hacer visible desde el menú Ver Editor.

##### Márgenes del editor

La barra de herramientas de etiquetas

El Margen de números de línea es el más grande de los tres márgenes (y ligeramente más oscuro que el resto) y muestra los números de línea del documento. El Margen de números de línea puede hacerse visible o invisible conmutando Ver Editor Margen de números de línea. Pulsando con el botón izquierdo sobre este margen seleccionará la línea entera (incluyendo. si está presente, la última línea nueva). Puede establecer las propiedades de la tipografía para el margen de los números de línea en las preferencias.

El Margen de marcadores se puede hacer mostrar u ocultar a través de Ver Editor Margen de marcadores. Este margen muestra iconos gráficos para marcar la línea dada. Los marcadores que se mostrarán en éste margen son los Marcadores (icono rectangular azul), los Puntos de parada (círculo rojo) y los Indicadores de línea (flecha amarilla). Los marcadores se usan para indicar líneas marcadas que se pueden cambiar desde Ir a Marcador Cambiar marcador con el cursor sobre esa línea. Un marcador de puntos de parada se usa en la depuración para marcar la línea con puntos de para de la depuración (consulte la sección de depuración para obtener más detalles). Un marcador de indicador se usa para indicar la posición actual del programa en el depurador.

El Margen de plegado del código es donde el árbol de plegado es visible. Pulsando sobre esos nodos del árbol de plegado plegará o desplegará los bloques de código. Se dibujará un guión bajo debajo de la línea plegada para que sea más obvio que se ha plegado un bloque de código bajo la línea. Para obtener más detalles acerca del plegado de código, consulte la sección Plegado de código debajo.

##### Marcador de márgenes invisibles

Si no se ve el margen del marcador, Anjuta mostrará los marcadores cambiando el color del fondo de la línea. Por ejemplo, si hay un marcador de punto de parada en una línea y el margen del marcador no se ve, esa línea se mostrará en un fondo rojo. De forma similar, para los marcadores y los marcadores indicadores de línea el color de fondo de la línea será azul cielo y amarillo respectivamente. Si no le gustan estos colores (quizá por el contraste entre ellos), active el Margen de marcadores desde Ver Editor Margen de marcadores.

##### El editor marca cuando el margen del marcador es invisible

La barra de herramientas de etiquetas

#### Guías del editor

Se puede hacer que el editor cree cierta información del documento, que de otra manera no sería visible, incluyendo las guías de sangría, espacios en blanco y los caracteres de fin de línea. Se pueden hacer visibles o invisibles conmutando los elementos del menú en Ver Editor. Las guías de sangría son las pequeñas líneas punteadas dibujadas para conectar las llaves coincidentes en el código fuente. Cuando el cursor está encima de uno de esas llaves coincidentes, las guías de sangría punteadas se resaltan para proporcionar una región visual del sangrado.

##### Editor con guías

Editor con guías

#### Resaltado de sintaxis

Anjuta puede resaltar la sintaxis muchos lenguajes diferentes. Esto generalmente se hace automáticamente determinando el tipo del archivo desde la extensión de archivo. Si Anjuta no puede determinar el tipo del archivo, entonces no habrá resaltado de sintaxis. Puede forzar un estilo de resaltado particular seleccionándolo del menú Ver Editor Modo de resaltado.

Anjuta usa un archivo de propiedades llamado `$prefix/share/anjuta/properties/anjuta.properties`, tiene el mismo formato que el archivo de propiedades SciTE pero no usa todas sus propiedades. El estilo de cada elemento para todos los idiomas está definido en un archivo llamado `$prefix/share/anjuta/properties/styles.properties`. Usa algunas propiedades comunes definidas por Anjuta en el archivo `$home/.config/anjuta/scintilla/editor-style.properties`.

#### Plegado de código

Anjuta puede mostrar plegados de código para archivos fuente en lenguajes estructurados por bloques (tales como C, C++, Pascal y Java). Todos los bloques de código en el archivo fuente se pueden plegar o desplegar pulsando en los puntos de plegado en el margen de plegado de la ventana del Editor (generalmente un símbolo +/- o unas flechas arriba/abajo). Estos puntos de plegado aparecen automáticamente para archivos fuente que usan bloques de código.

El plegado de código es especialmente útil al editar archivos fuente grandes que se extienden varios miles de líneas. Una vez que se cierran los pliegues, el documento parece más pequeño, facilitando el examinado y la edición del archivo.

Note que el plegado del código y las guías del editor sólo están disponibles en el editor basado en Scintilla.

#### Autoformatear el código fuente

Anjuta pueda sangrar automáticamente (autoformatear) archivos C o C++ fuente o de cabecera. Ésto proporciona al código un aspecto limpio, aumentando su legibilidad, reduce la probabilidad de errores de sintaxis y, por encima de todo, ahorra tiempo. Para autoindentar el archivo fuente actual, elija Editar Sangría automática en la barra de menú. Cambie el estilo del formateo personalizando las opciones en las preferencias.

### Examinador de símbolos

Puede examinar código C y C++ y archivos de cabecera usando etiquetas en los archivos. Una etiqueta (o símbolo) se refiere al nombre de una entidad, como la definición de una función, estructura o macro. Anjuta analiza código fuente en C y C++ para buscar las etiquetas disponibles.

Anjuta examinará las etiquetas en todos los fuentes y archivos de cabecera de un proyecto abierto. Puede ir a cualquier definición de función, definición de estructura, definición de clase o cualquier otra etiqueta sin tener que abrir manualmente el archivo. Ni siquiera necesita saber en qué archivo se encuentra la etiqueta. El examinador de símbolos lista todos los símbolos disponibles en el proyecto.

#### Examinador de símbolos

Examinador de símbolos

#### Sincronización de etiquetas

No tiene que preocuparse sobre la sincronización y actualización de la base de datos de las etiquetas. Anjuta se encargará de todo. Sólo tiene que decidir a qué etiqueta quiere ir.

### Buscar y reemplazar texto en los archivos

#### Búsqueda

Para buscar un texto o una expresión regular en el archivo actual, elija Editar Buscar Buscar... o pulse Alt F. Esto abrirá el diálogo Buscar.

Use la caja de texto para especificar la cadena para buscar y seleccione si es una cadena normal o una expresión regular (RegExp). También es posible especificar la dirección de la búsqueda, si la búsqueda es sensible a capitalización o no y el ámbito de búsqueda. Pulse Buscar para comenzar la búsqueda.

Si la búsqueda es satisfactoria, Anjuta saltará al texto coincidente o realizará otra acción (dependiendo de la Acción de búsqueda que elija en la solapa Buscar objetivo). Si la búsqueda no es satisfactoria, Anjuta mostrará un mensaje indicando que no se encontró el texto de búsqueda.

Si quiere buscar de nuevo, pulse el botón Buscar en la barra de herramientas principal o pulse Ctrl G. Esto buscará la siguiente coincidencia (Mayús Ctrl G para la coincidencia anterior). Puede incluso cambiar el texto de búsqueda al hacer esto. Introduzca la cadena nueva en la caja de texto Expresión de búsqueda en la barra de herramientas principal.

##### Diálogo de búsqueda de texto

Para parar una búsqueda prolongada, pulse el botón Detener.

#### Especificar el ámbito de búsqueda

En la solapa Buscar objetivo, defina la ubicación de la búsqueda y la acción que realizar en caso de que la búsqueda tenga éxito.

Puede definir el máximo número de acciones que realizar.

##### Diálogo Buscar objetivo

Puede seleccionar qué texto se buscará.

##### Buscar en el objetivo elegido

##### Buscar en archivos

Para buscar un texto en su proyecto, ajuste Buscar en Todos los archivos del proyecto.

Introduzca en Buscar expresión el texto que quiere buscar y especifique las opciones de búsqueda, tales como Coincidir con capitalización o Coincidir con palabras completas. Pulse Buscar para comenzar la búsqueda.

Para buscar texto en un conjunto de archivos, establezca Buscar en para especificar patrones de archivos. Defina las variables de búsqueda. Pulse Buscar para comenzar la búsqueda.

###### Buscar patrones de archivo

#### Especificar la acción de la búsqueda

Puede seleccionar qué acción se realizará en caso de que la búsqueda tenga éxito.

Dependiendo de las selecciones anteriores (Buscar en, Dirección de búsqueda y demás) algunas acciones pueden no estar disponibles.

##### Selección de búsqueda de acción de objetivo

#### Reemplazar

Buscar y reemplazar es similar a la búsqueda simple de texto, excepto que también especifica el texto de reemplazo en la caja de texto Reemplazar con, y si se debe preguntar antes de realizar la acción de reemplazar (Reemplazar la siguiente coincidencia o Reemplazar todas las coincidencias).

##### Reemplazar

Elija Reemplazar para reemplazar la cadena coincidente o Adelante para saltar al siguiente texto coincidente.

#### Ajustes de búsqueda

También puede guardar las opciones de búsqueda.

El elemento resaltado en rojo es el elemento activo. El elemento predeterminado es el ajuste de búsqueda que se carga al lanzar Anjuta.

##### Diálogo de ajustes de búsqueda

### Imprimir un archivo

La vista previa de impresión se puede obtener seleccionando Archivo Vista previa de impresión. Esto renderizará el archivo actual y presentará una vista previa de la impresión. Los códigos fuente que estén resaltados en el editor también se resaltarán de forma similar en la impresión (y en la impresión). Existen opciones adicionales para imprimir los números de línea, ajustar líneas y/o cabeceras en las preferencias de impresión del editor en la solapa Impresión de las preferencias del complemento del editor.

#### Vista preliminar de impresión de un archivo C

Vista previa de impresión

#### Preferencias de impresión

Preferencias de impresión

Cuando esté listo para imprimir y satisfecho con la vista previa, seleccione Archivo Imprimir o Imprimir de la ventana de vista previa de impresión. Esto mostrará el diálogo de impresión actual tal y como se muestra debajo. Seleccione los parámetros de impresión adecuados e imprima el archivo con el botón Imprimir.

Se puede ajustar la distribución horizontal o vertical, el tamaño del papel, la orientación del papel y el tipo de papel. Recuerde ajustarlo debidamente en concordancia con su impresora, de otra manera puede que no se imprima correctamente.

#### Diálogo de impresión

Diálogo de impresión

## Gestión de proyectos

Anjuta tiene un potente complemento de Gestión de proyectos que puede abrir la mayoría de los proyectos basados en automake/autoconf. Puede que falle en algunos proyectos con configuración antigua, pero siempre que el proyecto esté realizado usando automake/autoconf de forma típica, entonces debería funcionar.

Lo interesante de Anjuta es que no almacena ninguna información del proyecto aparte de la que ya está disponible en la estructura del proyecto. Esto es, no hay datos de proyecto separados y mantenidos por Anjuta, y todo el procesamiento de los proyectos se realiza directamente con la propia estructura del proyecto. Esto permite que el proyecto se mantenga o desarrolle fuera de Anjuta sin tener que realizar cambios al formato específico de Anjuta. Ya que técnicamente los proyectos en Anjuta son simplemente proyectos automake, se pueden desarrollar junto con otras plataformas, programas o herramientas sin ningún problema.

### Crear un proyecto nuevo

#### Crear un proyecto nuevo desde una plantilla

El complemento de asistente de proyecto usa un potente motor de procesado de plantillas llamado autogen. Todos los proyectos nuevos se crean desde plantillas escritas con sintaxis autogen. El asistente de proyectos le permite crear proyectos nuevos desde una selección de plantillas de proyectos. La selección incluye proyectos genéricos, planos (sin subdirectorios), GTK+, GNOME, Java, Python y muchos más. Se pueden descargar e instalar plantillas nuevas de forma sencilla ya que simplemente son una colección de archivos de texto.

Para crear un proyecto nuevo, elija el elemento del menú Archivo Nuevo Proyecto... para iniciar el asistente. Lea la primera página cuidadosamente. Pulse en Siguiente para continuar.

En la segunda página seleccione el tipo de aplicación que desea crear. Pulse Siguiente para continuar.

Introduzca todos los detalles necesarios para su proyecto en las siguientes páginas. Puede cambiar estos ajustes posteriormente pero no es recomendable no prestarlos atención para mantener mejor la integridad del proyecto. En muchas de las cajas de entrada que seguirán (excepto la caja de Autor) no se permiten los espacios en blanco o cualquier carácter no alfanumérico, excepto el guión bajo (_) y el guión (-).

También puede especificar si su proyecto tendrá soporte de internacionalización usando gettext (para obtener más detalles lea la página de información de gettext). Esto le dará a su proyecto soporte multi-idioma para diferentes idiomas regionales tales como el español, el inglés, el francés, etc. El resto de las opciones son para ajustar si la nota de derechos de autor de GNU debe aparecer en los comentarios en la parte superior de cada archivo, y permitir la información de menú del escritorio GNOME si es necesario. El soporte de bibliotecas compartidas permite añadir módulos de bibliotecas compartidas en el proyecto posteriormente, Si está pensando tener bibliotecas en su proyecto, sería buena idea activarlo. Dependiendo del tipo de proyecto que se esté creando, se podría pedir otra información.

El paso final es comprobar la información que acaba de proporcionar. Pulse Terminar para comenzar a generar el proyecto.

Una vez que se ha generado el proyecto, puede probarlo construyéndolo y ejecutándolo.

#### Importar proyectos

La característica de importación de proyectos se usa para importar un proyecto ya existente y convertirlo en un proyecto Anjuta. Active el asistente de importación de proyectos desde Archivo Nuevo Proyecto desde fuentes existentes y siga las instrucciones dictadas por el asistente. Una vez que el proyecto esté importado, se podrá abrir en Anjuta como cualquier otro proyecto de Anjuta.

La característica de importación de proyectos sólo funciona para proyectos existentes que usenautoconf/automake y para un número muy limitado de archivos planos Makefile.

### Cargar y guardar proyectos

#### Cargar proyectos

Para abrir un proyecto elija el elemento del menú Archivo Abrir.... Seleccione el archivo de proyecto (`*.anjuta`) en el diálogo y pulse Aceptar.

Si el proyecto se ha abierto recientemente, entonces lo encontrará listado en el menú Archivo Recientes. Elija el archivo de proyecto de la lista y se abrirá el proyecto.

Tan pronto como se abra el proyecto, Anjuta entrará en el Modo proyecto. Hay tres paneles en la ventana de proyecto. La primera es el panel del proyecto y lista los archivos de proyecto organizados por tipos de archivo. La segunda es el examinador de símbolos, que ya se ha discutido en la sección Examinador de símbolos. El tercer panel es la vista de archivo del proyecto y es más o menos similar a un gestor de archivos en miniatura. En la vista de archivo todos los archivos presentes en el árbol de proyecto son visibles. Al pulsar con el botón derecho del ratón sobre esos archivos aparecerá un menú contextual con las operaciones sobre archivos.

Si el proyecto es un árbol CVS, entonces también se listarán los números de revisión de archivo correspondientes a la derecha de los nombres de archivo en el panel de vista de archivo.

#### Guardar proyectos

El proyecto se guarda automáticamente al cerrar porque todos los cambios se realizan directamente en la estructura del proyecto.

### Estructura del proyecto

Aquí está la Ventana de proyecto con su menú contextual (accesible pulsando con el botón derecho del ratón).

#### Ventana de proyecto

La ventana de proyecto

La Ventana de proyecto lista el proyecto en una jerarquía estándar de automake organizada en grupos de objetivos. Los grupos corresponden con los directorios de su proyecto y los objetivos corresponden con objetivos automake normales (no confundir con objetivos de make). La Ventana de proyecto tiene dos partes; una parte (la inferior) muestra la jerarquía completa del proyecto y la otra parte (la superior) lista directamente objetivos importantes. Los objetivos importantes los constituyen los archivos ejecutables y las bibliotecas objetivo; haciéndolos muy accesibles desde la vista. Esto es particularmente útil en proyectos grandes donde la jerarquía puede ser muy profunda y difícil de navegar sólo desde el árbol. Los objetivos están compuestos de archivos de fuentes.

- Los grupos se usan para organizar lógicamente los objetivos. Un proyecto puede contener cualquier número de grupos. Cada grupo puede tener tanto subgrupos como objetivos. En proyectos automake, los grupos son sólo subdirectorios en el proyecto. El nivel superior del grupo se llama «raíz» y siempre es «/».

- Los objetivos son los objetivos de construcción en el proyecto, tales como los programas (binarios ejecutables), scripts, bibliotecas, datos misceláneos, etc. No todos los tipos de objetivos se construyen desde los fuentes, pero existen para organizar las fuentes y por ello puede que no existan físicamente (ej. un objetivo de datos misceláneos). Los objetivos existen bajo grupos. Consulte Añadir objetivos para ver una lista completa de los tipos de objetivos disponibles.

- Los Archivos fuente son los archivos usados para construir los objetivos o sólo son parte de ellos. Sólo existen bajo los objetivos. Muchos tipos de objetivos esperan cierto tipo de archivos fuente (ej. tipos de objetivo Programas y Bibliotecas), pero algunos pueden aceptar cualquier archivo (ej. los objetivos de Datos misceláneos).

Cada uno de los grupos de proyecto y objetivos es configurable de una forma automake estándar. Puede ajustar las opciones del compilador y del enlazador directamente para cada objetivo, o ajustar variables de configure. Los grupos permiten establecer destinos de instalación para sus objetivos.

Al igual que un gestor de archivos, la vista del gestor de proyectos también tiene acciones convenientes (accesibles desde el menú contextual) para los archivos de fuentes y objetivos.

Muchas herramientas de la línea de comandos están disponibles para mantener y gestionar un proyecto y cada herramienta tiene sus reglas y capacidades específicas. Anjuta intenta automatizar la mayoría de las operaciones comunes usando complementos. No obstante, puede que ocasionalmente deba realizar algunas de ellas manualmente.

Puede usar otras herramientas o editar los archivos de proyecto a mano simultáneamente. No importa si el proyecto está cargado en Anjuta o no, Anjuta se actualizará con cualquier cambio externo que se realice sobre el proyecto.

### Grupos y objetivos

#### Añadir grupos

Para añadir un grupo nuevo (que es un directorio en proyectos basados en automake):

- Seleccione Proyecto Añadir grupo y aparecerá un diálogo para añadir un grupo nuevo.

- Seleccione el grupo bajo el cuál quiere añadir el grupo nuevo.

- Seleccione el nombre del nuevo grupo y pulse Añadir.

Con proyectos en automake, se creará un directorio nuevo con el nombre proporcionado bajo el directorio padre del grupo.

También puede añadir un grupo nuevo directamente desde la ventana de Proyecto. Pulse con el botón derecho del ratón en el grupo bajo el cual quiere añadir el grupo nuevo, después elija Añadir grupo del menú contextual.

#### Quitar grupos

Para eliminar un grupo:

- Pulse con el botón derecho del ratón en el grupo en la vista del Gestor de proyectos.

- Seleccione Eliminar del menú contextual.

También se eliminarán del proyecto el objetivo y los fuentes asociados con el grupo. (Aunque no se borran del sistema de archivos. Aún podrá añadirlos posteriormente.)

#### Añadir objetivos

Para añadir un objetivo nuevo:

- Seleccione Proyecto Añadir objetivo y aparecerá un diálogo para añadir un objetivo nuevo.

- Seleccione el grupo bajo el cual quiere añadir el objetivo.

- Seleccione el tipo de objetivo.

- Introduzca un nombre para el objetivo nuevo y pulse Añadir.

También puede añadir un objetivo nuevo directamente desde la ventana de Proyecto. Pulse con el botón derecho del ratón en el grupo bajo el cual quiere añadir el objetivo, después elija Añadir objetivo del menú contextual.

El nombre del objetivo generalmente requiere algunos prefijos y sufijos estándar, dependiendo del tipo de objetivo. Anjuta le advertirá si el nombre no es válido y puede proporcionarle un ejemplo de nombre.

Existen varios tipos de objetivos para un proyecto automake. Éstos son:

- El tipo de objetivo Programa es para binarios ejecutables. Seleccione esto si quiere añadir un ejecutable al proyecto. De forma predeterminada todos los objetivos programa se instalarán en el directorio estándar para los ejecutables, ej. /usr/bin o /üsr/local/bin. Puede evitarlo especificando un directorio de instalación diferente en las propiedades del grupo.

- El tipo de objetivo Biblioteca compartida es para bibliotecas dinámicas o compartidas. Seleccione esto si está añadiendo una biblioteca compartida al proyecto. De forma predeterminada todas las bibliotecas compartidas se instalan en el directorio estándar para las bibliotecas compartidas, ej. /usr/lib o /usr/local/lib. Puede evitarlo especificando un directorio de instalación diferente en las propiedades del grupo.

- El tipo de objetivo Biblioteca estática es para bibliotecas estáticas. Seleccione esto si está añadiendo una biblioteca estática al proyecto. De forma predeterminada todas las bibliotecas estáticas se instalan en el directorio estándar para bibliotecas estáticas, ej. /usr/lib o /usr/lib/local. Puede evitarlo especificando un directorio de instalación diferente en las propiedades del grupo.

- El tipo de objetivo Módulo de Java es para el módulo de Java. Seleccione este tipo si está agrupando los fuentes de Java en un módulo. Debe proporcionar un directorio de instalación para este objetivo donde se instalarán los archivos .class. Se puede establecer en las propiedades de grupo del grupo al que pertenece este objetivo.

  Sólo puede haber un módulo de Java en un grupo. Esta es una restricción de automake. Para obtener más detalles, lea las páginas de información de automake.

- El tipo de objetivo Módulo de Python es para el módulo de Python. Seleccione esto si está agrupando los fuentes de Python en un módulo. Debe proporcionar un directorio de instalación para este objetivo donde se instalarán los archivos de fuentes. Se puede establecer en las propiedades de grupo del grupo al que pertenece este objetivo.

- El objetivo Scripts es para agrupar scripts. Se instalarán en el directorio estándar de los ejecutables.

- El tipo de objetivo Datos misceláneos es para agrupar archivos simples en el proyecto. Se debe especificar un directorio de instalación en las propiedades del grupo.

- El tipo de objetivo Archivos de cabecera es para agrupar los archivos de cabecera C/C++ que deben ser instalados en el sistema (por ejemplo como parte del API de una biblioteca). Para los archivos de cabeceras que no necesitan instalarse, hágalos parte del objetivo Programa junto con los fuentes. Se instalarán en el directorio «inlcude» estándar a no ser que la ruta de instalación esté especificada en sus propiedades de grupo.

- Los tipos de objetivo Documentación de man e Información de documentación son para agrupar la documentación de man y de la información respectivamente. De forma predeterminada se instalarán en los directorios estándar de instalación.

#### Eliminar objetivos

Para eliminar un objetivo:

- Pulse con el botón derecho del ratón en el objetivo en la vista del Gestor de proyectos.

- Seleccione Eliminar del menú contextual.

También se eliminarán del proyecto los fuentes asociados con los objetivos (aunque no se borran del sistema de archivos).

### Añadir y quitar archivos

#### Añadir archivos de fuentes

Seleccione el elemento del menú Proyecto Añadir archivo fuente. En el diálogo seleccione el objetivo al que se debería añadir el archivo y el archivo propiamente dicho. Puede añadir varios archivos de una vez. Para ello, seleccione múltiples archivos en el diálogo de selección usando la tecla Mayús o Ctrl. Después pulse el botón Añadir para añadir los archivos al proyecto.

De forma predeterminada el editor de archivos estará preseleccionado para la adición en el diálogo. Otra forma conveniente de añadir un archivo es seleccionarlo en el Gestor de archivos y elegir Añadir al proyecto desde el menú contextual.

Si el archivo que ha seleccionado ya se ha añadido al proyecto, entonces Anjuta no lo añadirá de nuevo. También le advertirá que el archivo ya se ha añadido.

Si el archivo que ha elegido no está en el directorio del proyecto, se le pedirá una confirmación para copiar el archivo en el directorio del objetivo. Anjuta no puede añadir archivos que están fuera del directorio del objetivo.

#### Eliminar archivos de fuentes

Para eliminar un archivo del proyecto seleccione el archivo que quiere eliminar desde la Ventana de proyecto y elija Eliminar del menú contextual.

Aparecerá un diálogo de confirmación y se eliminará el archivo del proyecto.

##### El archivo no se borra.

El archivo no se borra del sistema de archivos. Sigue existiendo y puede añadirlo de nuevo posteriormente. El archivo sólo se elimina de la lista del proyecto y no se tendrá en cuenta para ninguna de las operaciones del proyecto tales como la compilación, construcción o distribución.

### Configurar un proyecto

La configuración de un proyecto incluye ajustar las opciones de compilación correctas para los objetivos, grupos y para el proyecto en si. Puede establecer estas opciones en sus respectivos diálogos de propiedades.

Puede usar libremente las variables de autoconf y automake que se ajustan automáticamente para el proyecto durante la configuración. Aparte de las variables ajustadas automáticamente, también puede definir sus propias variables en las Propiedades del proyecto y usarlas en las propiedades. Esto hará más sencilla la actualización de las opciones posteriormente, especialmente cuando la variable se usa en diversos objetivos.

Algunas de las variables más comunes están listadas aquí. Para ver la lista completa consulte documentación de información de automake.

- $(prefix): El prefijo de instalación. El proyecto se instala en varios subdirectorios bajo este prefijo. De forma predeterminada es /usr/local.

- ($bindir): El directorio de instalación de los binarios ejecutables. Todos sus objetivos ejecutables y los scripts se instarán en este directorio. De forma predeterminada es $(prefix)/bin.

- $(libdir): El directorio de instalación para las bibliotecas. Todas las bibliotecas de sus objetivos (las compartidas y las estáticas) se instalarán en este directorio o un subdirectorio bajo él. De forma predeterminada es $(prefix)/lib.

- $(module_CFLAGS) y $(module_LIBS): Estas opciones las establece configure para los paquetes de los que su proyecto depende. Los paquetes que usa el proyecto se establecen en las Propiedades del proyecto. «module» es grupo de paquetes que proporciona en las propiedades del proyecto.

#### Propiedades del proyecto

El diálogo de propiedades del proyecto sólo se puede obtener eligiendo Proyecto Propiedades de la barra de menú de nivel superior. Puede:

- Establezca el nombre del proyecto, la versión y el URL en la página General. Las variables de configure también se pueden usar en estos campos. El URL es la página donde se han de enviar los informes de error del proyecto.

- Añada y elimine dependencias para su proyecto en la página Paquetes. Consulte más abajo para obtener más detalles.

- Cree más variables de configuración en la página Variables para usarlas en las propiedades de grupo y objetivo.

Las dependencias son paquetes externos que usa el proyecto y que son necesarios para construirlo. Sólo los paquetes instalados usando pkg-config se pueden añadir desde esta interfaz. Para otros, se puede editar manualmente el archivo configure.ac para los demás.

##### Diálogo Propiedades del proyecto

Diálogo Propiedades del proyecto

Las dependencias de paquetes externos se agrupan en módulos, de tal forma que sus opciones de construcción combinadas se pueden añadir convenientemente a diferentes objetivos. Los módulos simplemente son nombres arbitrarios dados a los grupos de paquetes y se pueden llamar de cualquier forma (sólo se permiten caracteres alfanuméricos y guión bajo «_» en el nombre del módulo). Generalmente siguen el nombre de los objetivos en los que se usarán. Consecuentemente, para proyectos pequeños con un solo objetivo solamente un módulo es suficiente para mantener todas las dependencias.

Cada paquete exporta un conjunto de opciones de compilación y bibliotecas. Se añaden todas juntas para todos los paquetes bajo un módulo y se definen las variables de configuración $(module_CFLAGS) y $(module_LIBS). Éstas variables se pueden usar en las Propiedades del grupo y las Propiedades del objetivo.

Para añadir una dependencia de un paquete:

- Seleccione Proyecto Propiedades para mostrar el diálogo de propiedades del proyecto.

- Seleccione la solapa Paquetes para mostrar la página de los paquetes.

- Seleccione el módulo para añadir al paquete. Si no hay ningún módulo creado o no hay un módulo apropiado, cree uno pulsando Añadir módulo. Proporcione un nombre al módulo, preferiblemente en LETRAS MAYÚSCULAS (se distinguen mayúsculas y minúsculas) para que coincida con el resto de las variables de configure (use caracteres alfanuméricos y el guión bajo «_» exclusivamente) y pulse Intro para crearlo.

- Pulse Añadir paquete para mostrar el diálogo de selección de paquetes.

- Seleccione el paquete para añadir y pulse Añadir.

- Pulse Cerrar para cerrar el diálogo de propiedades.

#### Propiedades del grupo

Para establecer propiedades del grupo, pulse dos veces en el grupo en la ventana Proyecto para abrir el diálogo Propiedades de grupo. (Alternativamente puede pulsar con el botón derecho del ratón sobre el grupo y seleccionar Propiedades del menú contextual).

##### Diálogo Propiedades del grupo

Diálogo Propiedades del grupo

Las propiedades establecidas para un grupo se aplican a todos los objetivos bajo él. De tal forma que cualquier opción del compilador o enlazador aquí establecidas serán automáticamente parte de todos los objetivos en él (además de las propiedades individuales del objetivo). Las siguientes opciones están disponibles en las Propiedades de grupo.

- Inclusiones: establezca sus directorios de inclusión para sus objetivos C y C++. Aquí debe proporcionar las opciones completas de inclusión del compilador, ej. -I/usr/include/blah. Las rutas de inclusión se usarán para buscar los archivos de inclusión en sus archivos de fuentes. Aquí también puede añadir otras opciones del compilador, pero es preferible establecerlas en sus respectivas propiedades de opciones del compilador (ver más abajo).

- Ajustes del compilador: establezca aquí las opciones específicas del compilador. Existen campos diferentes para las distintas categorías del compilador. Las opciones que se pueden establecer dependen del compilador usado actualmente. El compilador predeterminado para C/C++ es gcc/g++ (el compilador GNU de C). Para obtener más detalles consulte la información de documentación de gcc.

- Directorios de instalación: los objetivos del grupo que requieren directorios de instalación obtendrán un campo para introducir el directorio de instalación. De tal forma que sus directorios de instalación son relativos a una de las muchas variables de directorio de automake, tales como $(prefix), $(bindir), $(libdir), $(datadir), etc.

#### Propiedades del destino

Cualquier propiedad establecida para un objetivo se aplica sólo sobre ese objetivo. Un objetivo también hereda las propiedades del grupo que lo contiene.

Para establecer las propiedades del objetivo, pulse dos veces el objetivo en la Ventana de proyecto para abrir el diálogo Propiedades del objetivo. (También puede acceder al menú pulsando con el botón secundario del ratón y seleccionando Propiedades del menú contextual).

##### Diálogo Propiedades del objetivo

Diálogo Propiedades del objetivo

Aquí puede añadir los módulos que ha añadido en las Propiedades del proyecto a un objetivo específico. Para activar el módulo simplemente conmute la caja de verificación junto al nombre del módulo. Esto añadirá automáticamente opciones de inclusión y enlazado sobre ese objetivo y le permitirá usar el módulo en ese objetivo.

##### Opciones avanzadas del objetivo

Los siguientes campos están disponibles en la configuración avanzada del objetivo, a la que se llega pulsando el botón Avanzadas... en el diálogo de propiedades del objetivo.

###### Diálogo Propiedades del objetivo

Diálogo Propiedades del objetivo

- Ajustes del compilador: establezca aquí las opciones específicas del compilador. Existen campos diferentes para las distintas categorías del compilador. Las opciones que se pueden establecer dependen del compilador usado actualmente. El compilador predeterminado para C/C++ es gcc/g++ (el compilador GNU de C). Para obtener más detalles consulte la información de documentación de gcc.

- Opciones del enlazador: Establezca las opciones del enlazador que se usarán al enlazar el objetivo. Se aplica sólo a objetivos tipo programa y biblioteca. Consulte documentación de ld para ver las opciones disponibles del enlazador.

- Bibliotecas: Establece las bibliotecas de las que depende el objetivo.

## Construir

Anjuta gestiona proyectos de autotools. Es capaz de gestionar otros tipos de proyectos como los escritos para Makefile pero la interfaz actual de construcción está pensada para proyectos de autotools. Es útil tener cierto conocimiento acerca de ellos para entender mejor cómo se construye un proyecto.

Un proyecto de autotools se construye en tres pasos:

1. Generar

2. Configurar

3. Construir

Construir es el paso principal en el que se generan todos los archivos objeto del código fuente. Se puede dividir en dos subfases: Compilar y Enlazar. En la fase Compilar se genera cada archivo objeto de su correspondiente archivo fuente. Por ejemplo, un archivo fuente `hola.c` generará `hola.o` después de compilarlo. Generalmente no tiene que preocuparse por estos archivos; simplemente piense en ellos como archivos intermedios. En la fase Enlazar se enlazan todos los archivos objetos y bibliotecas juntos para crear el ejecutable final. Algunos lenguajes de programación no necesitan la fase Compilar y Enlazar. Además, el paso Construir se usa para generar otros archivos, como la documentación que no necesita tales fases.

Configurar es el paso en el que se ajusta el árbol de los fuentes a su sistema. Los proyectos de autotools se pueden construir en una gran variedad de sistemas usando diferentes compiladores y usando diferentes funciones de bibliotecas. Este paso ejecuta el script `configure` que comprobará varias características de su sistema y creará algunos de los archivos necesarios para realizar la construcción (tales como `Makefile` y `config.h`). Este paso también se usa para seleccionar opciones de construcción, por ejemplo, desactivar la optimización para hacer más fácil la depuración o desactivar alguna parte experimental de un programa.

Generar es el paso en el que se crea el script `configure` y otros archivos relacionados. El script `configure` se usa para ejecutar varias comprobaciones del sistema sobre muchos elementos. Es muy difícil escribirlo a mano. Es más, el conjunto de autotools tiene unas reglas para organizar un proyecto, como algunos archivos obligatorios: `NEWS` o `COPYING`. Incluye varias herramientas para crear todos los archivos necesarios desde archivos más simples escritos por el desarrollador tales como `configure.in` (o `configure.ac`) y `Makefile.am`. Todas estas herramientas se ejecutan comúnmente en el directorio del proyecto desde el script `autogen.sh`. Este paso es útil sólo para un desarrollador (alguien que modifique los archivos fuente), ya que el script `configure` sólo depende de los archivos fuente, se distribuye con el paquete del proyecto. Note que los archivos makefile creados por configure incluyen algunas reglas para regenerar el proyecto automáticamente cuando sea necesario, de tal forma que no es necesario ejecutarlo directamente muy a menudo.

Para obtener más detalles acerca de cómo funcionan éstas herramientas, lea las páginas de información acerca de automake y autoconf.

### Generar y configurar

#### Configurar un proyecto

Debe ejecutar este script antes de poder construir su proyecto. Esto generalmente se ejecuta una sola vez en el comienzo del primer proceso de construcción; por ejemplo, justo después de extraer el tarball de los fuentes del proyecto de una distribución. Después de eso, la configuración se gestiona automáticamente por los procesos de construcción subsecuentes. Si ha usado el Asistente de configuración para crear la aplicación, entonces no necesitará ejecutarlo de forma separada: el asistente lo ejecutará como parte del proceso de generación del proyecto.

No existe ningún requerimiento para ejecutarlo una sola vez. Se puede ejecutar en cualquier momento, generalmente cuando se necesitan cambiar las opciones de configuración. Algo que notar es que si el archivo `config.h` del directorio del nivel superior se cambia, ejecutar `configure` de nuevo no lo sobreescribirá.

Tanto los pasos de generación como de configuración se lanzan con un sólo elemento del menú: Construir Configurar el proyecto.... Este elemento del menú muestra un diálogo donde puede escoger:

- Indica si quiere ejecutar el paso de generación o no

  Debe ejecutarse una vez al comienzo del proyecto, después se gestiona automáticamente por el proceso de construcción. Puede forzar su ejecución seleccionando la casilla de verificación Regenerar el proyecto en caso de que encuentre alguna dificultad al construir los proyectos (ej. si obtiene errores de construcción después de modificar muchos archivos de construcción).

- El nombre de configuración

  Este nombre se usa para referirse a cada configuración. Algunas configuraciones (Predeterminada, Depuración, Optimizada) ya están definidas de forma predeterminada. Una configuración incluye un directorio de construcción y algunas opciones de configuración.

- El directorio de construcción

  Éste es el nombre del directorio de construcción. En la configuración predeterminada es el mismo directorio que el directorio de fuentes pero autotools soporta la construcción en un directorio distinto.

  Cada configuración debe tener un directorio de construcción diferente y si una configuración usa el directorio fuente, entonces no puede tener otras configuraciones al mismo tiempo. Debe ejecutar Construir Quitar configuración en las otras configuraciones que usen el directorio fuente antes de añadir una configuración nueva.

- Opciones de configuración

  Estas opciones se pasan al script `configure`. Algunas son prefijos estándar, tales como --prefix y CFLAGS; otras dependen del proyecto. Puede obtener una lista completa de las opciones de configuración permitidas ejecutando el script `configure` con el argumento --help.

#### Seleccionar una configuración

Si creó diferentes configuraciones puede seleccionar cuál es la activa seleccionándolo en Construir Seleccionar configuración.

#### Limpiar la configuración

Para limpiar un proyecto y dejarlo en un estado que requiera volver al paso de configuración debe elegir Construir Eliminar configuración. Ejecutará `make distclean` y borra más archivos que Limpiar proyecto. En otras palabras, deja el proyecto como si se acabase de extraer del paquete tarball de la distribución. Note que no quita el directorio de configuración en sí, pero puede hacerlo usted mismo.

### Compilar y construir

#### Compilar un archivo

En un proyecto los archivos fuente individuales se pueden compilar separadamente en objetos (archivos `*.o`). Aunque no debe preocuparse por esos archivos objeto, a veces es útil compilar un archivo primero (por ejemplo, para asegurarse de que no hay errores de sintaxis). Compilar un proyecto entero puede llevar mucho tiempo, especialmente en el caso de aplicaciones grandes y complejas. Por ello probablemente pasará por series ciclos de edición-compilación mientras esté desarrollando el proyecto.

Para compilar un archivo elija el elemento del menú Construcción Compilar o pulse F11. Esto compilará el archivo activo.

#### Construir un ejecutable

Anjuta no tiene línea de comandos separada, simplemente porque no es necesario. El proceso de construcción compilará todos los archivos fuente y los enlazará junto a las bibliotecas. El comando de construcción no recompilará aquellos archivos que ya están actualizados (esto es la comprobación de dependencias). Si ya ha compilado todos los archivos individualmente, entonces la única tarea que el proceso de construcción realizará es el enlazado. Si ya ha construido el proyecto y no se ha modificado ningún archivo dependiente, también se evitará el proceso de enlazado.

¿Entonces cómo influye la comprobación de las dependencias en el desarrollo del proyecto? Si ha modificado un archivo, entonces todos los archivos de fuentes que dependen del archivo modificado se recompilan. Durante el proceso de construcción se comprueban todos los archivos (no sólo los archivos objeto y el ejecutable) para estas dependencias. Si se encuentra que un archivo en particular depende de algún otro archivo que se ha modificado, entonces ese archivo se regenerará.

Ya que ahora ha entendido el valor de las comprobaciones de las dependencias, ¿puede imaginarse cómo sería su vida (de programador) si no estuviese allí? Si aún no puede responder, entonces lo descubrirá cuando comience a desarrollar proyectos.

Construir Construir construirá todos los archivos en el directorio del archivo activo.

Construir Construir proyecto construirá el proyecto entero; se construyen todos los directorios recursivamente.

### Otras operaciones

#### Crear un paquete de distribución

Para construir la distribución tarball del proyecto, elija Construir Construir tarball. Esto creará el tarball (`*.tar.gz`) y lo pondrá en el nivel superior del directorio del proyecto. Copie el archivo a un lugar seguro para su distribución.

#### Instalar un proyecto

Eligiendo el elemento del menú Construir Instalar instalará la aplicación generada en su sistema.

##### Instalación amplia en el sistema

Debe haber iniciado sesión como «root» para realizar una instalación amplia en el sistema. También note que para que una aplicación de GNOME use los pixmaps en el proyecto, debe estar instalado como una aplicación amplia en el sistema. De otra forma, cuando la aplicación se ejecute en su proyecto, habrá muchos errores «pixmap no encontrado». Puede configurar Anjuta para que use `sudo` o `su` antes de instalar el proyecto, en las preferencias de construcción.

#### Limpiar

Borra todos los archivos generados por el proceso, incluyendo los archivos objeto (archivos `*.o`) y los ejecutables. Se puede aplicar sobre un directorio o sobre el proyecto entero.

Elija el elemento del menú Construir Limpiar proyecto para limpiar todos los archivos del proyecto.

Elija el elemento del menú Construir Limpiar para limpiar sólo el directorio del actual archivo activo.

## Depurar

Depurar es de humanos, reparar es divino...

Bien, la parte humana es de lo que trata esta sección. ¡La parte divina es cosa suya!

Cuando un programa no se comporta de la forma que se supone que debería, se dice que el programa tiene errores o bugs. Esto no se refiere a errores de compilación —esos son simplemente errores y son relativamente fáciles de eliminar, porque el compilador proporciona información acerca de dónde están. Por otra parte, los «bugs» son errores que suceden durante la ejecución del programa y que pueden ser muy difíciles de detectar.

Cualquier programa que piense que no tiene errores realmente nunca está libre de ellos. Todo lo que se puede hacer es tratar de reducir los errores al mínimo. El proceso de eliminar errores se conoce como depuración. Anjuta proporciona un entorno de depuración muy potente y amigable (realmente es un envoltorio IGU sobre gdb, una herramienta de la línea de comandos para depurar que es estándar en GNU/Linux).

El depurador sigue y traza la ejecución de un programa y proporciona varias vistas de información necesarias para estudiar la ejecución del programa.

### Iniciar y parar

El depurador siempre se inicia con un programa cargado. Hay dos formas de hacerlo:

- Ejecutar un ejecutable

- Acoplar un proceso

Prácticamente todas las características de Anjuta las proporcionan los complementos. Si no ve los menús descritos aquí es probable que el complemento del depurador no esté cargado. Vaya a Editar Preferencias General Complementos instalados y compruebe que el complemento del depurador está instalado. Es un complemento activable por el usuario, de tal forma que se carga o descarga bajo petición.

#### Ejecutar un ejecutable

Ejecutar un programa con o sin el depurador se hace desde el mismo menú, seleccione Ejecutar Ejecutar programa para ejecutar un programa sin el depurador y Ejecutar Depurar programa para ejecutarlo con el depurador.

Para hacer un mejor uso del depurador, se recomienda encarecidamente que construya el programa con la información de depuración (-g para gcc) y sin optimización (-O0 para gcc). Esto se puede realizar seleccionando la configuración de depuración antes de construir el programa por primera vez.

Puede seleccionar qué programa ejecutar y su entorno usando Ejecutar Parámetros del programa…. Puede escoger:

- El programa que quiere depurar

  El menú desplegable de la caja de combinación desplegable del objetivo ya está rellenada con todos los ejecutables del proyecto actual. Pero puede seleccionar otro ejecutable que no forme parte del proyecto. El depurador acepta ejecutables de libtool, es decir scripts generados por libtool, que envuelven al ejecutable real.

- Los parámetros de la línea de comandos

- El directorio de trabajo

- Variables de entorno

  Las variables de entorno en gris claro son las variables de entorno actuales. Aquí puede añadir, modificar o quitar las variables de entorno.

  Para depurar Anjuta usando Anjuta puede usar un tema diferente para reconocer inmediatamente la instancia en depuración añadiendo, por ejemplo puede añadir «GTK2_RC_FILES=/usr/share/themes/Crux/gtk-2.0/gtkrc».

- Indica si el programa se debe ejecutar en un terminal o no. De ser así, se usa el complemento del terminal de Anjuta.

#### Acoplar a un proceso

También es posible acoplar a un proceso en ejecución y depurarlo eligiendo el elemento del menú Ejecutar Depurar proceso…. Aparecerá una lista de todos los procesos en ejecución del sistema.

##### Diálogo Acoplar al proceso

Diálogo Acoplar al proceso

Seleccione el proceso que acoplar y pulse Aceptar para iniciar el depurador, acóplelo al proceso seleccionado y párelo.

Actualmente no es posible cargar la información de los símbolos para los procesos acoplados. Deben incluirse en el proceso.

#### Parar el depurador

Elija el elemento del menú Ejecutar Detener el depurador para parar el depurador. Esta opción matará el programa que se está depurando. Si el depurador se ha acoplado a un proceso en ejecución, simplemente se desacoplará sin matarlo. Obtendrá una caja de confirmación si un programa está actualmente acoplado o ejecutándose.

#### Añadir directorios fuente

Elija el elemento del menú Depurar Añadir rutas de fuentes… para mostrar una caja de diálogo que le permitirá añadir y quitar directorios de fuentes.

La mayoría de los ejecutables incluyen rutas de archivo completas, de tal forma que definir los directorios donde están los archivos de fuentes no es útil. Pero algunos ejecutables incluyen sólo los nombres de archivo sin rutas, en este caso el depurador buscará los archivos de fuentes en todos esos directorios. El orden de los directorios puede ser importante si varios archivos tienen el mismo nombre, así que puede cambiarlo usando los botones Arriba y Abajo. La lista de directorios se envía al depurador al iniciarse. Después de cambiarla, deberá reiniciar el depurador para que los cambios se tengan en cuenta.

### Ejecución

Se puede controlar al detalle la ejecución de un programa en el depurador. El programa se puede ejecutar paso a paso o permitir que continúe hasta que encuentre un punto de parada. Esta ejecución es esencial para seguir el comportamiento del programa. Como la edición de vídeo, el programa se puede ejecutar a cámara lenta con la capacidad de ir hacia atrás, pausar, parar y demás. Aunque aún no se puede ir hacia atrás.

Los métodos que se pueden ejecutar en el programa mientras se está depurando se describen en las siguientes secciones. Esos comandos están disponibles sólo cuando el programa ya se ha iniciado.

#### Paso a paso (avanzar)

Elija el elemento del menú Depurar Avanzar o pulse el icono Avanzar en la barra de herramientas del depurador para avanzar un paso en un programa.

La ejecución paso a paso ejecuta sólo una sentencia del programa (desde el lugar donde se ha parado) y después devuelve el control. Si la sentencia que se está ejecutando contiene una o más funciones, el depurador trata de entrar en las funciones y ejecutarlas paso a paso (en la secuencia en la que las funciones se ejecutan). Una vez que la sentencia se ha ejecutado y se ha devuelto el control, es posible estudiar varios parámetros del programa.

Si la ventana de desensamblado tiene el foco cuando se selecciona este comando, ejecuta sólo una instrucción del ensamblador.

#### Paso a paso (avanzar sobre)

Elija el elemento del menú Depurar Avanzar sobre o pulse el icono Avanzar sobre en la barra de herramientas del depurador para avanzar sobre sentencias en un programa.

Avanzar sobre es similar a avanzar, excepto que no ejecuta paso a paso ninguna función de la sentencia. La sentencia se ejecutará de una pasada.

Si la ventana de desensamblado tiene el foco cuando se selecciona este comando, entonces ejecuta una instrucción de ensamblador pero no para dentro si esta instrucción llama a una subrutina.

Si se carga una biblioteca dinámica durante el paso, el programa no se parará al final del paso. Se ejecutará hasta que encuentre un punto de parada o lo pare manualmente.

#### Paso a paso (avanzar al final)

Elija el elemento del menú Depurar Avanzar al final o pulse el icono Avanzar al final en la barra de herramientas del depurador para avanzar al final en un programa.

Avanzar al final ejecutará la función actual hasta que salga. El programa se parará una vez que salga de la función. Avanzar al final no es realmente una ejecución paso a paso porque no sólo ejecuta una sentencia, ejecuta la función entera hasta que la función vuelve a la función que la llamó.

#### Ejecutar/Seguir

Elija el elemento del menú Depurar Ejecutar/Seguir o pulse en el icono Ejecutar/Seguir en la barra de herramientas del depurador para continuar con la ejecución de un programa.

Esta opción continua la ejecución del programa hasta que se encuentra un punto de parada o el programa finalice.

#### Ejecutar hasta

Elija el elemento del menú Depurar Ejecutar hasta cursor o pulse en el icono Ejecutar hasta cursor en la Barra de herramientas del depurador para ejecutar hasta la línea en la que se encuentra el cursor.

Esta opción continua la ejecución del programa hasta la línea o la dirección (si la Ventana de desensamblado tiene el foco) donde se alcanza al cursor.

#### Parar el programa

Mientras el programa se está ejecutando y tiene el control no se puede realizar ninguna acción de depuración. Para obtener el control mientras el programa se está ejecutando elija el elemento del menú Depurar Pausar el programa o pulse en el icono Pausar el programa en la barra de herramientas del depurador. Esto interrumpirá el programa y devolverá el control al depurador.

### Puntos de parada

Al depurar un programa es útil poder parar la ejecución del programa en un punto en particular, de tal forma que se pueda examinar el estado del programa en esa ubicación. Los puntos de parada permiten que esto pase. Los puntos de parada se pueden establecer en diferentes ubicaciones en un archivo fuente para después hacer que el programa se ejecute. Cuando se encuentra un punto de parada se suspende la ejecución del programa, activando las expresiones para que se evalúen, que las variables se inspecciones, que se estudie la traza de la pila y demás.

#### Listar los puntos de parada

La ventana lista de puntos de parada se puede abrir eligiendo Ver Puntos de parada.

##### Vista del punto de parada

Vista del punto de parada

La vista tiene las siguientes columnas:

Ubicación

  Esta es la posición del punto de parada en el archivo fuente. Cuando el punto de parada lo establece el depurador, puede obtener información adicional tal como la función que contiene el punto de parada.

Dirección

  Este campo está rellenado con la dirección del punto de parada cuando el depurador lo establece.

Tipo

  Esto siempre muestra «punto de parada». Se usará en una versión posterior soportando diferentes tipos de puntos de parada.

Condición

  Esta es la condición del punto de parada, está vacía si no se define ninguna condición.

Conteo de pasadas

  Cuando el depurador no se está ejecutando, ésta columna muestra el conteo de pasadas del punto de parada, será cero si no está definido.

  Cuando el depurador se está ejecutando, si el conteo de pasadas es cero, esta columna muestra el número de veces que este punto de parada se ha disparado. Si el conteo de pasadas no es cero, entonces se muestran ambos números. El conteo de pasadas es el segundo número.

Estado

  Éste es el estado del punto de parada. Puede ser:

  - Pendiente: el punto de parada no está establecido en su programa.

  - Permanente: el punto de parada está establecido (el número de ID entre los paréntesis).

  - Temporal: el punto de parada está establecido pero se borrará al alcanzarse.

Todos los puntos de parada se mantienen entre las sesiones de Anjuta incluso si corresponden con ubicaciones no existentes. En este caso su estado pasa a ser pendiente. La interfaz trata de establecerlos cada vez que el programa se inicia o se carga una nueva biblioteca dinámica.

#### Añadir o establecer puntos de parada

Elija el elemento del menú Depurar Añadir punto de parada… o Añadir punto de parada… en el menú emergente de la lista de puntos de parada para abrir el diálogo Añadir punto de parada.

##### Diálogo de adición de punto de parada

Diálogo de adición de punto de parada

Introduzca la ubicación y opcionalmente, la condición de parada y el conteo de pasadas, después pulse Aceptar para establecer el punto de parada.

Ubicación

  Introduzca la ubicación en la que quiere establecer el punto de parada. Se puede especificar en uno de los siguientes formatos:

  1. Nombre_de_archivo:Número_de_línea

  2. Nombre_de_la_función

  3. Archivo:Nombre_de_la_función

  El primero es obvio; la ubicación se refiere al número de línea Número_de_línea en el archivo fuente Archivo. La segunda se refiere a la primera línea de la función Nombre_de_la_función. La tercera es similar a la segunda, excepto que esta notación se usa donde existe más de una función con el nombre Nombre_de_la_función en el programa. Es posible diferenciarlas proporcionando el Archivo, de tal forma que la notación se refiere a la función Nombre_de_la_función en el archivo Archivo.

Condición

  El parámetro Condición muestra una expresión asociada que se debería evaluar con un valor booleano; esto es, la evaluación de la expresión debe resultar en «TRUE(1)» o «FALSE(0)». Si la evaluación final no es un valor booleano, entonces se hará un cambio de tipo («typecast») a booleano.

  Cada vez que se encuentre el punto de parada durante la ejecución se evaluará la condición. El depurador parará la ejecución sólo si la evaluación devuelve un valor «TRUE», de otra forma continuará con la ejecución como si no hubiese habido un punto de parada.

  El valor predeterminado, si deja el campo vacío, de la Condición es siempre TRUE. El depurador parará la ejecución en la posición del punto de parada.

Conteo de pasadas

  El conteo de pasadas es un valor entero (sin signo) que le dice al depurador que salte el punto de parada ése número de veces antes de considerarlo. El conteo de pasadas tiene una prioridad más alta que la condición de parada. Sólo cuando el conteo de pasadas llega a cero el depurador evaluará la condición de parada (si hay alguna condición establecida). Si no hay ninguna condición establecida, el depurador parará la ejecución una vez que el conteo de pasadas llegue a cero.

  El valor predeterminado, si deja el campo vacío, del Conteo de pasadas es cero. El punto de parada se considerará cuando se encuentre por primera vez.

Un punto de parada también se puede establecer seleccionando una línea en el editor y eligiendo el elemento del menú Depurar Conmutar punto de parada en el elemento del menú contextual o pulsando el icono Conmutar punto de parada en la Barra de herramientas del depurador.

Los puntos de parada se pueden añadir incluso si el depurador no se ha iniciado o la biblioteca dinámica no se ha cargado aún. Pero no se pueden añadir mientras un programa se está ejecutando bajo el control del depurador.

#### Editar puntos de parada

Puede cambiar la condición y el conteo de pasadas seleccionando el punto de parada en la lista de puntos de parada y pulsando en el elemento Editar punto de parada del menú emergente.

Edite las entradas como se requiere y pulse Aceptar para efectuar los cambios.

#### Borrar puntos de parada

Seleccione el pinto de parada en la vista de la lista de puntos de parada y pulse Quitar punto de parada para borrarlo.

Un punto de parada existente también se puede borrar seleccionando su línea en el editor y eligiendo el elemento del menú Depurar Conmutar punto de parada, el elemento del menú emergente Conmutar punto de parada o el icono Conmutar punto de parada en la Barra de herramientas del depurador.

Puede quitar todos los puntos de parada pulsando en Depurar Quitar todos los puntos de parada o en Quitar todos los puntos de parada en el menú contextual de la lista de puntos de parada.

#### Activar o desactivar puntos de parada

Pulse en la columna Activar de la Ventana de lista de puntos de parada o en el elemento del menú Activar punto de parada para activar o desactivar el punto de parada seleccionado. El punto de parada se activará o desactivará, dependiendo de su estado actual.

Para desactivar todos los puntos de parada pulse Depurar Desactivar todos los puntos de parada o pulse Desactivar todos los puntos de parada en el menú contextual.

### Expresiones

#### Listar las variables locales

Cuando un programa se está ejecutando bajo el control del depurador, la Ventana de lista de locales se puede abrir eligiendo Ver Locales.

Las variables locales del marco actual (la función actual en la que el control de programa está presente) se muestran en la Ventana de locales. Durante la ejecución del programa (ej. durante la ejecución paso a paso) se actualizarán las variables locales. Si el valor de alguna variable cambió en el último paso de depuración, su valor se resaltará en rojo. Las variables se presentan en una forma de árbol fácil de ver:

##### Variables locales

Variables locales

El valor de una variable local se puede modificar seleccionándola y pulsando en la columna Valor.

gdb cada vez se usa más y más como «backend» para un «frontend» gráfico. Se ha mejorado recientemente en ésta área. Se recomienda usar la última versión (6.6) de gdb. En versiones anteriores gdb se puede colgar cuando el «frontend» pregunta por un puntero con un valor no válido (pero no usado).

#### Listar las expresiones vigiladas

Inspeccionar o evaluar una expresión proporciona el resultado sólo una vez. Para monitorizar continuamente algunas variables o expresiones, use la vigilancia de expresiones.

Elija el elemento del menú Ver Vigilancias para mostrar la ventana de vigilancias.

#### Añadir una expresión para vigilar

Pulse con el botón derecho del ratón en la Ventana de vigilancias para abrir el menú contextual. Elija el elemento del menú Añadir vigilancia…. Alternativamente puede usar Depurar Añadir vigilancia…. Aparecerá un diálogo preguntando por la expresión. Introduzca la expresión y pulse Aceptar.

De forma predeterminada las expresiones vigiladas se actualizan automáticamente cada vez que el programa se para. Esto se puede cambiar en el diálogo añadir vigilancia o posteriormente usando el elemento del menú Autoactualizar en el menú contextual de la Ventana de vigilancias. Una expresión vigilada se puede actualizar manualmente eligiendo Actualizar vigilancia o Actualizar todo en el menú anterior.

No es necesario que el depurador se esté ejecutando para añadir una nueva expresión a la vigilancia. Si el depurador no se está ejecutando o la expresión correspondiente no se puede encontrar, el «frontend» tratará de crear la vigilancia de la expresión cada vez que el programa se pare.

#### Eliminar una expresión vigilada

Seleccione la expresión para vigilar que quiere quitar en la ventana de vigilancia de expresiones, después abra el menú contextual pulsando con el botón derecho del ratón y elija el elemento del menú Eliminar.

Se pueden quitar todas las vigilancias eligiendo Eliminar todo en el menú contextual de la ventana de vigilancia.

#### Evaluar expresiones

Cuando el control se devuelve desde un programa —posiblemente en un punto de parada— es posible evaluar expresiones o inspeccionar los valores de las variables en el programa. Elija el elemento del menú Depurar Inspeccionar/Evaluar..., Inspeccionar/Evaluar... en el menú emergente del editor o pulse el botón Inspeccionar en la Barra de herramientas de depuración.

Aparecerá una ventana mostrando la evaluación de la expresión resaltada en el editor. Puede evaluar una nueva expresión pulsando en la columna nombre e introduciendo la nueva expresión.

Puede añadir la expresión directamente en la lista de expresiones para vigilar pulsando el botón Añadir.

#### Inspeccionar expresiones en la ventana del editor

Cuando la depuración está activada con el programa parado, puede obtener el valor de una expresión simplemente poniendo el puntero sobre ella y dejándolo un tiempo corto. Si la expresión ya está presente en la ventana Local o la ventana de Vigilancias su valor se mostrará en una ventana de consejo.

Actualmente sólo funciona para variables simples, no para estructuras o vectores («array»).

### Traza de la pila

#### Ventana de pila

La ventana de la traza de la pila muestra el contenido de la pila del programa. Lista todas las funciones y sus argumentos en la secuencia en la que se llamaron. También hay un número que representa cada llamada. Este número se llama marco. Cada llamada en la traza existe en un marco diferente. Esto comienza desde el marco 0 (la última función llamada) y crece a medida que el anidamiento de funciones se haga mayor.

Elija el elemento del menú Ver Pila para abrir la traza de la pila para el programa que se está depurando.

##### Ventana de la traza de la pila

Ventana de la traza de la pila

Una pequeña flecha apunta al marco seleccionado actualmente en la traza de la pila. De forma predeterminada, éste será el marco 0, la última función llamada. Toda la evaluación e inspección de expresiones o variables se referenciará a este marco. El rango de las variables o expresiones evaluadas se limitará a las del marco seleccionado. Lo mismo se aplica para expresiones nuevas sólo en la vigilancia.

#### Establecer el marco actual

Al pulsar dos veces sobre cualquier marco de traza la pila se establecerá ese marco como el marco actualmente seleccionado (la flecha apuntará al marco, indicando que se ha seleccionado como el marco actual). Alternativamente, abra el menú de operaciones pulsando con el botón derecho sobre la ventana de traza de la pila y elija el elemento del menú Establecer el marco actual para establecer el marco.

Cambiar el marco de la pila cambia el contenido de la ventana de lista de locales pero no la ventana de vigilancias ya que cada expresión se evalúa en el marco usado cuando se definió.

### Hilos

#### Ventana de hilos

La Ventana de hilos muestra todos los hilos usados por el programa e indica el hilo actual. Para abrir esta ventana elija el elemento del menú Ver Hilo.

Una pequeña flecha apunta al hilo actual. Cuando el programa se para, corresponde al hilo en el que se ha interrumpido. Cada hilo tiene su propio marco de la pila, de tal forma que cambiar el hilo actual cambia el marco de la pila actual.

#### Establecer el hilo actual

Al pulsar dos veces sobre cualquier hilo en la lista de hilos se establecerá ese hilo como el hilo actualmente seleccionado (la flecha apuntará al hilo, indicando que se ha seleccionado como el hilo actual). Alternativamente, abra el menú de operaciones pulsando con el botón derecho sobre la ventana de la lista de hilos y elija el elemento del menú Establecer el hilo actual para establecer el hilo.

Al cambiar el hilo también cambiará el valor de los registros de la CPU y el marco actual de la pila, de tal forma que la ventana de locales también cambiará.

### CPU

#### Ventana de registros

Es posible examinar el contenido de los registros internos de la CPU (microprocesador). Elija el elemento del menú Ver Registros. Aparecerá una ventana listando todos los registros disponibles en el microprocesador y su correspondiente contenido.

Si cualquier valor de un registro se cambió en el último paso de depuración, su valor se resaltará en rojo. Es posible cambiar el valor de un registro seleccionándolo y pulsando en la columna

#### Ventana de memoria

Elija el elemento del menú Ver Memoria para abrir la ventana de memoria para el programa que se está depurando. Esta ventana muestra el contenido de toda la memoria.

La primera columna muestra las direcciones de memoria en hexadecimal, la segunda muestra el contenido de la memoria en hexadecimal y la última columna muestra el contenido de la memoria en ASCII.

Hasta el espacio de direccionamiento de un microprocesador de 32 bits es bastante grande (4 Gigabytes) de tal forma que es bastante difícil ir a una dirección en particular con la barra de desplazamiento. Pero puede pulsar con el botón derecho del ratón para mostrar un menú contextual y seleccionar Ir a la dirección para obtener una pequeña caja de texto editable donde puede introducir una dirección en hexadecimal.

#### Ventaba de desensamblado

Elija el elemento del menú Ver Desensamblado para abrir la ventana de desensamblado para el programa que se está depurando.

La primera columna es la dirección en hexadecimal. En la segunda columna puede tener una etiqueta al comienzo de la línea que termina con un punto y coma, o una instrucción en ensamblador que comienza tras 4 caracteres espacio.

De nuevo, ya que el espacio de direccionamiento es muy grande, la barra de desplazamiento es bastante inútil. Puede pulsar con el botón derecho del ratón, obtener un nuevo menú y seleccionar Ir a la dirección para obtener una pequeña caja de texto editable donde puede introducir una dirección en hexadecimal. La posición en la ventana de desensamblado se cambiará al valor del contador del programa cuando se pare el programa.

### Otros

Existe cierto número de características del depurador que se no se usan tan frecuentemente y no están muy bien integradas en el nuevo front-end pero se está trabajando en ello.

#### Bibliotecas cargadas dinámicamente

Para obtener una lista de las bibliotecas usadas dinámicamente por el programa, elija el elemento del menú Depurar Información Bibliotecas compartidas. Esto abrirá una nueva ventana que listará todas las bibliotecas compartidas que el programa ha cargado y sus ubicaciones en la memoria. También muestra si la tabla de símbolos se ha cargado o no (Sí/No).

##### Ventana de bibliotecas compartidas

Ventana de bibliotecas compartidas

#### Señales del núcleo

Las señales del núcleo son una forma de señalizar procesos en Linux. La lista de señales disponibles para un programa se puede mostrar eligiendo el elemento del menú Depurar Información Señales del núcleo. Se abrirá una ventana listando todas las señales disponibles en el sistema junto con una breve descripción de cada señal.

##### Ventana de señales del núcleo

Ventana de señales del núcleo

Existen tres columnas que especifican qué hacer cuando se recibe una señal:

1. Parar; esto le dice al depurador si debe parar la ejecución del programa (y devolver el control) cuando el programa recibe esta señal.

2. Imprimir; esto de dice al depurador si debe mostrar la señal recibida.

3. Pasar; esto le dice al depurador si debe pasar la señal al programa.

El menú emergente que se muestra al pulsar con el botón derecho del ratón tiene todos sus elementos desactivados porque las funciones correspondientes aún no están implementadas.

#### Información acerca de archivos usados

Es posible obtener alguna información acerca de los archivos usados por el programa depurado, eligiendo el elemento del menú Depurar Información Información de archivos objetivo. Se abrirá una ventana mostrando esta información.

#### Información acerca del programa depurado

Es posible obtener alguna información acerca del programa depurado eligiendo el elemento del menú Depurar Información Programa. Se abrirá una ventana mostrando esta información.

#### Información acerca de la estructura del núcleo

Es posible obtener alguna información de los datos del núcleo acerca de los procesos actuales eligiendo el elemento del menú Depurar Información User struct del núcleo. Se abrirá una ventana mostrando esta información.

#### Información acerca de las variables globales

Es posible listar todas las variables globales eligiendo el elemento del menú Depurar Información Variables globales. Se abrirá una ventana listando todas las variables globales.

#### Información acerca del marco actual

Es posible obtener información acerca del marco actualmente seleccionado eligiendo el elemento del menú Depurar Información Marco actual. Se abrirá una ventana describiendo el marco actual.

#### Información acerca de los argumentos actuales de la función

Es posible obtener información acerca de los argumentos de la función actual eligiendo el elemento del menú Depurar Información Argumentos. Se abrirá una ventana describiendo los argumentos.

#### Comando de usuario

Para enviar directamente un comando al «backend» elija el elemento del menú Depurar Comando del depurador. Se mostrará un pequeño diálogo donde podrá introducir los comandos que se enviarán al depurador cuando pulse Intro.

El «frontend» envía este comando directamente al «backend» sin ninguna comprobación. Por ejemplo, si establece un punto de parada como este, no aparecerá en la ventana de lista de puntos de parada. Es mejor evitar el uso de este comando a no ser que sepa exactamente qué está haciendo.

## Diseñador de interfaces Glade

### Inicio rápido

Si no quiere leer todo este aburrido manual, aquí existen unos pocos pasos para tener todo esto listo para su uso:

1. Debería tener un proyecto que contenga un archivo Glade abierto;

2. A diferencia del diseñador Glade original, el complemento de Anjuta usa la pulsación doble para crear manejadores para la señal predeterminada. Puede realizar pulsaciones en widgets (ej. cambiar la solapa actual en un GtkNotebook) manteniendo pulsada la tecla «Windows» o «Super»;

3. Abra Preferencias Diseñador de IGU Glade y seleccione las tres opciones superiores Insertar manejador al editar, Distribución del diseñador separada y Añadir recursos automáticamente;

4. Compruebe la opción Ver Diseñador y mueva esta ventana a un lugar mejor;

5. Cambie al archivo de Glade en el área de diseño y al archivo de código fuente que debería contener las llamadas desde el archivo Glade, después pulse Glade Asociar el último diseñador y el último editor;

6. Opcionalmente seleccione un destino para la imagen y otros recursos en el gestor de proyectos y pulse Establecer como objetivo de recurso predeterminado en el menú contextual.

### Cuestiones de uso general de Glade

El complemento de Glade básicamente copia las funcionalidades del diseñador de Glade, pero tiene algunas características especiales. Las cuatro ventanas del diseñador de Glade son el área de diseño, la paleta, el inspector de widgets y el editor de propiedades. Tienen el mismo propósito que en el diseñador individual, así que consulte el Manual del diseñador de interfaces Glade para ver su descripción. Una funcionalidad adicional le permite usar la estructura de Anjuta de una forma más efectiva y se describe aquí.

### Asociación de editor y diseñador

Puede asociar el editor de textos y el diseñador Glade para cambiar fácilmente entre ambos e insertar manejadores de esbozos para manejadores nuevos que haya introducido. Puede asociar más de un editor a un diseñador. Se usará el editor más reciente o el asociado con el widget de nivel superior. Existen dos formas de asociar un editor y un diseñador. La primera forma es usando el diálogo de asociaciones. La segunda forma es elegir el diseñador y el editor de documentos en cualquier orden y seleccionar el elemento del menú Glade Asociar el último diseñador y el último editor.

### Diálogo de asociaciones

Le permite crear y gestionar las asociaciones. Para crear una asociación seleccione diseñador y editor en las cajas de combinación y pulse Asociar. También puede seleccionar el documento cambiando a él en el gestor de documentos o la lista de ventanas en el menú principal. La lista en el medio del diálogo muestra las asociaciones existentes. Un par de controles debajo están pensadas para editar las propiedades de las asociaciones. Aquí está su descripción:

RegExp especial

  Apócope de «expresión regular especial». Se usa para definir una posición especial para insertar esbozos.

Nombre del widget

  El nombre del widget de nivel superior al que pertenece esta asociación.

Tipo de posición

  Describe una posición en la que se insertará un manejador de esbozos. Después del principio significa después de una marca especial (que se introducirá en la entrada RegExp especial) y Antes del final significa antes de la marca especial de final. La marca predeterminada de inicio es /* window_name callbacks */ y la marca predeterminada de final es /* end of window_name callbacks */. Se puede omitir window_name.

### Señal predeterminada

Pulsar dos veces en un widget en el área de diseño creará un nuevo manejador para la señal predeterminada usando una plantilla predefinida para su nombre. Por ejemplo, la señal predeterminada es «pulsado» para un botón. «conmutado» para una caja de combinación, etc. Si la opción Insertar manejador al editar está activada entonces se insertará un nuevo manejador de esbozos en la posición que depende del ajuste Tipo de posición.

### Insertar un esbozo

Uno de los objetivos más importantes de la integración de Anjuta y Glade es crear automáticamente manejadores de esbozos, para que no necesite realizar mucho trabajo rutinario, que se hará automáticamente.

Existen varias formas de crear un esbozo:

- Automáticamente si la opción Insertar manejador al editar está activada

- Usando Glade Insertar manejador de esbozos, posición automática en el menú principal

- Usando el elemento Insertar manejador de esbozos en el menú contextual del documento de texto

### Preferencias

Insertar manejador al editar

  Activa la inserción de un manejador de esbozo en el editor asociado después de introducir un manejador nuevo en un editor de señales o al crear un manejador predeterminado de señales

Distribución del diseñador separada

  Desacopla el área de diseño del gestor de documentos para que pueda acoplarlo separadamente desde editores de texto.

Añadir recursos automáticamente

  Cuando todos los elementos están seleccionados (ej. imágenes) se añadirán al destino en el proyecto actual. Puede elegir el objetivo usando el menú contextual del gestor de proyectos o introduciendo el ID del objetivo en la entrada bajo el botón de verificación.

Plantilla del manejador

  Puede elegir entre dos formatos de nombrar automáticamente el manejador de señales.

## Preferencias

Las preferencias son formas para que Anjuta se ajuste a sus gustos. Active Editar Preferencias para mostrar el diálogo de preferencias. Algunas preferencias se explican debajo.

### General

1. Directorio del proyecto: Es la ruta donde planea poner todos sus proyectos. El asistente de aplicación crea los proyectos nuevos sólo en este directorio. El directorio de proyecto predeterminado es ~/Projects y generalmente es suficiente para la mayoría de las personas.

2. Información del usuario: Proporciona su nombre y dirección de correo electrónico. No se utilizan para registrar el software, sino para crear entradas en el archivo ChangeLog e insertar otros bits de texto.

### Gestor de archivos

1. Directorio raíz si no hay un proyecto abierto es la ruta donde apunta la raíz del gestor de archivos si actualmente no hay ningún proyecto abierto.

2. Filtro de archivos: Puede filtrar algunos archivos del árbol de archivos, por ejemplo los archivos ocultos o los archivos ignorados por el sistema de control de versiones que generalmente significa que se general durante la compilación y no se deberían cambiar.

## Herramientas definidas por el usuario

### Introducción

Algunas veces encontrará que las funcionalidades propias proporcionadas por Anjuta son insuficientes. En estos casos, puede que esté tentado a añadir la característica al código fuente de Anjuta usted mismo o enviar una petición de implementación de característica. No obstante, ambos casos suelen ser lentos y problemáticos, especialmente si su herramienta es especializada. Bajo estas circunstancias, es mejor usar el entorno de trabajo de las herramientas de Anjuta.

Anjuta proporciona un potente entorno de trabajo para definir herramientas definidas por el usuario para extender su funcionalidad. Las herramientas acceden a casi todas las características del EID a través del uso de variables. Puede añadir herramientas bajo cualquier elemento del menú, entradas específicas, salidas y redirecciones de errores dentro del entorno de trabajo de la IGU así como proporcionar parámetros de la línea de comandos a la herramienta.

El complemento de herramientas debe estar activado para usar esta característica.

### Ejemplos de herramientas

Este es un simple ejemplo de cómo usar el complemento de herramientas para integrar el script generador de registro de cambios de GNOME.

#### La herramienta de edición

La herramienta de edición

## Autores

Naba Kumar fundó el proyecto Anjuta. Visite esta lista en línea para conocer todos los contribuidores de Anjuta.

Para obtener más información acerca de Anjuta, visite la página web del proyecto en http://anjuta.org. Los informes de error se deben rellenar usando la página de seguimiento de errores en el sitio web de desarrollo del proyecto en http://www.sourceforge.net/projects/anjuta.

Naba Kumar, Andy Piper, Biswapesh Chattopadhyay y Johannes Schmid escribieron este manual. Envíe cualquier comentario y sugerencia acerca de este manual a la lista de desarrollo de Anjuta anjuta-devel@list.sourceforge.net. También se pueden enviar comentarios a traes de la página del proyecto en SourceForge.

## Licencia

Este programa es software libre; puede redistribuirlo y/o modificarlo 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.

Este programa se distribuye con la esperanza de que le sea útil, pero SIN NINGUNA GARANTÍA; sin incluso la garantía implícita de MERCANTILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Vea la Licencia Pública General GNU para más detalles.

Una copia de la Licencia Pública General GNU está incluidacomo un apéndice de la Guía del usuario de GNOME. También puede obtener una copia de la Licencia Pública General GNU a través de la Free Software Foundation visitando su página web o escribiendo a la

     Free Software Foundation, Inc. 51 Franklin Street Fifth Floor Boston, MA02110-1301EE. UU.