# Manuel de l'environnement de développement intégré Anjuta

V 1.0.0

Manuel de l'environnement de développement intégré Anjuta

Naba
Kumar
Andy
Piper
Biswapesh
Chattopadhyayr
Johannes
Schmid
2001-2002
2006-2008
Naba Kumar, Andy Piper, Biswapesh Chattopadhyay
Johannes Schmid
2009-2010.
Bruno Brouard (annoa.b@gmail.com)

Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence GNU Free Documentation License, Version 1.1 ou ultérieure publiée par la Free Software Foundation sans section inaltérable, sans texte de première page de couverture ni texte de dernière page de couverture. Vous trouverez un exemplaire de la Licence GNU Free Documentation License de la Free Software Foundation en visitant leur site Web ou en écrivant à : Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

La plupart des noms utilisés par les entreprises pour distinguer leurs produits et services sont des marques déposées. Lorsque ces noms apparaissent dans la documentation GNOME et que les membres du projet de documentation GNOME sont informés de l'existence de ces marques déposées, soit ces noms entiers, soit leur première lettre est en majuscule.

Manuel de Anjuta 2.1.0
2007

Johannes Schmidjhs@gnome.org

Équipe Anjuta

## Introduction

Anjuta est un environnement de développement intégré (IDE) polyvalent pour le bureau GNOME. Il intègre de nombreuses facilités avancées de programmation incluant la gestion de projets, des assistants pour applications, un débogueur interactif, une interface de conception intégrée Glade, une aide API intégrée Devhelp, un profileur de mémoire intégré Valgrind, un profileur de performances intégré gprof, un générateur de classe, un puissant éditeur de source, un navigateur de source et plus encore.

Anjuta DevStudio a été conçu pour être simple d'emploi mais suffisamment puissant pour répondre à tous vos besoins en programmation. Beaucoup de fonctionnalités ont été ajoutées à Anjuta depuis le début de son développement. Notre but est de fournir puissance et fonctionnalités conjointement et de rendre votre développement de logiciels agréable sans faire trop de fioritures. Nous avons essayé de continuer à améliorer et rendre stable Anjuta pour vous fournir la meilleure expérience d'environnement de développement intégré (IDE). Nous espérons que vous apprécierez l'usage d'Anjuta. Dans le cas contraire, aidez-nous à l'améliorer en rapportant les bogues et en faisant des suggestions.

La capture d'écran suivante illustre une partie des éléments que vous trouverez dans Anjuta.

### Anjuta en action

Anjuta en action

Anjuta possède un système de zone d'ancrage flexible et avancé qui vous permet d'arranger la disposition de toutes les vues un peu comme vous le souhaitez. Vous pouvez faire glisser les vues en utilisant les barres de glissement et tout réarranger. Les arrangements sont conservés pour chaque projet donc vous pouvez maintenir différents arrangements pour différents projets. Toutes les vues ancrées sont minimisables pour éviter d'encombrer la fenêtre principale. Les vues minimisées apparaissent sous la forme d'icônes sur le côté gauche de la fenêtre principale. Vous pouvez configurer toutes les actions des menus soit en appuyant sur une touche lorsque le curseur est au dessus d'un élément de menu (manière classique sous GNOME) ou via une interface utilisateur dédiée à la configuration des raccourcis clavier.

Merci de signaler tous problèmes rencontrés avec Anjuta. Cela nous aidera à améliorer le logiciel mais également contribuera à la communauté des logiciels libres.

## Familiarisation avec Anjuta

### Menus et raccourcis clavier

En haut de la fenêtre principale de Anjuta se trouve la barre des menus. Elle vous permet d'accéder à presque toutes les fonctionnalités de Anjuta. Les actions sont regroupées par type. Par exemple, les actions concernant les fichiers sont regroupées dans le menu Fichier.

#### Barre des menus

Barre des menus d'Anjuta

#### Menu Fichier

Menu Fichier

Des raccourcis clavier sont disponibles pour la plupart des éléments de menu. Tous les raccourcis clavier sont affichés en face des éléments de menu correspondants. D'autres raccourcis clavier bien utiles sont décrits ici.

- Navigation parmi les onglets de l'éditeur : CtrlAltPage Haut (en avant) et CtrlAltPage Bas (en arrière). Vous pouvez également changer de page en faisant un clic-droit sur les onglets de l'éditeur et en choisissant un nom de fichier dans le menu surgissant (c'est pratique quand tous les onglets de l'éditeur ne sont pas entièrement visibles). Il se peut que ces raccourcis clavier soient déjà attribués par certaines configurations de bureau. Dans ce cas, vous devez les configurer à nouveau (pas dans Anjuta car ils sont figés) si vous voulez utiliser ces raccourcis.

- Aide contextuelle : MajusculeF1. Positionnez le curseur sur un mot (par exemple, le nom d'une fonction) sur lequel vous voulez obtenir de l'aide API et utilisez ce raccourci. L'aide contextuelle ne fonctionne que si Devhelp est installé, sinon le menu d'aide contextuelle et le bouton de la barre d'outils sont inactifs. Vous pouvez obtenir Devhelp à partir du site Web de Devhelp. Vous devez également installer les livres relatifs à Devhelp.

- Auto-complétion : CtrlEntrée. Utilisez ce raccourci quand le curseur est situé à la fin d'un mot incomplet pour faire apparaître une liste des mots complétant la fin du mot. Faites défiler et choisissez le mot souhaité dans la liste si vous le trouvez.

- Plus de raccourcis : recherchez les raccourcis affichés à droite des étiquettes des éléments de menu. Les raccourcis peuvent également être modifiés comme expliqué dans l'astuce ci-dessous.

#### Personnalisation des raccourcis

Vous pouvez modifier les raccourcis par défaut en choisissant Édition Préférences et en sélectionnant l'onglet Raccourcis.

### Fenêtre principale

La fenêtre principale contient plusieurs fenêtres d'affichage qui peuvent être réarrangées en déplaçant leur barre de titre. Elles peuvent également être minimisées en cliquant sur les boutons minimiser à gauche dans les barres de titre.

1. La fenêtre Documents ne contient qu'un document actif à la fois (s'il y a des fichiers ouverts). Toutes les commandes s'appliquent à ce document actif. Vous pouvez afficher un document particulier en cliquant sur son onglet. Vous pouvez aussi faire un clic-droit sur les onglets et choisir le document dans le menu surgissant qui apparaît. Ceci est particulièrement pratique lorsqu'il y a beaucoup de fichiers ouverts et qu'ils ne sont pas tous visibles dans la zone des onglets.

2. La fenêtre Projet affiche l'arborescence des fichiers du projet si un projet est ouvert sinon la fenêtre Projet est généralement cachée. En double-cliquant sur un élément de la fenêtre Projet vous ouvrez le fichier.

3. La fenêtre Fichiers affiche une arborescence de fichiers. Si aucun projet n'est ouvert, l'arborescence pointe habituellement vers la racine du système de fichiers mais vous pouvez modifier ceci dans les préférences. Si un projet est ouvert, la fenêtre affiche tous les fichiers du projet. Un double-clic ouvre le fichier en utilisant l'application appropriée configurée dans les préférences MIME de GNOME. Un clic-droit ouvre un menu contextuel vous permettant de choisir la façon d'ouvrir le fichier.

4. La fenêtre Symboles affiche l'arborescence de tous les symboles disponibles dans le projet, générée par l'analyseur ctags. Un double-clic ouvre une fenêtre de l'éditeur contenant le fichier à la ligne correspondante.

   Un onglet Rechercher dans la fenêtre Symboles vous permet de faire une recherche de symboles.

5. La fenêtre Messages affiche tous les messages (les deux sorties `stdout` (standard) et `stderr` (erreurs)) quand une commande externe est exécutée. La fenêtre Messages est généralement cachée mais elle apparaît dès qu'une commande externe est exécutée telle que pendant la compilation d'un fichier ou du projet, les sessions de débogage, les recherches et beaucoup d'autres opérations. Anjuta y ajoute également ses propres messages si nécessaire.

   Les couleurs utilisées pour afficher les messages sont importantes. Les messages affichés avec la couleur d'arrière-plan standard (généralement noir) sont les messages normaux. Les messages affichés en orange sont des avertissements et ceux en rouge sont des erreurs. Les messages d'avertissement et d'erreur sont des liens : un double-clic sur l'un des messages vous déplace dans le fichier particulier au numéro de ligne spécifié dans le message.

   Par exemple, quand vous compilez un fichier qui contient des erreurs, des messages en rouge apparaissent pour vous indiquer quels sont les problèmes et où ils se situent. Un double-clic sur l'un des messages ouvre le fichier et met en surbrillance la ligne contenant l'erreur.

6. La fenêtre Terminal est une émulation d'un terminal dans laquelle vous pouvez saisir des commandes exactement comme dans le terminal de GNOME.

#### Gestion des sessions

Tous les réglages dont les tailles et positions des fenêtres sont enregistrés lorsque vous quittez Anjuta. La gestion des sessions est toujours en cours de développement, aussi vous ne devez pas quitter Anjuta avec des documents non enregistrés. Anjuta affiche un avertissement si vous essayez de quitter avec des documents non sauvegardés toujours ouverts.

## Opérations sur les fichiers

### Création d'un nouveau fichier et insertion de texte

#### Création d'un nouveau fichier

Pour créer un nouveau fichier, choisissez Fichier Nouveau dans la barre des menus ou cliquez sur le bouton Nouveau fichier de la barre d'outils principale. Un nouvel onglet apparaît dans l'éditeur (ou une nouvelle fenêtre si le document parent est dans une fenêtre). Les nouveaux documents seront appelés `Document non enregistré 1`, `Document non enregistré 2`, `Document non enregistré 3`, etc.

##### Enregistrement de fichier

Vous devriez enregistrer les nouveaux documents dès que possible pour éviter de perdre des données en cas de plantage.

#### Assistant fichier

Un assistant peut-être utilisé pour créer un nouveau fichier. Pour créer un nouveau fichier, choisissez FichierNouveau Fichier dans la barre des menus. Cela ouvrira la boîte de dialogue Nouveau fichier. Choisissez le type de fichier. Saisissez le nom du fichier. Le suffixe sera automatiquement ajouté. Vous pouvez ajouter de l'information sur la licence (selon votre choix de licence) et un en-tête. Dans le cas d'un fichier d'en-tête C/C++, vous pouvez également ajouter un modèle d'en-tête. Cliquez sur Valider pour créer le fichier.

##### Assistant nouveau fichier

La boîte de dialogue ouvrir un fichier

Il se peut que Anjuta crée si besoin des fenêtres contenant de nouveau fichier au cours de certaines opérations. Par exemple, des commandes Subversion telles que `Diff` et `View Log` créent des nouvelles fenêtres de fichier et y ajoute leur sortie. Vous pouvez sauvegarder les contenus de ces fenêtres dans des vrais fichiers si vous le désirez.

#### Insertion de macros

Vous pouvez utiliser des macros pour saisir rapidement des séquences répétitives de texte.

Le greffon Macro doit être activé.

##### Insertion

Il y a deux types de macros à votre disposition : les macros Anjuta et les macros utilisateur (affichées comme « Mes macros »). Les macros Anjuta ne sont pas modifiables mais vous pouvez définir et modifier vos propres macros utilisateur.

Pour insérer une macro, déplacer le curseur à l'emplacement souhaité. Choisissez ÉditionMacros Macros.... Une boîte de dialogue apparaît. Choisissez la macro désirée dans la liste. Le résultat de la macro est affichée dans la fenêtre et un résumé est affiché dans la boîte de dialogue. Cliquez sur Insérer pour insérer le texte de la macro à la position du curseur.

Une autre manière d'insérer une macro est de choisir ÉditionMacros Insérer une macro..., puis de faire le raccourci de la macro désirée.

###### Macro

La boîte de dialogue macro

##### Définition de macros

Dans la boîte de dialogue Insertion de macro, cliquez sur Ajouter ou sélectionnez ÉditionMacros Ajouter une macro.... La fenêtre ajouter ou modifier apparaît. Saisissez le nom de la macro, choisissez ou définissez une catégorie et saisissez un raccourci, puis saisissez le texte de votre macro. Le caractère « | » indique la position du curseur après l'insertion de la macro. Cliquez sur Valider. La macro est ajoutée à la liste.

Vous pouvez également supprimer une macro en la sélectionnant dans la liste et en cliquant sur Supprimer. Ceci n'est bien sûr possible que pour les macros utilisateurs (Mes macros).

De la même manière, vous pouvez éditer et modifier une macro en la sélectionnant dans la liste et en cliquant sur le bouton Modifier.

###### Ajouter/modifier des macros

La boîte de dialogue ajout/modification

##### Mot-clés de macros

Des mot-clés de macros sont disponibles. Ils peuvent être inclus dans les définitions de macro. Ces mot-clés de macros commencent et se terminent par le caractère « @ ».

Les mots-clés de macro disponibles sont @DATE_TIME@, @DATE_YMD@, @DATE_Y@, @USER_NAME@, @FILE_NAME@, @FILE_NAME_UP@, @FILE_NAME_UP_PREFIX@, @EMAIL@, @TABSIZE@, @INDENTSIZE@ et @USETABS@.

###### Mot-clés de macros

Les mot-clés de macros

### Ouverture et enregistrement des fichiers

1. Ouverture d'un fichier : Pour ouvrir un fichier existant, choisissez Fichier Ouvrir dans la barre des menus, cliquez sur le bouton Ouvrir dans la barre d'outils ou tapez CtrlO. La boîte de dialogue Ouvrir un fichier apparaît.

   #### Boîte de dialogue Ouvrir un fichier

   La boîte de dialogue ouvrir un fichier Choisissez ou saisissez le nom du fichier que vous souhaitez ouvrir, puis cliquez sur Ouvrir. Pour ouvrir plus d'un fichier à la fois, sélectionnez les fichiers à ouvrir en maintenant enfoncée la touche Ctrl et en cliquant sur chacun des fichiers, puis cliquez sur Ouvrir. Si vous changez d'avis, cliquez sur Annuler pour fermer la boîte de dialogue sans ouvrir de fichier.

   #### Boîte de dialogue Ouvrir plusieurs fichiers

   La boîte de dialogue ouvrir un fichier dans le mode sélection-multiple

   Vous pouvez activer l'option Afficher les fichiers cachés à travers le menu contextuel qui apparaît lorsque vous faites un clic-droit dans la boîte de dialogue Ouvrir un fichier. Cette option rend visible les fichiers cachés (fichiers commençant par « . ») dans la liste des fichiers. Décochez l'option pour cacher les fichiers cachés. La boîte de dialogue Ouvrir un fichier possède également un filtre intégré sur le type des fichiers. Choisissez le filtre du type de fichiers approprié dans la boîte de dialogue et la liste des fichiers se limitera aux fichiers qui possèdent seulement le type choisi.

2. Enregistrement d'un fichier : Pour enregistrer un fichier, choisissez Fichier Enregistrer dans la barre des menus, cliquez sur le bouton Enregistrer dans la barre d'outils ou tapez CtrlS. Cela enregistre le fichier. Si le fichier est nouveau, une boîte de dialogue Enregistrer sous apparaît. Saisissez un nom de fichier et cliquez sur Enregistrer pour enregistrer le nouveau fichier sous le nom indiqué. Enregistrer le fichier sous

   #### Sauvegarde automatique des fichiers

   Si vous avez activer l'enregistrement automatique, Anjuta n'effectue pas l'enregistrement automatique des nouveaux fichiers. Il faut d'abord l'enregistrer manuellement. De même pour l'option Tout enregistrer : Anjuta n'enregistre pas les nouveaux fichiers tant que vous ne les avez pas enregistrés manuellement. Vous devez enregistrer un fichier manuellement avant que l'enregistrement automatique ou Tout enregistrer ne s'applique.

3. Enregistrement d'un fichier sous un nouveau nom : Vous pouvez explicitement enregistrer un fichier sous un nouveau nom de fichier. Pour cela, choisissez Fichier Enregistrer sous dans la barre de menus. Une boîte de dialogue Enregistrer sous apparaît et vous demande de saisir un nom de fichier. Saisissez le nom et cliquez sur Enregistrer.

   #### Écrasement par un enregistrement sous

   Lorsque vous utilisez Enregistrer sous avec un fichier existant, le fichier initial n'est pas supprimé. Il reste dans l'état où il était au moment du dernier enregistrement. Si un fichier possédant le nouveau nom de fichier existe déjà, une boîte de dialogue apparaît pour vous demander de confirmer que vous souhaitez bien l'écraser. En cliquant sur Oui vous remplacer le fichier par le fichier que vous êtes en train d'enregistrer.

4. Fermeture d'un fichier : Pour fermer un fichier, choisissez Fichier Fermer dans la barre des menus, cliquez sur le bouton Fermer dans la barre d'outils (vous pouvez également fermer un fichier en cliquant sur le X dans l'onglet contenant son nom de fichier). Cela ferme le fichier actuel. Si le fichier n'est pas enregistré ou si c'est un nouveau fichier alors Anjuta vous demande d'enregistrer le fichier avant de le fermer.

### Modification des fichiers

Anjuta possède un grand nombre de fonctionnalités qui vous aide à modifier et à travailler avec des fichiers sources. Les sections suivantes vous présentent certaines des fonctionnalités intéressantes disponibles.

#### Les marges de l'éditeur

Les marges de l'éditeur : Les marges de l'éditeur apparaissent à gauche de l'éditeur et sont utilisées à des fins particuliers. Il y a trois marges d'éditeur disponibles : la marge des numéros de ligne, la marge des marqueurs et la marge des replis de code. Par défaut, (c.-à-d. lorsque vous lancez Anjuta pour la première fois) seule la marge des replis de code est visible. Le reste peut être rendu visible via Affichage Éditeur.

##### Les marges de l'éditeur

La barre d'outils Étiquettes

La marge des numéros de ligne est la plus grande des trois (et est légèrement plus foncé que les autres) et affiche les numéros de ligne du document. La marge des numéros de ligne peut être affichée ou masquée en cochant ou pas Affichage Éditeur Marge des numéros de ligne. Un clic-droit sur cette marge sélectionne la ligne complète (en incluant le caractère de fin de ligne final, s'il existe). Vous pouvez paramétrer les propriétés de la police de la marge des numéros de ligne dans les préférences.

La marge des marqueurs peut être affichée ou cachée via Affichage Éditeur Marge des marqueurs. Cette marge affiche des icônes pour marquer une ligne donnée. La marge peut afficher des marqueurs de signets (bleu et rectangulaire), des marqueurs de points d'arrêt (rouge et circulaire) et des marqueurs indicateurs de ligne (qui ressemble à une flèche directionnelle jaune). Un marqueur de signets indique une ligne mise en signet et peut être affiché ou masqué via Aller à Signet Basculer le signet avec le curseur sur cette ligne. Un marqueur de points d'arrêt est utilisé dans le débogueur pour indiquer un point d'arrêt de débogage (consultez la section Débogage pour plus d'informations). Un marqueur indicateur de ligne est utilisé pour marquer la position actuelle du programme dans le débogueur.

La marge des replis de code est l'endroit ou s'affiche l'arborescence des replis. En cliquant sur les nœuds de l'arborescence des replis, vous pliez ou dépliez les blocs de code. Un symbole souligné est dessiné sous une ligne repliée pour mettre en évidence la présence d'un bloc de code qui a été replié sous la ligne. Pour plus de détails sur le repli de code, consultez la section Repli de code ci-dessous.

##### Marqueur en marge invisible

Si le marqueur en marge n'est pas visible, Anjuta affiche les marqueurs en modifiant la couleur d'arrière-plan d'une ligne. Par exemple, si un marqueur de point d'arrêt est positionné dans une ligne et que le marqueur en marge n'est pas visible, cette ligne sera affichée avec un arrière-plan rouge. De même pour les marqueurs de signets et les indicateurs de ligne, l'arrière-plan est bleu ciel et jaune respectivement. Si vous n'appréciez pas cela (peut-être à cause du contraste de votre thème), activez la marge des marqueurs via Affichage Éditeur Marge des marqueurs.

##### Marqueurs de l'éditeur lorsque les marqueurs en marge sont invisibles

La barre d'outils Étiquettes

#### Guides de l'éditeur

L'éditeur peut être configuré pour afficher certaines informations sur le document qui sont normalement invisibles dont les guides d'indentation, les espaces blancs et les caractères de fin de ligne. Ils sont rendus visibles ou invisibles en cochant ou pas l'élément de menu dans Affichage Éditeur. Les guides d'indentation sont de petites lignes en pointillés qui servent à relier les parenthèses qui correspondent dans le code source. Lorsque le curseur est sur une parenthèse en correspondance, son guide d'indentation est mis en surbrillance pour mettre en valeur le niveau d'indentation visuellement.

##### Éditeur avec guides

Éditeur avec guides

#### Coloration syntaxique

Anjuta peut faire de la coloration syntaxique pour beaucoup de langages différents. Normalement cela se produit de manière automatique en déterminant le type du fichier grâce à son extension. Si Anjuta ne peut pas déterminer le type du fichier, il n'y aura pas coloration syntaxique. Vous pouvez forcer explicitement un style de coloration particulier en sélectionnant le style dans le menu Affichage Éditeur Coloration syntaxique.

Anjuta utilise un fichier de propriétés nommé `$prefix/share/anjuta/properties/anjuta.properties` qui possède le même format qu'un fichier de propriétés SciTE mais n'en utilise pas toutes les propriétés. Le style de chaque élément pour tous les langages est défini dans un fichier nommé `$prefix/share/anjuta/properties/styles.properties`. Il utilise des propriétés communes définies par Anjuta dans le fichier `$home/.config/anjuta/scintilla/editor-style.properties`.

#### Repliement du code

Anjuta peut afficher les replis de code pour les fichiers source des langages structurés par bloc (tel que C, C++, Pascal et Java). Tous les blocs de code dans un fichier source peuvent être repliés ou dépliés en cliquant sur les points de replis dans la marge des replis de code de la fenêtre Éditeur (habituellement un symbole +/- ou une flèche vers le haut/bas). Ces points de repli apparaissent automatiquement pour les fichiers source qui utilisent des blocs de code.

Le repli du code est particulièrement utile lorsque vous éditez des grands fichiers source contenant des milliers de lignes. Une fois que les plis sont fermés, un document apparaît plus petit ce qui facilite la navigation et l'édition du fichier.

Veuillez noter que le repli de code et les guides d'éditeurs ne sont disponibles qu'avec l'éditeur basé sur Scintilla.

#### Mise en forme automatique du code source

Anjuta peut indenter automatiquement (mise en forme automatique) les fichiers d'en-têtes ou les sources C ou C++. Cela donne un aspect clair au code source, augmente la lisibilité, réduit la probabilité d'erreurs de syntaxe et surtout fait gagner du temps. Pour indenter automatiquement le fichier source actuel, choisissez Édition Indentation automatique dans la barre de menu. Vous pouvez modifier le style du format en personnalisant les choix dans les préférences.

### L'analyseur des symboles

Vous pouvez naviguer dans les fichiers source C et C++ et les fichiers d'en-têtes en utilisant les étiquettes dans les fichiers. Une étiquette (ou un symbole) fait référence à une entité nommée telle qu'une définition de fonction, une structure ou une macro. Anjuta scrute les étiquettes disponibles dans les fichiers source C et C++ et les fichiers d'en-têtes ouverts.

Anjuta scrute automatiquement les étiquettes dans tous les fichiers source et les fichiers d'en-têtes des projets ouverts. Vous pouvez aller à n'importe quelle définition de fonction, de structure, de classe ou d'autres étiquettes sans avoir à ouvrir manuellement le fichier la contenant. Vous n'avez même pas besoin de savoir dans quel fichier se trouve l'étiquette. L'analyseur des symboles affiche la liste de tous les symboles disponibles dans le projet.

#### Analyse des symboles

Analyse des symboles

#### Synchronisation des étiquettes

Vous n'avez pas à vous préoccuper de la synchronisation ou de la mise à jour de la base de données des étiquettes. Anjuta se charge de tout. Vous avez juste à décider à quelle étiquette vous désirez vous rendre !

### Recherche et remplacement de texte dans les fichiers

#### Recherche

Pour rechercher une chaîne ou une expression régulière dans le fichier actuel, choisissez Édition Rechercher Rechercher ou tapez CtrlAltF. Cela ouvre la boîte de dialogue Rechercher.

Utiliser la zone de texte pour indiquer la chaîne que vous recherchez et indiquez si c'est une chaîne normale ou une expression régulière. Vous pouvez également indiquer la direction de la recherche, si la recherche est sensible à la casse ou pas et la portée de la recherche. Cliquez sur Rechercher pour lancer la recherche.

Si la recherche est fructueuse, Anjuta se rendra au texte correspondant ou réalisera une autre action (selon l'action de recherche que vous avez choisie dans l'onglet Cible de la recherche). Si la recherche est infructueuse, Anjuta affiche un message indiquant que le texte recherché n'a pas été trouvé.

Si vous voulez rechercher à nouveau, cliquez à nouveau sur le bouton Rechercher ou tapez CtrlG. Cela recherche la prochaine correspondance (utilisez MajCtrlG pour la correspondance précédente). Vous pouvez même changer le texte recherché dans ce cas, saisissez tout simplement la nouvelle chaîne dans la zone de texte Rechercher l'expression de la boîte de dialogue de recherche.

##### Boîte de dialogue de recherche de texte

Pour mettre fin à une recherche trop longue, appuyez sur le bouton Arrêter.

#### Spécification de la portée de la recherche

Dans l'onglet Cible de la recherche, définissez la portée de la recherche et l'action à réaliser en cas de recherche fructueuse.

Vous pouvez définir le nombre maximum d'actions à réaliser.

##### Boîte de dialogue cible de la recherche

Vous pouvez choisir l'emplacement de la recherche.

##### Choix de l'emplacement de la cible de la recherche

##### Recherche dans des fichiers

Pour rechercher du texte dans votre projet, positionnez Rechercher dans à Tous les fichiers du projet.

Dans l'onglet Recherche d'expression, saisissez le texte recherché et indiquez vos options de recherche, telles que les options Sensible à la casse ou Correspondance sur les mots entiers. Cliquez sur Rechercher pour lancer la recherche.

Pour rechercher du texte dans un ensemble de fichiers, positionnez Rechercher dans à Indiquer les motifs de fichiers. Définissez les paramètres de la recherche. Cliquez sur Rechercher pour lancer la recherche.

###### Recherche de motifs de fichiers

#### Spécification des actions de recherche

Vous pouvez choisir l'action à réaliser lorsqu'une recherche aboutit.

En fonction des choix précédents (Recherche dans, Direction de recherche, etc.), il se peut que des actions soient indisponibles.

##### Choix de l'action sur la cible de la recherche

#### Remplacement

La recherche et le remplacement se font de manière similaire à la recherche de texte à part le fait que vous indiquez également le texte de remplacement dans la zone de texte Remplacer par et que vous indiquez également si vous désirez ou pas être consulté avant chaque remplacement (Remplacer la première correspondance ou Remplacer toutes les correspondances).

##### Remplacement

Choisissez Remplacer pour remplacer le texte correspondant ou Suivant pour aller à la prochaine correspondance.

#### Paramètres de la recherche

Vous pouvez également enregistrer les options de la recherche.

L'élément mis en surbrillance en rouge est celui qui est actif. L'élément par défaut indique les paramètres de la recherche qui sont chargés lorsque Anjuta démarre.

##### Boîte de dialogue paramètre de la recherche

### Impression d'un fichier

Vous pouvez afficher un aperçu avant impression en choisissant Fichier Aperçu avant impression. Cela va traiter le fichier actuel et afficher un aperçu de l'impression. Le code source qui est mis en surbrillance dans l'éditeur, est également mis en valeur de la même manière dans l'aperçu (et l'impression qui en découle). L'onglet Impression dans les préférences de greffon de l'éditeur contient des options supplémentaires qui vous permettent d'imprimer les numéros de ligne, d'activer la césure des lignes et/ou d'ajouter un en-tête de page.

#### Aperçu avant impression d'un fichier C

Aperçu avant impression

#### Préférences de l'impression

Préférences de l'impression

Lorsque vous êtes prêt à imprimer et satisfait par l'aperçu, choisissez Fichier Imprimer ou Imprimer dans la fenêtre de l'aperçu avant impression. Cela affiche la boîte de dialogue d'impression comme montrer ci-dessous. Choisissez les paramètres d'imprimante appropriés et cliquez sur Imprimer pour imprimer le fichier.

Vous pouvez également choisir une orientation de page paysage ou portrait, la taille du papier, l'orientation de la page et le type de papier. Faites des réglages en correspondance avec votre imprimante sinon il se peut que l'impression ne soit pas correcte.

#### Boîte de dialogue impression

Boîte de dialogue impression

## Gestion de projet

Anjuta possède un puissant greffon de gestion de projet qui est capable d'ouvrir la plupart des projets basés sur automake/autoconf. Il se peut qu'il échoue pour certains projets configurés de manière étrange mais si le projet utilise automake/autoconf de manière standard, cela devrait fonctionner.

La chose clé est que Anjuta n'enregistre aucune information en plus de ce qui existe déjà dans la structure du projet. Cela signifie qu'il n'existe aucune donnée séparée concernant le projet géré par Anjuta et que tous les travaux sur le projet sont effectués directement dans la structure du projet. Cela permet de maintenir et de développer un projet en dehors d'Anjuta sans avoir à le convertir, dans un sens ou dans un autre, d'un format spécifique à Anjuta. D'un point de vue technique, puisque les projets Anjuta ne sont que des projets automake, le développement mixte (que les gens utilisent Anjuta ou pas) ou les allers et retours entre Anjuta et d'autres outils sont possibles sans aucune interférence.

### Création d'un nouveau projet

#### Création d'un projet à partir d'un modèle

Le greffon assistant de projet utilise un puissant outil de génération de modèle appelé autogen. Tous les nouveaux projets sont créés à partir de modèles écrits en utilisant la syntaxe autogen. L'assistant de projet vous permet de créer de nouveaux projets à partir d'un choix parmi des modèles de projet. La sélection se fait parmi des projets simples génériques, plats (sans sous-dossier), GTK+, GNOME, Java, Python, etc. De nouveaux modèles peuvent être facilement téléchargés et installés puisque chaque modèle n'est qu'une collection de fichiers textes.

Pour créer un projet, choisissez l'élément de menu FichierNouveau Projet pour lancer l'assistant d'application. Lisez attentivement la première page. Cliquez sur Suivant pour poursuivre.

Choisissez le type d'application que vous voulez créer à la seconde page. Cliquez sur Suivant pour poursuivre.

Aux pages suivantes, saisissez les informations nécessaires pour votre projet. Vous pouvez modifier ces réglages plus tard, mais il est conseillé qu'ils soient corrects au départ afin de maintenir l'intégrité du projet. Les espaces ou tous caractères non-alphanumériques sauf le souligné (_) et le tiret (-) sont interdits dans la plupart des zones de saisi de texte qui suivent (sauf peut-être la zone Auteur).

Vous pouvez également indiquer si votre projet prendra en charge l'internationalisation en utilisant gettext (consultez la page d'information sur gettext pour plus de détails). Cela fournit une prise en charge polyglotte du projet pour différents langages tels que l'anglais, le français et le néerlandais. Les autres options servent au paramétrage de l'apparition d'un commentaire sur le statut du copyright GNU au début de chaque fichier et pour activer si nécessaire les informations de menu du bureau GNOME. La prise en charge des bibliothèques partagées vous permet d'ajouter les modules des bibliothèques partagées plus tard. Si vous prévoyez d'avoir des bibliothèques dans votre projet, il est bon de l'activer. En fonction du type de projet créé, il se peut que Anjuta demande des informations supplémentaires.

La dernière étape consiste à vérifier les informations fournies. Cliquez sur Terminer pour lancer la génération du projet.

Une fois que le projet est généré, vous pouvez l'essayer en le construisant et en l'exécutant.

#### Importation de projets

La fonction d'importation de projets est utilisée pour importer un projet existant et le convertir en projet Anjuta. Lancez l'assistant d'importation de projet grâce au menu FichierNouveau Projet basé sur des sources existantes et suivez les instructions de l'assistant. Une fois le projet importé, il peut ensuite être ouvert dans Anjuta comme tout autre projet Anjuta.

La fonction d'importation de projet ne fonctionne correctement que si le projet existant utilise autoconf/automake ou, à la limite, un fichier Makefile.

### Chargement et enregistrement de projets

#### Chargement de projets

Pour ouvrir un projet, choisissez l'élément de menu Fichier Ouvrir…. Choisissez le fichier projet (`*.anjuta`) dans la boîte de dialogue et cliquez sur Ouvrir.

Si le projet a été ouvert récemment alors il sera listé dans le menu FichierOuvrir récents. Choisissez le nom de fichier du projet dans la liste pour ouvrir le projet.

Dès que le projet est ouvert, Anjuta se place en mode projet. La fenêtre projet comporte trois panneaux. Le premier est le panneau projet qui énumère les fichiers du projet classés par type. Le second est l'analyseur des symboles dont il a été question à la section Analyseur des symboles. Le troisième est l'afficheur des fichiers du projet et est plus ou moins semblable à un mini gestionnaire de fichiers. Dans l'afficheur de fichiers, tous les fichiers faisant partie de l'arborescence du projet sont visibles. Un clic droit sur l'un des fichiers fait apparaître un menu contextuel contenant les opérations concernant les fichiers.

Si le projet est également une structure CVS, les numéros correspondant aux révisions de fichier sont également affichés à droite du nom du fichier dans le panneau Afficheur de fichiers.

#### Enregistrement de projets

Le projet est automatiquement enregistré quand vous quittez parce que toutes les modifications sont réalisées directement dans la structure du projet.

### Structure du projet

Voici la fenêtre projet avec son menu contextuel (accessible par un clic droit).

#### Fenêtre projet

La fenêtre projet

La fenêtre projet affiche la hiérarchie automake du projet organisée en groupes de cibles. Les groupes correspondent aux répertoires de votre projet et les cibles aux cibles normales d'automake (à ne pas confondre avec les cibles make). La fenêtre projet possède actuellement deux parties : la partie du bas affiche la hiérarchie complète du projet et celle du haut affiche directement la liste des cibles importantes. Les cibles importantes comprennent les cibles d'exécutables et de bibliothèques. Cette vue les rend accessibles facilement. C'est particulièrement utile dans le cas de grands projets pour lesquels la hiérarchie peut être profonde et difficile à parcourir à partir de l'arborescence uniquement. Les cibles sont, à leur tour, composées de fichiers sources.

- Les groupes sont utilisés pour organiser de manière logique les cibles. Un projet peut contenir un nombre quelconque de groupes. Chaque groupe peut posséder des sous-groupes et des cibles. Dans les projets automake, les groupes sont juste des sous-répertoires dans le projet. Le groupe de premier niveau est toujours désigné par « / ».

- Les cibles sont les cibles construites dans le projet, telles que les programmes (binaires exécutables), les scripts, les bibliothèques et les données diverses. Toutes les cibles ne sont pas construites à partir de sources, certaines existent uniquement pour organiser les sources et par conséquent il se peut qu'elles n'existent pas physiquement (par ex. une cible de données diverses). Les cibles font parti des groupes. Consultez « Ajout de cibles » pour obtenir une liste complète des types de cible disponibles.

- Les fichiers source peuvent être utilisés pour construire les cibles, bien que certains fichiers ne fasse seulement parti de cibles. Ils ne peuvent exister que dans des cibles. Beaucoup de types de cible attendent certains types de fichiers source (par ex. les types de cible programmes et bibliothèques) mais certains peuvent accepter n'importe quels fichiers (par ex. une cible de données diverses).

Chaque groupe et cible du projet peut être configuré de la manière standard automake. Vous pouvez paramétrer les drapeaux du compilateur et de l'éditeur de liens directement pour chaque cible ou positionner des variables configure. Les groupes vous permettent de paramétrer une destination d'installation pour leurs cibles.

Tout comme le gestionnaire de fichier, la vue du gestionnaire de projet possède également des actions qui conviennent (accessibles à partir du menu contextuel) pour les fichiers source et les cibles.

De nombreux outils en ligne de commande sont disponibles pour maintenir et gérer un projet et chaque outil possède ses propres règles et possibilités spécifiques. Anjuta essaye d'automatiser la plupart des opérations courantes en utilisant des greffons. Cependant, il se peut qu'à l'occasion vous ayez quand même besoin de réaliser certaines opérations manuellement.

Vous pouvez modifier une structure de projet en utilisant un outil externe ou en modifiant à la main des fichiers du projet. Ce n'est pas grave que le projet soit chargé dans Anjuta ou pas. Anjuta se mettra à jour de toutes les modifications externes réalisées au projet.

### Groupes et cibles

#### Ajout de groupes

Pour ajouter un nouveau groupe (qui est un répertoire dans les projets basés sur automake) :

- choisissez Projet Ajouter un groupe pour faire apparaître une boîte de dialogue,

- choisissez le groupe dans lequel vous voulez ajouter un nouveau groupe,

- saisissez le nom du nouveau groupe et cliquez sur Ajouter.

Avec les projets automake, un nouveau répertoire portant le nom indiqué est créé dans le répertoire du groupe parent.

Vous pouvez également ajouter un nouveau groupe directement à partir de la fenêtre Projet. Faites un clic droit sur le groupe dans lequel vous voulez ajouter un nouveau groupe, puis choisissez Ajouter un groupe dans le menu contextuel.

#### Suppression de groupes

Pour supprimer un groupe :

- faites un clic droit sur le groupe dans la vue du gestionnaire de projet,

- choisissez Retirer dans le menu contextuel.

La cible et les sources associées à ce groupe seront également retirées du projet (elles ne sont pas pour autant supprimées du système de fichiers, vous pouvez les ajouter à nouveau au projet plus tard si vous le voulez).

#### Ajout de cibles

Pour ajouter une nouvelle cible :

- choisissez Projet Ajouter une cible pour faire apparaître une boîte de dialogue,

- choisissez le groupe dans lequel vous voulez ajouter la cible,

- sélectionnez le type de cible,

- saisissez le nom de la nouvelle cible et cliquez sur Ajouter.

Vous pouvez également ajouter une nouvelle cible directement à partir de la fenêtre Projet. Faites un clic droit sur le groupe dans lequel vous voulez ajouter la cible, puis choisissez Ajouter une cible dans le menu contextuel.

Les noms des cibles doivent normalement avoir des préfixes et des suffixes standards qui dépendent du type de cible. Anjuta vous préviendra si un nom n'est pas valide et il se peut qu'il vous donne un exemple de nom valide.

Voici les différents types de cibles pour les projets automake :

- Le type de cible Programme sert aux binaires exécutables. Choisissez ce type si vous voulez ajouter un exécutable au projet. Par défaut, toutes les cibles programmes sont installées dans le répertoire standard des exécutables, par ex. /usr/bin ou /usr/local/bin. Vous pouvez contourner cela en spécifiant un répertoire d'installation différent dans les propriétés du groupe contenant la cible.

- Le type de cible Bibliothèque partagée sert aux bibliothèques partagées ou dynamiques. Choisissez ce type si vous voulez ajouter une bibliothèque partagée au projet. Par défaut, toutes les bibliothèques partagées sont installées dans le répertoire standard des bibliothèques, par ex. /usr/lib ou /usr/local/lib. Vous pouvez contourner cela en spécifiant un répertoire d'installation différent dans les propriétés du groupe contenant la cible.

- Le type de cible Bibliothèque statique sert aux bibliothèques statiques. Choisissez ce type si vous voulez ajouter une bibliothèque statique au projet. Par défaut, toutes les bibliothèques statiques sont installées dans le répertoire standard des bibliothèques, par ex. /usr/lib ou /usr/local/lib. Vous pouvez contourner cela en spécifiant un répertoire d'installation différent dans les propriétés du groupe contenant la cible.

- Le type de cible Module Java sert aux modules Java. Choisissez ce type si vous voulez regrouper des sources Java dans un module. Vous devez préciser un répertoire d'installation pour cette cible dans lequel les fichiers .class seront installés. Cela peut être paramétré dans les propriétés du groupe contenant la cible.

  Il ne peut y avoir qu'un seul module Java dans un groupe. Il s'agit d'une restriction imposé par automake. Veuillez lire la page d'information sur automake pour plus de détails.

- Le type de cible Module Python sert aux modules Python. Choisissez ce type si vous voulez regrouper des sources Python dans un module. Vous devez préciser un répertoire d'installation pour cette cible dans lequel les fichiers sources seront installés. Cela peut être paramétré dans les propriétés du groupe contenant la cible.

- Le type de cible Scripts sert à regrouper des scripts. Ils seront installés dans le répertoire standard des exécutables.

- Le type de cible Données diverses sert à regrouper de simples fichiers dans un projet. Vous devez préciser un répertoire d'installation dans les propriétés du groupe.

- Le type de cible Fichiers d'en-tête sert à regrouper les fichiers d'en-tête C/C++ qui doivent être installés sur un système (par exemple ceux faisant partie d'une bibliothèque API). (Pour les fichiers d'en-tête qui n'ont pas besoin d'être installés, insérez-les dans la cible Programme parmi les fichiers sources). Les fichiers d'en-tête sont installés dans le répertoire standard « include » à moins qu'un chemin d'installation ne soit spécifié dans les propriétés du groupe.

- Les types de cible Documentation Man et Documentation Info servent à regrouper la documentation man et info respectivement. Par défaut, les fichiers de documentation sont installées dans les répertoires standards d'installation.

#### Suppression de cibles

Pour supprimer une cible :

- faites un clic droit sur la cible dans la vue du gestionnaire de projet,

- choisissez Retirer dans le menu contextuel.

Les sources associées aux cibles sont également retirées du projet (elles ne sont pas pour autant supprimer du système de fichiers).

### Ajout et retrait de fichiers

#### Ajout de fichiers source

Choisissez le menu Projet Ajouter un fichier source. Dans la boîte de dialogue, choisissez la cible dans laquelle le fichier doit être ajouter et le fichier lui-même. Vous pouvez ajouter plusieurs fichiers à la fois. Pour cela, sélectionnez plusieurs fichiers dans la boîte de dialogue en utilisant soit la touche Maj soit la touche Ctrl, puis cliquez sur Ajouter pour ajouter les fichiers au projet.

Par défaut, le fichier actuel de l'éditeur est présélectionné dans la boîte de dialogue afin d'être ajouté. Une autre façon simple d'ajouter un fichier est de faire un clic droit sur celui-ci dans le Gestionnaire de fichiers et de choisir Ajouter au projet dans le menu contextuel.

Si le fichier que vous choisissez fait déjà parti du projet, Anjuta ne le rajoute pas et vous prévient que le fichier a déjà été ajouté.

Si le fichier que vous choisissez n'est pas dans le répertoire du projet, vous devrez confirmer la copie du fichier dans le répertoire cible. Anjuta ne peut pas ajouter des fichiers qui ne sont pas dans le répertoire du projet sans les copier.

#### Retrait de fichiers source

Pour retirer un fichier du projet, faites un clic droit sur le fichier à retirer dans la Fenêtre du projet et choisissez Retirer dans le menu contextuel.

Un boîte de dialogue de confirmation apparaît et le fichier est retiré du projet.

##### Le fichier n'est pas supprimé !

Le fichier n'est pas supprimé du système de fichiers. Il existe toujours et vous pourrez à nouveau l'ajouter au projet si vous le souhaitez. Le fichier est seulement retirer de la liste du projet et il ne prendra part à aucune opération du projet telle que compilation, construction ou distribution.

### Configuration de projet

La configuration de projet implique le paramétrage correct des drapeaux de construction pour les cibles, les groupes et pour le projet lui-même. Vous pouvez configurer ces drapeaux dans les boîtes de dialogues respectives concernant les propriétés.

Vous pouvez utiliser librement les variables autoconf et automake qui sont définies automatiquement pour le projet pendant la configuration. En dehors de ces variables automatiquement définies, vous pouvez également définir vos propres variables en consultant Propriétés du projet, et les utiliser dans des définitions de propriétés. Cela facilite la mise à jour des drapeaux plus tard, particulièrement lorsqu'une variable est utilisée dans plusieurs cibles.

Quelques-unes des nombreuses variables habituelles sont énumérées ici. Pour obtenir une liste complète, consultez la documentation info d'automake.

- $(prefix) : le préfixe d'installation. Le projet est installé dans diverses sous-répertoires sous ce préfixe. Sa valeur par défaut est /usr/local.

- $(bindir) : le répertoire d'installation pour les exécutables binaires. Toutes vos cibles exécutables et vos scripts sont installés dans ce répertoire. Sa valeur par défaut est $(prefix)/bin.

- $(libdir) : le répertoire d'installation pour les bibliothèques. Toutes vos bibliothèques (partagées et statiques) sont installées dans ce répertoire ou dans un sous-répertoire. Sa valeur par défaut est $(prefix)/lib.

- $(module_CFLAGS) et $(module_LIBS) : ces drapeaux sont paramétrés par configure pour les paquets dont votre projet dépend. Les paquets utilisés par le projet sont paramétrés comme dans Propriétés du projet. 'module' est un groupe de paquets que vous spécifiez dans les propriétés du projet comme décrit ci-dessous.

#### Propriétés du projet

La boîte de dialogue Propriétés du projet ne peut être ouverte qu'en utilisant le menu Projet Propriétés dans la barre de menu principale. Vous pouvez :

- Définir le nom, la version et l'URL du projet dans l'onglet Général. Des variables configure peuvent être utilisées dans ces champs. L'URL sert pour les rapports d'anomalies du projet.

- Ajouter ou supprimer des dépendances à votre projet dans l'onglet Paquets. Voir ci-dessous pour plus de détails.

- Créer d'autres variables configure dans l'onglet Variables afin de les utiliser dans des propriétés de groupe ou de cible.

Les dépendances sont des paquets externes que le projet utilise, elles sont donc requises pour la construction. Seuls les paquets installés en utilisant pkg-config peuvent être ajoutés à partir de cette interface. Pour les autres, le fichier configure.ac peut être modifier manuellement.

##### Boîte de dialogue Propriétés du projet

Boîte de dialogue Propriétés du projet

Les dépendances de paquets externes sont regroupés dans des modules afin que leurs drapeaux de construction combinés puissent être ajouter de manière pratique aux différentes cibles. Les modules ne sont que des groupes arbitraires de paquets et peuvent être nommés de n'importe quelle façon (seuls les caractères alphanumériques et _ sont autorisés dans les noms de modules). Habituellement, ils suivent le nom des cibles dans lesquels ils sont utilisés. Par conséquent, pour les petits projets avec une seule cible, un seul module pour contenir toutes les dépendances est suffisant.

Chaque paquet exporte un ensemble de drapeaux du compilateur et de bibliothèques. Ils sont regroupés ensemble pour tous les paquets d'un module et des variables configure $(module_CFLAGS) et $(module_LIBS) sont définies. Ces variables peuvent être utilisées dans les Propriétés de groupe et Propriétés de cible.

Pour ajouter une dépendance de paquet :

- Choisissez Projet Propriétés pour afficher la boîte de dialogue Propriétés du projet.

- Choisissez l'onglet Paquets pour faire apparaître la page des paquets.

- Choisissez le module auquel ajouter le paquet. S'il n'y a pas encore de module de créé ou aucun module approprié, créez-le en cliquant sur Ajouter un module. Donner un nom judicieux au module, de préférence en MAJUSCULE pour être en concordance avec les autres variables configure (n'utilisez que des caractères alphanumériques et « _ ») et tapez sur Entrée pour le créer.

- Cliquez sur Ajouter un paquet pour faire apparaître la boîte de dialogue de sélection de paquet.

- Choisissez le paquet à ajouter et cliquez sur Ajouter.

- Cliquez sur Fermer pour fermer la boîte de dialogue des propriétés.

#### Propriétés de groupe

Pour modifier les propriétés d'un groupe, double-cliquez sur le groupe dans la fenêtre Projet pour ouvrir la boîte de dialogue Propriétés du groupe (vous pouvez aussi cliquer avec le bouton droit sur le groupe et choisir Propriétés dans le menu contextuel).

##### Boîte de dialogue propriétés de groupe

Boîte de dialogue propriétés de groupe

L'ensemble des propriétés d'un groupe s'applique à toutes les cibles qu'il contient. Tous les drapeaux de compilation et d'édition des liens définis pour un groupe feront automatiquement parti des cibles qu'il contient (en plus des propriétés individuelles de chaque cible). Les champs suivants sont disponibles dans la boîte de dialogue Propriétés.

- Includes : Définissez ici vos répertoires include pour vos cibles C et C++. Vous devez fournir les options include complètes du compilateur ici, par ex. -I/usr/include/blabla. Les chemins include sont utilisés pour chercher les fichiers d'en-tête inclus dans les fichiers source (vous pouvez également ajouter ici d'autres drapeaux de compilation mais il est préférable de les définir dans leur champ drapeaux de compilation comme indiqué ci-dessous).

- Drapeaux du compilateur : Définissez ici vos drapeaux spécifiques du compilateur. Il y a différents champs pour différentes catégories de compilateur. Les drapeaux qui peuvent être définis ici dépendent du compilateur actuellement utilisé. Le compilateur par défaut utilisé pour le C/C++ est gcc/g++ (le compilateur C GNU). Consultez la documentation info gcc pour plus de détails.

- Répertoires d'installation : La boîte de dialogue affiche un champ pour chaque cible du groupe qui nécessite un répertoire d'installation. Définissez chaque répertoire d'installation relativement à l'une des nombreuses variables de répertoire automake telles que $(prefix), $(bindir), $(libdir) ou $(datadir).

#### Propriétés de cible

Toutes propriétés définies pour une cible ne s'applique qu'à cette cible. Une cible hérite également des propriétés du groupe auquel elle appartient.

Pour définir des propriétés de cible, double-cliquez sur la cible dans la fenêtre Projet pour ouvrir la boîte de dialogue Propriétés de la cible (vous pouvez aussi cliquer avec le bouton droit sur la cible et choisir Propriétés dans le menu contextuel).

##### Boîte de dialogue propriétés de cible

Boîte de dialogue propriétés de cible

Vous pouvez ajouter ici les modules que vous avez ajouté à Propriétés du projet pour une cible spécifique. Pour activer le module, cochez la case en face du nom du module. Cela ajoutera automatiquement les chemins include et les drapeaux du compilateur à cette cible et vous permettra d'utiliser le module dans cette cible.

##### Options de cible avancées

Les champs suivants sont disponibles pour la configuration avancée de cible. Ils apparaissent en cliquant sur le bouton Avancé... de la boîte de dialogue propriétés de cible

###### Boîte de dialogue propriétés de cible

Boîte de dialogue propriétés de cible

- Paramètres du compilateur : définissez vos drapeaux spécifiques au compilateur. Il y a différents champs pour différentes catégories de compilateur. Les drapeaux qui peuvent être définis ici dépendent du compilateur actuellement utilisé. Le compilateur par défaut utilisé pour le C/C++ est gcc/g++ (le compilateur C GNU). Consultez la documentation info gcc pour plus de détails.

- Drapeaux de l'éditeur de liens : définissez les drapeaux de l'éditeur de liens qui doivent être utilisés au cours de l'édition de lien de la cible. Ces drapeaux ne s'appliquent qu'aux cibles de programmes et de bibliothèques. Consultez la documentation info ld pour connaître les options disponibles de l'éditeur de liens.

- Bibliothèques : définissez les bibliothèques dont la cible dépend.

## Construction

Anjute manipule les projets autotools. Il est capable de se débrouiller avec les autres types de projets, tels que les projets utilisant un Makefile écrit par un utilisateur mais l'interface de construction actuelle est ciblée vers les projets autotools. Une certaine connaissance de ceux-ci est utile pour mieux comprendre comment un projet est construit.

Un projet autotools est construit en trois étapes :

1. Génération

2. Configuration

3. Construction

La construction est l'étape principale pendant laquelle tous les fichiers cible sont générés à partir des fichiers source. Elle peut être divisée en deux sous-phases : compilation et édition des liens. Pendant la phase de compilation chaque fichier objet est généré à partir du fichier source correspondant. Par exemple, un fichier source `bonjour.c` génère `bonjour.o` après compilation. Normalement, vous n'avez pas à vous soucier de ces fichiers objets, voyez-les comme des fichiers intermédiaires. Pendant la phase d'édition des liens, tous les fichiers objets et les bibliothèques sont liés ensemble pour créer l'exécutable final. Certains langages de programmation ne nécessite pas de phase compilation et édition des liens. De plus, l'étape construction peut être utilisée pour générer d'autres fichiers, comme la documentation qui ne nécessite pas de telles phases.

La configuration est l'étape pendant laquelle l'arborescence des sources est adaptée à votre système. Les projets autotools peuvent être construit sur un grand nombre de systèmes utilisant des compilateurs différents et possédant des fonctions de bibliothèques différentes. Cette étape lance un script appelé `configure` qui vérifie les caractéristiques diverses de votre système et crée certains des fichiers nécessaires pour réaliser la construction (tels que les `Makefile` et les `config.h`). Cette étape est également utilisée pour sélectionner les options de construction ; par exemple une option de construction peut désactiver l'optimisation afin de rendre plus facile le débogage ou désactiver des parties experimentales d'un programme.

La génération est l'étape pendant laquelle le fichier script `configure` et d'autres fichiers en relation sont créés. Le script `configure` utilisé ci-dessus doit être capable de s'exécuter sur des systèmes différents et vérifier beaucoup de choses. Il serait assez difficile de l'écrire à la main. De plus autotools applique des règles d'organisation des projets telles que la présence obligatoire de certains fichiers : `NEWS` et `COPYING` par exemple. Il comprend plusieurs outils pour créer les fichiers nécessaires à partir de fichiers plus simples écrit par le développeur tels que `configure.in` (ou `configure.ac`) et `Makefile.am`. Tous ces outils sont ordinairement lancés par un script appelé `autogen.sh` dans le répertoire du projet. Cette étape n'est utilise que pour un développeur (quelqu'un qui modifie les sources) car le script `configure` ne dépends que des fichiers sources et est distribué dans le paquet du projet. Notez que les fichiers makefile créés par configure comprennent des règles pour régénérer automatiquement le projet si nécessaire, il n'est donc pas nécessaire de le relancer directement.

Lisez les pages d'informations sur automake et autoconf pour plus de détails sur la manière dont cela fonctionne.

### Génération et configuration

#### Configuration d'un projet

Vous devez lancer cette étape avant d'être capable de construire votre projet. Elle est habituellement lancée une seule fois au début de la première construction ; par exemple, juste après avoir extrait l'archive tarball d'une distribution d'un projet. Après cela, la configuration est automatiquement gérée par les processus de construction ultérieurs. SI vous avez utilisé l'Assistant d'application pour créer l'application alors vous n'avez pas à lancer cette étape séparément : l'assistant l'exécute au moment du processus de génération du projet.

Il n'y a aucune obligation de lancer cette étape une seule fois. Elle peut être lancée n'importe quand, habituellement quand les options de configurations doivent être modifiées. Une chose à noter est que si le fichier `config.h` dans le répertoire de plus haut niveau est modifié, un nouveau lancement de `configure` ne l'écrasera pas.

Les deux étapes génération et configuration sont lancées à partir d'un seul élément de menu : Construire Configurer le projet…. Ce menu fait apparaître une boîte de dialogue dans laquelle vous pouvez choisir :

- Si vous voulez lancer l'étape de génération ou pas

  L'étape de génération doit être exécutée une fois au début du projet ; elle est donc automatiquement gérée par le processus de construction. Vous pouvez forcer son exécution en cochant la case Régénérer le projet ; vous devrez peut-être faire cela si vous rencontrez des problèmes au cours de la construction d'un projet (par ex. si vous obtenez des erreurs de construction après avoir modifié beaucoup de fichiers de construction).

- Le nom de la configuration

  Ce nom est utilisé pour se référer à chaque configuration. Certaines configurations (défaut, débogage, optimisée) sont déjà définies par défaut. Une configuration comprend un répertoire de construction et des options de configuration.

- Le répertoire de construction

  C'est le nom du répertoire de construction. Dans la configuration par défaut, c'est le même répertoire que le répertoire des sources mais autotools sait gérer la construction dans un autre répertoire.

  Chaque configuration doit avoir un répertoire de construction différent donc si une configuration utilise le répertoire des sources, vous ne pouvez pas avoir d'autres configurations en même temps. Vous devez lancer Construire Enlever la configuration et supprimer la configuration qui utilise le répertoire source avant d'ajouter une nouvelle configuration.

- Les options de configuration

  Ces options sont transmises au script `configure`. Certaines sont standards, telles que --prefix et CFLAGS ; d'autres dépendent du projet. Vous pouvez obtenir une liste des options de configurations autorisées en lançant le script `configure` avec l'argument `--help`.

#### Sélection d'une configuration

Si vous avez créé des configurations différentes, vous pouvez choisir celle qui est active en la sélectionnant dans Construire Sélectionner la configuration.

#### Effacement d'une configuration

Pour nettoyer le projet et le laisser dans un état qui nécessite de relancer l'étape de configuration, choisissez Construire Enlever la configuration. Cela lance la commande `make distclean` et supprime plus de fichiers que Nettoyer le projet. En d'autres termes, cela laisse le projet dans l'état où il serait s'il venait d'être extrait d'une archive tarball de distribution. Notez que cela n'efface pas le répertoire de la configuration, faites-le vous même si vous souhaitez.

### Compilation et construction

#### Compilation d'un fichier

Dans un projet, des fichiers sources individuels peuvent être compilés séparément en fichiers objets (fichiers `*.o`). Bien que vous n'ayez pas à vous occuper de ces fichiers objets, de temps en temps il est pratique de compiler un fichier d'abord (pour vérifier qu'il n'y a pas d'erreurs de syntaxe). La construction d'un projet complet peut prendre beaucoup de temps, particulièrement dans le cas d'applications plus grandes et plus complexes. Par conséquent, vous ferez probablement beaucoup d'itérations édition/compilation pendant le développement d'un projet.

Pour compiler un fichier, choisissez le menu Construire Compiler ou pressez F11. Cela compile le fichier actif.

#### Construction d'un exécutable

Anjuta ne possède pas de commande d'édition de liens indépendante tout simplement car elle n'est pas nécessaire. Le processus de construction compile tous les fichiers sources et fait l'édition des liens avec les bibliothèques nécessaires. La commande de construction ne recompile pas les fichiers qui sont déjà à jour (cela s'appelle la vérification des dépendances). Si vous avez déjà construit le projet et qu'aucun fichier dépendant n'a été modifié, même l'étape d'édition des liens sera sautée.

Comment la vérification des dépendances influence-t'elle le développement d'un projet ? Si vous avez modifié un fichier alors tous les fichiers sources qui dépendent du fichier modifié sont recompilés. La dépendance de tous les fichiers (pas seulement les fichiers objets et les exécutables) du projet est vérifiée pendant le processus de construction. Si un fichier particulier dépend d'un autre fichier qui a été modifié, alors ce fichier est régénéré.

Imaginez comment serait votre vie (de programmeur) si la vérification des dépendances n'existait pas ? Si vous ne pouvez pas encore répondre maintenant, vous trouverez la réponse lorsque vous commencerez à développer des gros projets !

Construire Construire construit tous les fichiers dans le répertoire du fichier actif actuel.

Construire Construire le projet construit l'ensemble du projet — tous les sous-répertoires sont construits les uns après les autres.

### Autres opérations

#### Création d'un paquet de distribution

Pour construire une archive tarball de distribution du projet, choisissez Construire Construire l'archive tarball. Cela va créer une archive tarball (`*.tar.gz`) et la placer dans le répertoire de plus haut niveau du projet. Copiez le fichier dans un endroit sûr pour la distribution.

#### Installation d'un projet

Choisir le menu Construire Installer installe l'application générée sur votre système.

##### Installation dans le système

Vous devez être connecté en tant que root pour réaliser une installation dans le système. Notez également que pour qu'une application GNOME utilise les fichiers pixmap du projet, elle doit être installée en tant qu'application système. Sinon lorsque l'application est exécutée dans votre projet, il y aura beaucoup d'erreurs « pixmap not found ». Vous pouvez configurer Anjuta pour utiliser la commande `sudo` ou `su` avant d'installer le projet dans les préférences de construction.

#### Nettoyage

Cela supprime tous les fichiers générés par le processus de construction, incluant les fichiers objets (fichiers `*.o`) et les exécutables. Cela peut être appliqué à un répertoire ou à tout le projet.

Choisissez le menu Construire Nettoyer le projet pour nettoyer tous les répertoires du projet.

Choisissez le menu Construire Nettoyer pour nettoyer seulement le répertoire du fichier actif actuel.

## Débogage

Déboguer est humain. Réparer l'anomalie est divin...

L'aspect humain est le sujet de cette partie. L'aspect divin dépend de vous !

Lorsqu'un programme ne se comporte pas de la manière dont il est supposé le faire, on dit que le programme contient un bogue. Un bogue n'est pas une erreur de compilation, les erreurs de compilation sont relativement facile à résoudre parce que le compilateur vous indique où se trouve les problèmes. Au contraire, les bogues sont des erreurs qui surviennent pendant l'exécution d'un programme et ils peuvent être difficiles (parfois très difficiles !) à détecter.

Tous les programmes que l'on pense sans bogue ne sont jamais complètement sans bogue. Tout ce que vous pouvez essayer de faire est de diminuer le nombre de bogues qu'ils contiennent. Le processus de suppression de bogues s'appelle le débogage et l'outil utilisé pour déboguer s'appelle le débogueur. Anjuta fournit un environnement très agrèable et très puissant (en fait, une interface graphique du programme gdb, un outil en ligne de commande très puissant et standard sous Linux).

Un débogueur suit les traces et piste l'exécution du programme et permet d'inspecter les informations nécessaires pour étudier l'exécution du programme.

### Début et fin

Le débogueur est toujours démarré avec un programme chargé. Il y a deux manières de procéder :

- Lancement d'un exécutable

- Attachement à un processus

Presque toutes les fonctionnalités de Anjuta sont apportées par un greffon. Si vous ne pouvez voir les menus décrits ici, c'est que le greffon de débogage n'est pas chargé. Allez dans Édition PréférencesGénéralGreffons installés et vérifiez que le greffon de débogage est chargé. Il s'agit d'un greffon activable par l'utilisateur donc chargez ou déchargez-le si besoin.

#### Lancement d'un exécutable

Pour lancer un programme avec ou sans le débogueur, utilisez le même menu : choisissez Exécuter Exécuter pour lancer un programme sans le débogueur et Exécuter Déboguer le programme pour le lancer avec le débogueur.

Pour un meilleur usage du débogueur, il est fortement recommandé de construire votre programme avec les informations de débogage (-g pour gcc) et sans optimisation (-O0 pour gcc). Pour cela, sélectionnez la configuration débogage avant de construire le programme pour la première fois.

Vous pouvez choisir le programme à lancer et son environnement en utilisant le menu Exécuter Paramètres du programme…. Vous pouvez alors choisir :

- Le nom du programme que vous souhaitez déboguer

  Le menu déroulant de la zone de liste déroulante pour la cible est pré-remplie avec tous les exécutables du projet actuel. Mais vous pouvez aussi choisir un autre exécutable qui ne fait pas parti du projet. Le débogueur accepte également les exécutables libtool qui sont des scripts générés par libtool qui contiennent de vrais exécutables.

- Les paramètres en ligne de commande

- Le répertoire de travail

- Les variables d'environnement

  Les variables d'environnement affichées en gris clair sont les variables d'environnement actuelles. Vous pouvez ajouter, modifier ou supprimer des variables d'environnement ici.

  Pour déboguer Anjuta en utilisant Anjuta, vous pouvez utiliser un thème différent pour modifier l'apparence de l'instance en cours de débogage. Par exemple, vous pourriez ajouter « GTK2_RC_FILES=/usr/share/themes/Crux/gtk-2.0/gtkrc ».

- Si le programme doit être lancé dans un terminal ou pas. Dans ce cas, le greffon terminal d'Anjuta est utilisé.

#### Attachement à un processus

Il est également possible d'attacher un processus en cours d'exécution et de le déboguer en choisissant le menu Exécuter Déboguer le processus…. Une liste de tous les processus en cours d'exécution dans le système apparaît.

##### Boîte de dialogue Attacher au processus

Boîte de dialogue Attacher au processus

Choisissez le processus à attacher et cliquez sur Valider pour lancer le débogueur, attaché au processus sélectionné et l'arrêter.

Il n'est actuellement pas possible de charger l'information des symboles pour les processus attachés. Les symboles doivent être inclus dans le processus.

#### Arrêt du débogueur

Choisissez le menu Exécuter Arrêter le débogueur pour arrêter le débogueur. Le programme en cours de débogage est tué. Si le débogueur a été attaché à un processus en cours d'exécution, le débogueur se détache de celui-ci sans le tuer. Une boîte de confirmation apparaît si un programme est actuellement attaché ou lancé.

#### Ajout de répertoires source

Choisissez le menu Déboguer Ajouter des chemins de source… pour afficher une boîte de dialogue permettant d'ajouter ou de supprimer des répertoires sources.

La plupart des exécutables incluent les chemins complets des fichiers donc définir les répertoires contenant les fichiers sources n'est normalement pas nécessaire. Mais certains exécutables n'incluent que les noms des fichiers sans les chemins. Dans ce cas, le débogueur recherche les fichiers sources dans tous ces répertoires. L'ordre des répertoires peut être important si plusieurs fichiers possèdent le même nom, il est donc possible de le modifier en utilisant les boutons Monter et Descendre. La liste des répertoires est envoyée au débogueur au moment où il démarre. Si vous modifiez la liste, vous devez redémarrer le débogueur pour qu'il utilise la nouvelle liste.

### Exécution

L'exécution d'un programme dans un débogueur peut être contrôlée très finement. Le programme peut être exécuté pas à pas ou autorisé à continuer jusqu'à ce qu'il rencontre un point d'arrêt. Pouvoir exécuter de cette manière est essentiel pour le comportement du programme de recherche de bogues. Tout comme une session d'édition vidéo, le programme peut être exécuté au ralenti avec la possibilité d'aller en avant, de faire une pause, de s'arrêter, etc. Vous ne pouvez toutefois pas aller en arrière.

Les méthodes qui peuvent être utilisées pour exécuter un programme dans le débogueur sont décrites dans les sections suivantes. Ces commandes sont disponibles uniquement lorsque le programme est déjà lancé.

#### Avancement d'un pas (pas en avant)

Choisissez le menu Déboguer Pas en avant ou cliquez sur l'icône Pas en avant dans la barre d'outils du débogueur pour avancer d'un pas dans le programme.

Avancer d'un pas consiste à exécuter une seule instruction du programme (là où le programme a été interrompu) puis à retourner le contrôle. Si l'instruction qui est exécutée contient un ou plusieurs fonctions, le débogueur essaye d'entrer à l'intérieur des fonctions (dans l'ordre où les fonctions sont exécutées). Une fois que l'instruction est exécutée et que la main vous est rendue, vous pouvez étudier l'état de votre programme.

Si la fenêtre désassemblage possède le focus alors cette commande est sélectionnée, une seule instruction assembleur est exécutée.

#### Avancement sans entrer dans la fonction (avancer en sautant)

Choisissez le menu Déboguer Avancer en sautant ou cliquez sur l'icône Avancer en sautant dans la barre d'outils du débogueur pour avancer en sautant des instructions dans le programme.

Avancer en sautant est similaire à Pas en avant à part le fait que le débogueur ne rentre pas dans les fonctions de l'instruction en cours d'exécution. L'instruction est exécutée d'une seule traite.

Si la fenêtre désassemblage possède le focus lorsque cette commande est sélectionnée, une seule instruction assembleur est exécutée mais aucun arrêt n'est effectué si cette instruction est un appel de sous-programme.

Si une librairie dynamique est chargée pendant cette étape, le programme ne s'arrête pas à la fin de l'étape. Il continue de s'exécuter jusqu'à ce qu'il trouve un point d'arrêt ou que vous ne l'interrompiez.

#### Avancement pour sortir de la fonction actuelle

Choisissez le menu Déboguer Avancer pour sortir ou cliquez sur l'icône Avancer pour sortir dans la barre d'outils du débogueur pour sortir de la fonction actuelle dans le programme.

Avancer pour sortir exécute la fonction actuelle jusqu'à ce qu'il la quitte. Le programme s'arrête une fois qu'il est sorti de la fonction. Avancer pour sortir n'est pas vraiment une étape unique puisque cela n'exécute pas une seule instruction. La fonction complète est exécutée jusqu'à ce que la fonction retourne à la fonction appellante.

#### Exécution/Continuation

Choisissez le menu Déboguer Exécuter/Continuer ou cliquez sur l'icône Exécuter/Continuer dans la barre d'outils du débogueur pour poursuivre l'exécution du programme.

Cette option continue l'exécution du programme jusqu'à ce qu'un point d'arrêt soit atteint ou que le programme ne se termine.

#### Exécution jusqu'à

Choisissez le menu Déboguer Exécuter jusqu'au curseur ou cliquez sur l'icône Exécuter jusqu'au curseur dans la barre d'outils du débogueur pour exécuter le programme jusqu'à ce que la ligne contenant le curseur soit atteinte.

Cette option continue l'exécution du programme jusqu'à ce que la ligne (ou l'adresse si la fenêtre désassemblage possède le focus) qui contient le curseur soit atteinte.

#### Arrêt du programme

Lorsque le programme est en cours d'exécution et possède le contrôle, aucune tâche de débogage ne peut être réalisée. Pour obtenir le contrôle pendant que le programme s'exécute, choisissez le menu Déboguer Suspendre le programme ou cliquez sur l'icône Suspendre le programme dans la barre d'outils du débogueur. Cela interrompt le programme et rend la main au débogueur.

### Points d'arrêt

Au cours du débogage d'un programme, il est utile d'être capable d'interrompre l'exécution à un emplacement particulier afin que l'état du programme puisse être examiné à cet instant. Les points d'arrêt permettent cela. Des points d'arrêt peuvent être placés à différents emplacements dans un fichier source, puis le programme est lancé. Lorsqu'un point d'arrêt est rencontré, l'exécution du programme est suspendue, permettant l'évaluation d'expressions, l'inspection de variables, l'étude de la trace de la pile, etc.

#### Liste des points d'arrêt

La fenêtre contenant la liste des points d'arrêt peut être ouverte en choisissant Affichage Points d'arrêt

##### Fenêtre contenant la liste des points d'arrêt

Fenêtre contenant la liste des points d'arrêt

Cette fenêtre possède les colonnes suivantes :

Emplacement

  C'est la position du point d'arrêt dans le fichier source. Lorsque le point d'arrêt est défini par le débogueur, vous pouvez obtenir des informations supplémentaires telles que la fonction contenant le point d'arrêt.

Adresse

  Ce champ est rempli par l'adresse du point d'arrêt lorsqu'il est défini par le débogueur.

Type

  Cela affiche toujours « Point d'arrêt ». Cela sera utilisé dans une version future prenant en charge différents types de points d'arrêt.

Condition

  C'est la condition du point d'arrêt. Cela reste vide si aucune condition n'a été définie.

Nombre de passages

  Lorsque le débogueur n'est pas en fonctionnement, cette colonne affiche le nombre de passages sur le point d'arrêt ou zéro s'il n'est pas défini.

  Lorsque le débogueur est en fonctionnement, si le nombre de passages est nul, cette colonne affiche le nombre de fois où ce point d'arrêt a été atteint. Si le nombre de passages n'est pas nul, deux nombres sont affichés. Le nombre de passages est le deuxième nombre.

État

  C'est l'état du point d'arrêt. Il peut être

  - Suspendu : le point d'arrêt n'est pas actif dans votre programme.

  - Permanent : le point d'arrêt est actif (son numéro d'identification est fourni entre parenthèses).

  - Temporaire : le point d'arrêt est actif mais il sera supprimé s'il est atteint.

Tous les points d'arrêts sont conservés au cours d'une session Anjuta même s'ils correspondent à un emplacement non-existant. Dans ce cas, leurs états sont définis à suspendu. L'interface essaye de les définir à chaque fois que le programme est démarré ou qu'une nouvelle bibliothèque dynamique est chargée.

#### Ajout ou réglage de points d'arrêt

Choisissez le menu Déboguer Ajouter un point d'arrêt… ou Ajouter un point d'arrêt… dans le menu contextuel dans la liste des points d'arrêt pour ouvrir la boîte de dialogue Ajouter un point d'arrêt.

##### Boîte de dialogue Ajouter un point d'arrêt

Boîte de dialogue Ajouter un point d'arrêt

Saisissez l'emplacement et éventuellement la condition d'arrêt et le nombre de passages, puis cliquez sur Valider pour définir le point d'arrêt.

Emplacement

  Saisissez l'emplacement où le point d'arrêt doit être placé. Cela peut être spécifié selon l'un des formats suivants :

  1. Nom_du_fichier:Numéro_ligne

  2. Nom_de_la_fonction

  3. Fichier:Nom_de_la_fonction

  Le premier format est évident ; l'emplacement se réfère au numéro de ligne Numéro_ligne du fichier source Nom_du_fichier. Le second se réfère à la première ligne de la fonction Nom_de_la_fonction. Le troisième est identique au second mais cette notation est utilisée s'il y a plus d'une fonction portant le nom Nom_de_la_fonction dans le programme. Il est possible de les distinguer en fournissant le Nom_du_fichier ainsi la notation se réfère à la fonction Nom_de_la_fonction du fichier Fichier.

Condition

  Le paramètre Condition affiche une expression associée qui doit fournir une valeur booléenne, ce qui signifie que l'évaluation de l'expression doit donner comme résultat vrai (1) ou faux (0). Si le résultat de l'évaluation donne une valeur non booléenne, alors elle sera judicieusement convertie en type booléen.

  À chaque fois qu'un point d'arrêt est rencontré pendant l'exécution de votre programme, la condition d'arrêt est évaluée. Le débogueur stoppe l'exécution seulement si le résultat de l'évaluation donne vrai sinon il continue l'exécution comme s'il n'y avait pas de point d'arrêt.

  Si ce champ est vide, la valeur par défaut de la Condition est vraie. Le débogueur suspendra toujours l'exécution à l'emplacement du point d'arrêt.

Nombre de passages

  Le nombre de passages est une valeur entière (non signée) qui indique au débogueur le nombre de fois où il doit ignorer le point d'arrêt avant de le prendre en considération. Le nombre de passages possède une priorité supérieure à la condition d'arrêt. C'est seulement après que le nombre de passages a atteint zéro que le débogueur évalue la condition d'arrêt (si elle existe). S'il n'y en a pas, le débogueur interrompt l'exécution une fois que le nombre de passages a atteint le zéro.

  Si ce champ est vide, la valeur par défaut du nombre de passages est zéro. Le point d'arrêt sera pris en compte la première fois où il sera atteint.

Un point d'arrêt peut également être défini en sélectionnant une ligne dans l'éditeur et en choisissant le menu Déboguer Basculer le point d'arrêt dans le menu contextuel de l'éditeur ou en cliquant sur l'icône Basculer le point d'arrêt dans la barre d'outils du débogueur.

Des points d'arrêts peuvent être ajoutés même si le débogueur n'est pas lancé ou dans une bibliothèque dynamique qui n'est pas encore chargée. Mais ils ne peuvent pas être ajoutés lorsqu'un programme est lancé sous le contrôle du débogueur.

#### Modification des points d'arrêt

Vous pouvez modifier la condition et le nombre de passage en sélectionnant le point d'arrêt dans la liste des points d'arrêt et en cliquant Modifier le point d'arrêt dans le menu contextuel.

Modifiez les entrées selon vos souhaits et cliquez sur Valider pour soumettre les modifications.

#### Suppression des points d'arrêt

Sélectionnez le point d'arrêt dans la fenêtre contenant la liste des points d'arrêt et cliquez sur Supprimer le point d'arrêt pour le supprimer.

Un point d'arrêt existant peut également être supprimé en sélectionnant la ligne dans l'éditeur et en choisissant le menu Déboguer Basculer le point d'arrêt dans le menu contextuel de l'éditeur ou en cliquant sur l'icône Basculer le point d'arrêt dans la barre d'outils du débogueur.

Vous pouvez supprimer tous les points d'arrêt en cliquant sur Déboguer Enlever tous les points d'arrêt ou sur Enlever tous les points d'arrêt dans le menu contextuel de la liste des points d'arrêt.

#### Activation ou désactivation des points d'arrêt

Cliquez sur la colonne Activé de la fenêtre contenant la liste des points d'arrêt ou dans le menu contextuel sur Activer le point d'arrêt pour activer ou désactiver le point d'arrêt sélectionné. Le point d'arrêt sera activé ou désactivé en fonction de son état actuel.

Vous pouvez désactiver tous les points d'arrêt en cliquant sur Déboguer Désactiver tous les points d'arrêt ou sur Désactiver tous les points d'arrêt dans le menu contextuel de la liste des points d'arrêt.

### Expressions

#### Liste des variables locales

Lorsqu'un programme tourne sous le contrôle du débogueur, la fenêtre contenant la liste des variables locales peut être ouverte en choisissant le menu Affichage Variables locales.

Les variables locales du cadre actuel (la fonction actuelle où le contrôle du programme est présent) sont affichées dans la fenêtre contenant la liste des variables locales. Pendant l'exécution du programme (par ex. pendant un saut en avant) les variables locales sont mises à jour. Si la valeur d'une des variables a changé depuis l'étape précédente de débogage, sa valeur est mise en surbrillance en rouge. Les variables sont affichées sous forme arborescente pour une meilleure présentation.

##### Variables locales

Variables locales

La valeur d'une variable locale peut être modifiée en la sélectionnant et en cliquant dans la colonne Valeur.

gdb est de plus en plus souvent utilisé comme moteur de l'interface graphique. Il a été amélioré récemment dans ce domaine. Il est recommandé d'utiliser la dernière version (6.6) de gdb. Avec les anciennes versions, gdb peut planter lorsque l'interface demande un pointeur avec un valeur non valide (mais inutilisée).

#### Liste des expressions inspectées

L'inspection ou l'évaluation d'une expression ne donne un résultat qu'une seule fois. Pour contrôler de manière continue des variables ou des expressions, utilisez Variables inspectées.

Choisissez le menu Affichage Variables inspectées pour afficher la fenêtre des variables inspectées.

#### Ajout d'une expression à surveiller

Faites un clic droit sur la fenêtre des variables inspectées pour ouvrir le menu contextuel. Choisissez le menu Ajouter à l'inspecteur…. Vous pouvez également utiliser Déboguer Ajouter à l'inspecteur…, une boîte de dialogue vous demandant l'expression apparaît. Saisissez l'expression et cliquez sur Valider.

Par défaut, les expressions inspectées sont mises à jour automatiquement à chaque fois que le programme s'arrête. Ce comportement peut être modifié dans la boîte de dialogue Ajouter à l'inspecteur ou en utilisant le menu Mise à jour automatique du menu contextuel de la fenêtre des variables inspectées. Une expression inspectées peut être mise à jour manuellement en choisissant Mettre à jour l'inspecteur ou Tout mettre à jour dans le menu contextuel.

Il n'est pas nécessaire que le débogueur soit lancé pour ajouter de nouvelle expression inspectée. Si le débogueur n'est pas lancé ou si l'expression correspondante ne peut être trouvée, l'interface va essayer de créer l'expression inspectée à chaque fois que le programme est stoppé.

#### Suppression d'une expression à surveiller

Faites un clic droit sur l'expression inspectée que vous souhaitez supprimer dans la fenêtre des variables inspectées, puis choisissez le menu contextuel Supprimer pour la supprimer.

Toutes les variables inspectées peuvent être supprimées en choisissant Tout supprimer dans le menu contextuel de la fenêtre des variables inspectées.

#### Évaluation des expressions

Lorsque le contrôle est rendu par le programme — peut-être sur un point d'arrêt — il est possible d'évaluer une expression ou d'inspecter les valeurs des variables du programme. Choisissez le menu Déboguer Inspecter/Évaluer… ou Inspecter/Évaluer… dans le menu contextuel de l'éditeur ou encore cliquez sur le bouton Inspecter dans la barre d'outils du débogueur.

Une fenêtre apparaît affichant l'évaluation de l'expression en surbrillance dans l'éditeur. Vous pouvez évaluer une nouvelle expression en cliquant sur la colonne nom et en la saisissant.

Vous pouvez ajouter l'expression à la liste des expressions inspectées directement en cliquant sur le bouton Ajouter.

#### Inspection d'expressions dans la fenêtre de l'éditeur

Lorsque le débogueur est actif et que le programme est stoppé, vous pouvez obtenir la valeur d'une expression simplement en plaçant le pointeur de la souris au dessus d'elle et en restant immobile un court instant. Si l'expression est déjà présente dans les fenêtres variables locales ou variables inspectées sa valeur est affichée dans une infobulle.

Cette possibilité ne fonctionne actuellement que pour les variables simples, pas pour les structures ou les tableaux.

### Trace de la pile

#### Fenêtre de la pile

La fenêtre trace de la pile affiche le contenu de la pile du programme. Cela donne la liste de toutes les fonctions et leurs arguments dans l'ordre d'appel. Il y a également un nombre représentant chaque appel. Ce nombre est appelé le cadre. Chaque appel dans la trace possède un cadre différent. Cela commence par le cadre 0 (la dernière fonction appelée) et croît au fur et à mesure que l'enfouissement devient profond.

Choisissez le menu Affichage Pile pour ouvrir la trace de la pile du programme en cours de débogage.

##### Fenêtre trace de la pile

Fenêtre trace de la pile

Une petite flèche pointe vers le cadre actuellement sélectionné dans la trace de la pile. Par défaut, c'est le cadre 0, la dernière fonction appelée. Toutes les évaluations et inspections d'expressions ou de variables seront en référence à ce cadre sélectionné. La portée des variables ou expressions en cours d'évaluation se limite seulement au cadre sélectionné. Il en est de même pour les nouvelles expressions dans l'inspecteur.

#### Définition du cadre actuelle

Un double-clic sur un cadre dans la trace de la pile définit ce cadre comme cadre actuellement sélectionné. La flèche pointe vers ce cadre, indiquant qu'il a été sélectionné comme cadre actuel. Sinon, ouvrez le menu contextuel par un clic droit sur la fenêtre trace de la pile et choisissez le menu Définir le cadre actuel pour définir le cadre.

Une modification du cadre de la pile entraîne un changement du contenu de la fenêtre des variables locales mais pas de la fenêtre des variables inspectées car chaque expression est évaluée dans le cadre utilisé au moment de sa définition.

### Thread

#### Fenêtre des threads

La fenêtre des threads affiche tous les threads utilisés par le programme et indique le thread actuel. Choisissez le menu Affichage Thread pour ouvrir cette fenêtre.

Une petite flèche pointe vers le thread actuel. Lorsque le programme est stoppé, le thread actuel est le thread qui a été interrompu. Chaque thread possède son propre cadre de pile donc une modification du thread actuel change le cadre de pile actuel.

#### Paramétrage du thread actuel

Un double-clic sur un thread dans la liste des threads définit ce thread comme thread actuellement sélectionné. La flèche va pointer vers ce thread, indiquant qu'il a été sélectionné comme thread actuel. Sinon, ouvrez le menu contextuel par un clic droit sur la fenêtre contenant la liste des threads et choisissez le menu Définir le thread actuel pour définir le thread.

Une modification de thread change la valeur des registres CPU et le cadre de pile actuel donc la fenêtre des variables locales change également.

### Processeur

#### Fenêtre des registres

Il est possible d'examiner le contenu des registres internes du CPU (microprocesseur). Choisissez le menu Affichage Registres. Une fenêtre affichant la liste de tous les registres disponibles du microprocesseur et leur contenu respectif apparaît.

Si une valeur de registre a été modifiée depuis la dernière étape, sa valeur est mise en surbrillance en rouge. Il est possible de modifier une valeur de registre en le sélectionnant et en cliquant dans la colonne valeur.

#### Fenêtre mémoire

Choisissez le menu Affichage Mémoire pour ouvrir la fenêtre mémoire du programme en cours de débogage. Cette fenêtre affiche le contenu de toute la mémoire.

La première colonne affiche les adresses mémoires en hexadécimal, la seconde affiche le contenu de la mémoire en hexadécimal et la dernière colonne le contenu de la mémoire en ASCII.

L'espace d'adressage d'un simple microprocesseur 32-bits est déjà assez grand (4 gigaoctets) donc il est très difficile de se rendre à une adresse précise avec un ascenseur. Mais vous pouvez cliquer avec le bouton droit de la souris pour afficher un menu contextuel et choisir Aller à l'adresse pour obtenir une petite case dans laquelle vous pouvez saisir une adresse en hexadécimal.

#### Fenêtre désassemblage

Choisissez le menu Affichage Désassemblage pour ouvrir la fenêtre désassemblage du programme en cours de débogage.

La première colonne affiche les adresses en hexadécimal. Dans la seconde colonne, vous pouvez avoir une étiquette commençant au début de la ligne et se terminant par deux points ou bien une instruction en langage d'assemblage décalée de 4 espaces.

De nouveau, comme l'espace d'adressage est très grand, l'ascenseur est inutile. Vous pouvez cliquer avec le bouton droit de la souris pour afficher un menu contextuel et choisir Aller à l'adresse pour obtenir une petite case dans laquelle vous pouvez saisir une adresse en hexadécimal. La position dans la fenêtre de désassemblage sera modifiée à la valeur du compteur du programme lorsque le programme est arrêté.

### Autres

Il existe d'autres fonctionnalités de débogage, utilisées moins fréquemment et pas très bien intégrées dans l'interface mais qui fonctionnent quand même.

#### Bibliothèques chargées de manière dynamique

Pour obtenir une liste des bibliothèques dynamiques utilisées par un programme, choisissez le menu DéboguerInformations Bibliothèques partagées. Une fenêtre affiche alors la liste de toutes les bibliothèques partagées que le programme a chargé ainsi que leur emplacement dans la mémoire. Il indique également si la table des symboles de la bibliothèque est chargée ou pas (Oui/Non).

##### Fenêtre des bibliothèques partagées

Fenêtre des bibliothèques partagées

#### Signaux du noyau

Les signaux du noyau sont une façon de transmettre des signaux entre les processus sous Linux. La liste des signaux pour un programme peut être affichée en choisissant le menu DéboguerInformations Signaux du noyaux. Une fenêtre apparaît contenant la liste de tous les signaux disponibles dans le système accompagné d'un courte description de chaque signal.

##### Fenêtre des signaux du noyau

Fenêtre des signaux du noyau

Il y a trois colonnes qui indiquent quoi faire lorsqu'un signal est reçu :

1. Arrête — qui indique aux débogueur d'arrêter l'exécution du programme (et de rendre le contrôle) lorsque le programme reçoit ce signal.

2. Affiche — qui indique aux débogueur d'afficher le signal reçu.

3. Transmet — qui indique aux débogueur de transmettre le signal au programme.

Le menu contextuel qui est affiché lorsque vous cliquez sur le bouton droit de la souris possède tous ces éléments inactifs parce que les fonctions correspondantes ne sont pas encore implémentées.

#### Informations sur les fichiers utilisés

Vous pouvez obtenir de l'information sur les fichiers utilisés par le programme en cours de débogage en choisissant le menu DéboguerInformations Fichiers cibles. Une fenêtre s'ouvre pour afficher ces informations.

#### Informations sur le programme débogué

Vous pouvez obtenir de l'information sur le programme en cours de débogage en choisissant le menu DéboguerInformations Programme. Une fenêtre s'ouvre pour afficher ces informations.

#### Informations sur la structure du noyau

Vous pouvez obtenir de l'information sur les données noyau pour le processus actuel en choisissant le menu DéboguerInformations Informations sur la « structure utilisateur » du noyau. Une fenêtre s'ouvre pour afficher ces informations.

#### Informations sur les variables globales

Vous pouvez obtenir la liste de toutes les variables globales en choisissant le menu DéboguerInformations Informations sur les variables globales. Une fenêtre s'ouvre pour afficher ces informations.

#### Informations sur le cadre actuel

Vous pouvez obtenir des informations sur le cadre actuellement sélectionné en choisissant le menu DéboguerInformations Informations sur le cadre actuel. Une fenêtre s'ouvre pour afficher ces informations.

#### Informations sur les arguments de la fonction actuelle

Vous pouvez obtenir des informations sur les arguments de la fonction actuelle en choisissant le menu DéboguerInformations Arguments. Une fenêtre s'ouvre pour afficher ces informations.

#### Commande utilisateur

Pour envoyer une commande directement au moteur de débogage, choisissez le menu Déboguer Commande du débogueur. Une petite boîte de dialogue apparaît dans laquelle vous pouvez saisir des commandes qui sont envoyées au débogueur lorsque vous tapez sur Entrée.

L'interface envoie cette commande directement au moteur sans aucune étape de contrôle. Par exemple, si vous définissez un point d'arrêt de cette façon, il n'apparaît pas dans la fenêtre contenant la liste des points d'arrêt. Il vaut mieux éviter d'utiliser cette commande à moins que vous ne sachiez exactement ce que vous faites.

## Concepteur d'interface Glade

### Démarrage rapide

Si vous ne voulez pas lire tout cet ennuyant manuel, voici quelques étapes à suivre pour être prêt à l'utiliser :

1. Vous devez avoir un projet ouvert contenant des fichiers Glade.

2. Contrairement au concepteur original Glade, le greffon Anjuta utilise le double-clic pour créer des gestionnaires pour le signal par défaut. Vous pouvez cliquer sur les composants graphiques (par ex. changer l'onglet actuel dans un GtkNotebook) en maintenant enfoncé la touche « Windows » ou « Super ».

3. Ouvrez PréférencesConcepteur de GUI Glade et cochez les trois options du haut Insérer un gestionnaire à l'édition, Agencement de conception séparé et Ajouter automatiquement les ressources.

4. Cochez AffichageConcepteur et déplacez cette fenêtre à une meilleure place.

5. Basculer vers un fichier Glade dans la zone de conception et vers le fichier de code source qui doit contenir les signaux d'appel du fichier Glade, puis faites GladeAssocier le dernier concepteur et le dernier éditeur.

6. Éventuellement, choisissez une cible pour les images ou d'autres ressources dans le gestionnaire de projet et sélectionnez Définir comme cible de ressource par défaut dans le menu contextuel.

### Questions générales concernant l'utilisation de Glade

Le greffon Glade reproduit presque complètement les fonctionnalités du concepteur Glade autonome mais il possède quelques particularités. Les quatre fenêtres du concepteur Glade sont la zone de conception, la palette, l'inspecteur de composant graphique et l'éditeur de propriétés. Elles ont le même but que dans le concepteur Glade autonome. Veuillez consulter le Manuel du concepteur d'interface Glade pour leur description. Une fonctionnalité supplémentaire permettant d'utiliser l'infrastructure de Anjuta plus efficacement est décrite ici.

### Association éditeur et concepteur

Vous pouvez associer l'éditeur de texte et le concepteur Glade ce qui permet de basculer de l'un vers l'autre et d'insérer automatiquement des ébauches de gestionnaire pour les nouveaux gestionnaires ajoutés. Vous pouvez associer plus d'un éditeur au concepteur. L'éditeur le plus récent ou associé au composant graphique de haut niveau actuel sera utilisé. Il y a deux manières pour associer éditeur et concepteur. La première consiste à utiliser la boîte de dialogue pour les associations ; la seconde à choisir le concepteur et le document de l'éditeur dans n'importe quel ordre, puis de sélectionner l'élément de menu GladeAssocier le dernier concepteur et le dernier éditeur.

### Boîte de dialogue pour les associations

Elle vous permet de créer et de gérer les associations. Pour créer une association, choisissez un concepteur et un éditeur dans les boîtes combinées et cliquez sur Associer. Vous pouvez également sélectionner le document en basculant vers lui dans le gestionnaire de documents ou dans la liste des fenêtres du menu principal. La liste au centre de la boîte de dialogue affiche les associations existantes. En dessous, deux ou trois contrôles servent à modifier les propriétés des associations. Voici leur description :

Expression régulière spéciale

  Utilisée pour définir une position personnalisée pour l'insertion des ébauches.

Nom du composant graphique

  Nom du composant graphique de premier niveau auquel appartient cette association.

Type de position

  Décrit l'emplacement où l'ébauche de gestionnaire sera insérée. Après le « begin » signifie après la marque spéciale (qui peut être saisie dans le champ Expression régulière spéciale) et Avant le « end » qui signifie avant la marque « end » spéciale. La marque de début par défaut est /* nom_fenetre callbacks */ et la marque de fin par défaut est /* end of nom_fenetre callbacks */. Il est possible d'omettre nom_fenetre.

### Valeur par défaut

Un double-clic sur un composant graphique dans la zone de conception crée un nouveau gestionnaire pour le signal par défaut en utilisant un modèle prédéfini pour son nommage. Par exemple, le signal par défaut est « clicked » pour un bouton, « toggled » pour une case à cocher, etc. Si l'option Insérer un gestionnaire à l'édition est activée alors la nouvelle ébauche de gestionnaire sera insérée à une position qui dépend du réglage Type de position.

### Insertion d'ébauche

L'un des objectifs le plus appréciable de l'intégration de Anjuta et de Glade est la création automatique d'ébauches de gestionnaire, ce qui vous épargnera beaucoup de travail de routine car il sera fait automatiquement.

Il y a plusieurs façons de créer une ébauche :

- Automatiquement si l'option Insérer un gestionnaire à l'édition est activée.

- En utilisant GladeInsérer une ébauche de gestionnaire (position auto) du menu principal.

- En utilisant l'élément Insérer une ébauche de gestionnaire du menu contextuel des documents texte.

### Préférences

Insérer un gestionnaire à l'édition

  Active l'insertion d'une ébauche de gestionnaire dans l'éditeur associé après avoir saisi un nouveau gestionnaire dans l'éditeur de signaux ou avoir créé un gestionnaire de signal par défaut

Agencement de conception séparé

  Détache la zone de conception du gestionnaire de document afin de pouvoir la positionner de manière séparée de l'éditeur de texte.

Ajouter automatiquement les ressources

  Si activé, toutes les ressources (par ex. les images) sont ajoutées à la cible dans le projet actuel. Vous pouvez choisir la cible en utilisant le menu contextuel du gestionnaire de projet ou en saisissant l'identificateur de la cible dans le champ sous la case à cocher.

Modèle de gestionnaire

  Vous pouvez choisir entre les deux formats de nommage automatique de gestionnaire de signal.

## Préférences

Les préférences vous permettent de configurer Anjuta selon vos goûts. Choisissez Édition Préférences pour faire apparaître la boîte de dialogue des préférences. Quelques préférences sont explicitées ci-après.

### Général

1. Le répertoire du projet est le chemin où vous avez l'intention d'enregistrer tous vos projets. L'assistant application crée les nouveaux projets dans ce répertoire uniquement. Le répertoire du projet par défaut est ~/projets et cela convient à la plupart des utilisateurs.

2. Informations utilisateur : fournit votre nom et votre adresse électronique. Ce n'est pas utilisé pour faire un dépôt de logiciel mais c'est plutôt utilisé pour créer les entrées d'un ChangeLog et d'autres insertions de texte.

### Gestionnaire de fichiers

1. Le répertoire racine si aucun projet n'est ouvert est le chemin vers lequel la racine du gestionnaire de fichiers pointe si aucun projet n'est actuellement ouvert.

2. Filtre de fichiers : vous pouvez filtrer les fichiers dans l'arborescence des fichiers, par exemple, les fichiers cachés ou les fichiers qui sont ignorés par le système de contrôle de version ce qui signifie habituellement qu'ils sont générés au moment de la construction et ne devraient pas être modifiés.

## Outils définis par l'utilisateur

### Introduction

De temps en temps vous trouverez que les fonctionnalités intégrées fournies par Anjuta sont insuffisantes. Dans ce cas, il se peut que vous soyez tenté soit d'ajouter la fonctionnalité vous-même dans le code de Anjuta ou de soumettre une requête pour que la fonctionnalité soit implémentée. Cependant, les deux approches sont probablement lentes et problématiques, surtout si votre outil est spécialisée. Dans ce cas, il est plutôt préférable d'utiliser la structure définie pour les outils de Anjuta.

Anjuta fournit une structure puissante pour définir ses outils personnalisés pour étendre les fonctionnalités. Les outils peuvent accéder à presque toutes les fonctionnalités de l'EDI à travers l'usage de variables. Vous pouvez ajouter des outils à n'importe quel élément de menu, spécifier l'entrée, la sortie et la redirection des erreurs dans la structure GUI et fournir des paramètres de ligne de commande à l'outil.

Le greffon outils doit être activé pour utiliser cette fonctionnalité !

### Exemples d'outils

Voici un exemple très simple sur la façon d'utiliser le greffon outils pour intégrer le script de génération des « ChangeLog » GNOME.

#### L'éditeur d'outils

L'éditeur d'outils

## Auteurs

Le projet Anjuta a été créé par Naba Kumar. Cette page affiche tous les contributeurs de Anjuta.

Pour plus d'informations sur Anjuta, veuillez visiter le site Web du projet http://anjuta.org . Les rapports d'anomalies doivent être effectués en utilisant Bug Tracker vers le site de développement du projet http://www.sourceforge.net/projects/anjuta .

Ce manuel a été écrit par Naba Kumar, Andy Piper, Biswapesh Chattopadhyay et Johannes Schmid. Veuillez envoyer tous vos commentaires ou suggestions concernant ce manuel à la liste de discussion Anjuta Devel anjuta-devel@list.sourceforge.net. Les commentaires peuvent également être envoyés via les project trackers sur SourceForge.

## Licence

Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU publiée par la Free Software Foundation ; soit la version 2 ou, (à votre discrétion) toute autre version ultérieure.

Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même une garantie implicite de COMMERCIABILITÉ ou DE CONFORMITÉ À UNE UTILISATION PARTICULIÈRE. Voir la Licence Publique Générale GNU pour plus de détails.

Une copie de la licence GNU General Public License est annexée au Guide des utilisateurs de GNOME. Vous pouvez obtenir une copie de la licence GNU General Public License de la Free Software Foundation en visitant leur site Web ou en écrivant à

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